RC bil till hinder att undvika Robot (7 / 7 steg)
Steg 7: kod
int DIST; avståndet
motor A ansluten mellan A01 och A02
motor B ansluten mellan B01 och B02
int STBY = 10; standby
Motoriska A
int PWMA = 3; Varvtalsreglering
int AIN1 = 9; Riktning
int AIN2 = 8; Riktning
Motor B
int PWMB = 5; Varvtalsreglering
int BIN1 = 11; Riktning
int BIN2 = 12; Riktning
void setup() {
pinMode (STBY, OUTPUT);
pinMode (PWMA, OUTPUT);
pinMode (AIN1, OUTPUT);
pinMode (AIN2, OUTPUT);
pinMode (PWMB, OUTPUT);
pinMode (BIN1, OUTPUT);
pinMode (BIN2, OUTPUT);
}
void loop() {
Läs input på analoga stift 0:
int sensorValue = analogRead(A0);
Konvertera analog läsning (som går från 0 - 1023) till en spänning (0 - 5V):
flyta DIST = sensorValue * (5.0 / 1023.0);
IF(dist < 2)
{
flytta (1, 0, 1); riktning
flytta (2, 255, 1); full fart fram
}
IF(dist > 2)
{
flytta (1, 150, 1); riktning: rätt
flytta (2, 200, 0); tillbaka
}
}
{Ogiltig flytta (int motor, int hastighet, int riktning)
Flytta specifika motor med hastighet och riktning
motor: 0 för B 1 a
hastighet: 0 är avstängd, och 255 är full fart
riktning: 0 medurs, 1 motsols
digitalWrite (STBY, hög); Inaktivera vänteläge
booleska inPin1 = låg;
booleska inPin2 = hög;
IF(Direction == 1) {
inPin1 = hög;
inPin2 = låg;
}
IF(motor == 1) {
digitalWrite (AIN1, inPin1);
digitalWrite (AIN2, inPin2);
analogWrite (PWMA, hastighet);
} annat {
digitalWrite (BIN1, inPin1);
digitalWrite (BIN2, inPin2);
analogWrite (PWMB, hastighet);
}
}
void stop() {
aktivera standby
digitalWrite (STBY, låg);
}