Согласно комментариям в вашем коде, вы подключаете arduino-pin-6
к l293-pin-6
и arduino-pin-9
к l293-pin-3
.
Согласно этой таблице , управляющие контакты в L293: 2
, 7
, 10
, 15
. Итак, я полагаю, что вы подключаете это неправильно. Также импульсы выполняются в неправильном порядке (от HIGH
до LOW
и т. Д.).
Это должен быть правильный код ( пожалуйста, посмотрите комментарии в коде ):
//Motor A
const int motorpin1 = 6; // Pin 7 of L293
const int motorpin2 = 9; // Pin 2 of L293
const int motorenablepin = 10; // Pin 1 of L293
void setup() {
pinMode(motorpin1, OUTPUT);
pinMode(motorpin2, OUTPUT);
pinMode(motorenablepin, OUTPUT);
digitalWrite(motorpin1, LOW);
digitalWrite(motorpin2, LOW);
digitalWrite(motorenablepin, HIGH); // we can let it enabled
Serial.begin(9600);
}
// put your main code here, to run repeatedly:
void loop(){
if(Serial.available()>0)
{
char incomingByte = Serial.read();
Serial.println(incomingByte);
if(incomingByte=='a'){
digitalWrite(motorpin1, HIGH);
digitalWrite(motorpin2, LOW);
Serial.println("one way");
}
else if(incomingByte=='s'){
digitalWrite(motorpin1, HIGH);
digitalWrite(motorpin2, LOW);
Serial.println("other way");
}
delay(200);
digitalWrite(motorpin1, LOW);
digitalWrite(motorpin2, LOW);
}
}
Обратите внимание, что я добавил пропущенный motorenablepin
. Он должен быть связан с l293-pin-1
.
Кроме того, поскольку состояния LOW
и LOW
являются общими для кода, вы можете упростить его, как и я.