Ultrasonic avstånd Sensor Arduino HC-SR04 (3 / 4 steg)
Steg 3: kod
Efter Anslut skriva och ladda upp följande kod.
*********************************************************************************************************************
#define trigpin 6
#define echopin 5
#define R 7
#define G 8
#define B 9
void setup()
{//serial monitor och pin setup.
Serial.BEGIN(9600);
pinMode(trigpin,OUTPUT); Ange trigpin
pinMode (echopin, ingång), //set echopin som indata
pinMode(R,OUTPUT); / / set R, G och B som resultat
pinMode(G,OUTPUT);
pinMode(B,OUTPUT);
sätta din installation kod här, om du vill köra en gång:
}
void loop()
{
trigpin en signal, som studsar ett hinder och kommer tillbaka, den
echopin tar emot denna signal och ger ut + 5v inställning arduino PIN-koden som den är ansluten till hög.
avståndet = tid * hastighet, men denna distnce divideras med 2 eftersom signalen skickas ut avkastning
så avstånd = (den tid det tar för signalen att lämna och återvända) / 2.
dvs om tiden 6s avståndet = (6s/2) = 3m eller cm.
int varaktighet, avstånd; //declare avstånd och längd som heltal
digitalWrite(trigpin,HIGH); / / trigin skicka signal
_delay_ms (1000), //coninously för 1000ms
digitalWrite (trigpin, låg); / / sedan går låg
duration=pulseIn(echopin,High); varaktighet är pulseIn till echopin
avstånd =(duration/2)/29,1; 29,1 används för att konvertera distnce till cm, värdet varierar för andra enheter.
om (avstånd > 0 & & avstånd < = 20) {//distcance är större än 0 och mindre än 20cm
digitalWrite (G, låg); //green ledde är avstängd
digitalWrite B, låga, //blue ledde är avstängd
_delay_ms (500), //delay
digitalWrite (R, hög); //red ledde är på
_delay_ms(500);
}
annars om (avstånd > 20 & & avstånd < = 80) {//distcance är större än 20 och mindre än 80cm
digitalWrite (R, låg); //red ledde är avstängd
digitalWrite (G, låg); //green ledde är avstängd
_delay_ms(500);
digitalWrite B, hög, //blue ledde är på
}
annars om (avstånd > 80 & & avstånd < = 120) {//distcance är större än 80 och mindre än 120cm
digitalWrite (R, låg); //red ledde är avstängd
digitalWrite B, låga, //blue ledde är avstängd
_delay_ms(500);
digitalWrite (G, hög); //green ledde är på
}
Serial.Print("cm");
Serial.println (distans); //print värden på serial monitor
_delay_ms(100);
}
sätta din huvudsakliga kod här, för att köra flera gånger: