Arduino vandrande Robot (improviserat) (4 / 4 steg)
Steg 4: kod
Här är min kod;
Vänligen respektera det tog mig tid att skriva detta.
Kod av Jason McLaughlin
2015
CONST int channel_a_enable = 6;
CONST int channel_a_input_1 = 4;
CONST int channel_a_input_2 = 7.
CONST int channel_b_enable = 5;
CONST int channel_b_input_3 = 3;
CONST int channel_b_input_4 = 2;
#define trigPin 10
#define echoPin 9
void setup() {
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
pinMode (channel_a_enable, produktionen); Kanal A aktiverar
pinMode (channel_a_input_1, produktionen); Kanalisera en ingång 1
pinMode (channel_a_input_2, produktionen); Kanalisera en ingång 2
pinMode (channel_b_enable, produktionen); Kanal B aktiverar
pinMode (channel_b_input_3, produktionen); Kanal B ingång 3
pinMode (channel_b_input_4, produktionen); Kanal B ingång 4
Serial.BEGIN (9600);
Serial.println ("Start"); }
void loop() {
Ping/Ultra Sonic Sensor
int varaktighet, avstånd;
digitalWrite (trigPin, hög);
delayMicroseconds(1000);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
avståndet = (längd / 2) / 29,1;
Serial.Print(Distance);
Serial.println ("cm");
Delay(0);
Framlänges
IF(Distance>5) {Serial.println ("framlänges:)");
analogWrite (channel_a_enable, 255);
digitalWrite (channel_a_input_1, hög);
digitalWrite (channel_a_input_2, låg);
analogWrite (channel_b_enable, 255);
digitalWrite (channel_b_input_3, hög);
digitalWrite (channel_b_input_4, låg);
Delay(50);
allInputsOff();}
annat if(distance<5)
{ }
annat {Serial.println ("kanal A sysslolös");
analogWrite (channel_a_enable, 0);
digitalWrite (channel_a_input_1, låg);
digitalWrite (channel_a_input_2, låg);
Delay(50);
allInputsOff();}
IF(Distance<5)
{Serial.println("Turing");
analogWrite (channel_a_enable, 255);
digitalWrite (channel_a_input_1, låg);
digitalWrite (channel_a_input_2, hög);
analogWrite (channel_b_enable, 255);
digitalWrite (channel_b_input_3, hög);
digitalWrite (channel_b_input_4, låg);
Delay(50);
allInputsOff();}
annars om (avstånd > 5) {}
annat
{Serial.println ("kanal A reverse Idle");
analogWrite (channel_a_enable, 0);
digitalWrite (channel_a_input_1, låg);
digitalWrite (channel_a_input_2, låg);
Delay(50);
allInputsOff();}
}
void allInputsOff()
{
digitalWrite (4, låg);
digitalWrite (7, låg);
digitalWrite (6, låg);
digitalWrite (3, låg);
digitalWrite (2, låg);
digitalWrite (5, låg);
}