Hinder Avoider Robot använder Relay Board (2 / 2 steg)
Steg 2:
När du har allt i stället för ditt val, måste du starta anslutning av kablarna.
Anslut först arduino uno styrelsen till relä styrelsen med sladdar.
GND går till gnd och vcc går till vcc stift arduino. Pin2 reläets går till 7 och pin4 reläets går till pin9.
För hc-sro4 sensor, gnd stift går till gnd, vcc stift går till vcc, eco stift går till pin2 och trig stift går till pin3.
Du kan nu ansluta batteriet tråden och motoriska trådarna till relay board och också använda 9v batteri makt att driva arduino.
Dessa är koderna nedan för arduino styrelsen:
#include < Ultrasonic.h >
CONST int numOfReadings = 10; antal läsningar att ta / poster i matrisen
int avläsningar [numOfReadings]; lagrar avläsningarna som avståndet i en matris
int arrayIndex = 0; arrayIndex för den aktuella posten i matrisen
int totala = 0; lagrar cumlative totalt
int averageDistance = 0; lagrar det genomsnittliga värdet
osignerade långa pulseTime = 0; lagrar pulsen i Micro sekunder
osignerade långa avstånd = 0; variabel för att lagra avstånd (cm)
int motor1 = 9.
int motor2 = 7.
int eco = 2;
int trig = 3;
int dist = 0;
void setup()
{
pinMode (motor1, produktionen);
pinMode (motor2, produktionen);
pinMode (eco, ingång);
pinMode (trig, OUTPUT);
flyta dist = pulseIn (eco, hög);
}
void loop() {
digitalWrite (trig, hög); Skicka 10 mikrosekund puls
delayMicroseconds(10); vänta 10 mikrosekunder innan du stänger av
digitalWrite (trig, låg); Sluta skicka pulsen
pulseTime = pulseIn (eco, hög); Leta efter en retur puls, bör hög puls går låg-hög-låg
avståndet = pulseTime/58. Avståndet = puls tid / 58 konvertera till cm.
totalt = totalt - avläsningar [arrayIndex]; subtrahera senaste avståndet
avläsningar [arrayIndex] = avstånd; lägga till avståndet behandlingen array
totalt = totalt + avläsningar [arrayIndex]; Lägg till läsningen av totala
arrayIndex = arrayIndex + 1. gå till nästa objekt i matrisen
I slutet av array (10 artiklar) sedan börja igen
om (arrayIndex > = numOfReadings) {
arrayIndex = 0;
}
averageDistance = totalt / numOfReadings; beräkna den genomsnittliga avståndet
Delay(10);
digitalWrite (motor1, hög);
digitalWrite (motor2, hög);
om (averageDistance < = 10) {
gå bakåt
digitalWrite(motor1,LOW);
digitalWrite(motor2,LOW);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
}
annat
digitalWrite(motor1,LOW);
digitalWrite(motor2,LOW);
}