Gränsyta för motorer med Arduino (2 / 3 steg)
Steg 2: Arduino kod
#define BoMotor_F 3
#define BoMotor_B 5
#define DcMotor_F 6
#define DcMotor_B 11
#define ServoMotorPin 7
#include
#include
SoftwareSerial mySerial (14, 15); RX, TX
Servo myservo;
char karaktär;
boolesk flagga = false;
void setup() {
sätta din installation kod här, om du vill köra en gång:
mySerial.begin(9600);
Serial.BEGIN(9600);
pinMode(BoMotor_F,OUTPUT);
pinMode(BoMotor_B,OUTPUT);
pinMode(DcMotor_F,OUTPUT);
pinMode(DcMotor_F,OUTPUT);
myservo.attach (ServoMotorPin), //servo är fäst på pin7
}
void loop() {
sätta din huvudsakliga kod här, för att köra flera gånger:
Sträng Data = "";
flagga = false;
While(mySerial.available()) {
tecken = mySerial.read();
Data.concat(Character);
flagga = sant;
Delay(100);
}
IF(Flag)
{
Data.trim();
Serial.println(data);
int s = Data.substring(0,1).toInt();
int riktning = Data.substring(2,3).toInt();
int värde = Data.substring(4).toInt();
Switch(s) {
fall 1: {DcMotor (värde, riktning), bryta;}
fall 2: {BoMotor (värde, riktning), bryta;}
fall 3: {ServoMotor (värde, riktning), break;}
fall 0:{DcMotor(0,direction); BoMotor (0, riktning), break;}
}
}
}
void DcMotor (int hastighet, int dir)
{
analogWrite(DcMotor_F,(speed+dir*speed)/2);
analogWrite(DcMotor_B,(speed-dir*speed)/2);
}
void BoMotor (int hastighet, int dir)
{
analogWrite(BoMotor_F,(speed+dir*speed)/2);
analogWrite(BoMotor_B,(speed-dir*speed)/2);
}
void ServoMotor (int vinkel, int dir)
{
myservo.write(Angle);
Delay(2000);
myservo.write(0);
}