Я использую Arduino mega, драйвер TB6600 V2.1, двигатель Nemo23.
Я написал код для проверки ИК-пульта (приведен ниже), где я смог считать коды через COM-порт, которые поступают на Arduino при нажатии клавиши.
#include "IRremote.h"
IRrecv irecv(2);
decode_results results;
void setup () {
Serial.begin(9600);
irecv.enableIRIn();
}
void loop() {
if (irecv.decode(&results)){
Serial.println(results.value);
irecv.resume();
}
}
Соответственно, когда выявил кодировку сигналов, я написал код для управления шаговым двигателем (нажатие одной кнопки - вращение в одну сторону, нажатие другой - в другую сторону), однако я не понимаю по какой причине, но при нажатии кнопки никакого движения не происходит.
#include "IRremote.h"
IRrecv irrecv(2); // порт подключения ИК-датчика
decode_results results;
const int motor_1_en_pin = 23;
const int motor_1_dir_pin = 25;
const int motor_1_step_pin = 27;
void setup() {
pinMode(motor_1_en_pin, OUTPUT); //output - сигналы исходящии от радуино, input - наоборот
pinMode(motor_1_dir_pin, OUTPUT);
pinMode(motor_1_step_pin, OUTPUT);
digitalWrite(motor_1_en_pin, LOW); //high сигнал логической 1, low сигнал логического 0
digitalWrite(motor_1_dir_pin, HIGH);
Serial.begin(9600); //скорость передачи данных в бит/с
irrecv.enableIRIn(); //вкл. приема с ИК-датчика
}
void loop () {
if (irrecv.decode(&results)) {
switch (results.value) {
case 3772784863:
digitalWrite(motor_1_dir_pin, HIGH);
digitalWrite(motor_1_step_pin, HIGH);
digitalWrite(motor_1_step_pin, LOW);
break;
case 3772817503:
digitalWrite(motor_1_dir_pin, LOW);
digitalWrite(motor_1_step_pin, HIGH);
digitalWrite(motor_1_step_pin, LOW);
break;
}
}
}
Подскажите пожалуйста что я мог не так написать или сделать?
Я написал код для проверки ИК-пульта (приведен ниже), где я смог считать коды через COM-порт, которые поступают на Arduino при нажатии клавиши.
#include "IRremote.h"
IRrecv irecv(2);
decode_results results;
void setup () {
Serial.begin(9600);
irecv.enableIRIn();
}
void loop() {
if (irecv.decode(&results)){
Serial.println(results.value);
irecv.resume();
}
}
Соответственно, когда выявил кодировку сигналов, я написал код для управления шаговым двигателем (нажатие одной кнопки - вращение в одну сторону, нажатие другой - в другую сторону), однако я не понимаю по какой причине, но при нажатии кнопки никакого движения не происходит.
#include "IRremote.h"
IRrecv irrecv(2); // порт подключения ИК-датчика
decode_results results;
const int motor_1_en_pin = 23;
const int motor_1_dir_pin = 25;
const int motor_1_step_pin = 27;
void setup() {
pinMode(motor_1_en_pin, OUTPUT); //output - сигналы исходящии от радуино, input - наоборот
pinMode(motor_1_dir_pin, OUTPUT);
pinMode(motor_1_step_pin, OUTPUT);
digitalWrite(motor_1_en_pin, LOW); //high сигнал логической 1, low сигнал логического 0
digitalWrite(motor_1_dir_pin, HIGH);
Serial.begin(9600); //скорость передачи данных в бит/с
irrecv.enableIRIn(); //вкл. приема с ИК-датчика
}
void loop () {
if (irrecv.decode(&results)) {
switch (results.value) {
case 3772784863:
digitalWrite(motor_1_dir_pin, HIGH);
digitalWrite(motor_1_step_pin, HIGH);
digitalWrite(motor_1_step_pin, LOW);
break;
case 3772817503:
digitalWrite(motor_1_dir_pin, LOW);
digitalWrite(motor_1_step_pin, HIGH);
digitalWrite(motor_1_step_pin, LOW);
break;
}
}
}
Подскажите пожалуйста что я мог не так написать или сделать?