سلام دوستان.من برای کنترل 4 موتور dc و 1 موتور servo توسط آردوینو و ماژول بلوتوث و درایور موتور l293d میخوام کد بنویسم.
واسه موتور های dc کد زیر رو نوشتم و مشکلی نداشت:
ولی واسه servo کد زیر رو نوشتم ولی ارور unusable value میده:
چجوری میتونم عدد خونده شده از سریالو در اینجا به کار ببرم؟
واسه موتور های dc کد زیر رو نوشتم و مشکلی نداشت:
کد:
#include <Servo.h>
#include <AFMotor.h>
AF_DCMotor MotorR(1);
AF_DCMotor MotorL(2);
AF_DCMotor MotorR2(3);
AF_DCMotor MotorL2(4);
Servo gripperServo;
int reads = Serial.read();
void setup()
{
Serial.begin(9600);
gripperServo.attach(5);
MotorR.setSpeed(255);
MotorL.setSpeed(255);
MotorR2.setSpeed(255);
MotorL2.setSpeed(255);
}
void loop()
{
switch (reads){
case 200:
MotorR.run(FORWARD);
MotorL.run(FORWARD);
MotorR2.run(FORWARD);
MotorL2.run(FORWARD);
break;
case 210:
MotorR.run(BACKWARD);
MotorL.run(BACKWARD);
MotorR2.run(BACKWARD);
MotorL2.run(BACKWARD);
break;
case 220:
MotorR.run(FORWARD);
MotorL.run(RELEASE);
MotorR2.run(FORWARD);
MotorL2.run(RELEASE);
break;
case 230:
MotorR.run(RELEASE);
MotorL.run(FORWARD);
MotorR2.run(RELEASE);
MotorL2.run(FORWARD);
break;
case 240:
MotorR.run(BACKWARD);
MotorL.run(RELEASE);
MotorR2.run(BACKWARD);
MotorL2.run(RELEASE);
break;
case 250:
MotorR.run(RELEASE);
MotorL.run(BACKWARD);
MotorR2.run(RELEASE);
MotorL2.run(BACKWARD);
break;
}
}
کد:
case Serial.read():
if Serial.read<200{
gripperServo.write(Serial.read);
}
break;







دیدگاه