Stap 5: Schrijven van code voor arduino en koppelen van de sensoren
Uw servo en motion sensor hechten aan uw breadboard en verbinding met de arduino (of funduino) bestuur. Dit is de code:
#include
#include servo myservo;
#define PING_PIN 12 # Definieer PING_PIN2 11 / / Arduino pin gebonden aan zowel de trigger en de echo pinnen op de ultrasone sensor. #define MAX_DISTANCE 250 / / maximale afstand die wij wilt pingen voor (in centimeters). Maximale sensor afstand wordt begroot op 400-500cm.
NewPing sonar (PING_PIN, PING_PIN2, MAX_DISTANCE); NewPing installatie van pin en maximale afstand.
int pos = 0; variabele op te slaan van de servo positie Booleaanse check = 0; unsigned int ons = 10; void setup {myservo.attach(9); Serial.begin(9600); hecht de servo op pin 9 op het servo-object}
void loop {int itemp = uS / US_ROUNDTRIP_CM; if(check == 1) {voor (pos = 0; pos < = 180; pos += 1) {/ / gaat van 0 graden tot 180 graden / / in stappen van 1 graad myservo.write(pos); / / vertellen servo naar positie in de variabele 'pos' vertraging(20); / / wacht 15ms voor de servo om de positie te bereiken}
delay(2000); voor (pos = 180; pos > = 0; pos-= 1) {/ / gaat van 180 graden tot 0 graden myservo.write(pos); / / vertellen servo naar positie in de variabele 'pos' vertraging(20); / / wacht 15ms voor de servo om de positie te bereiken} controleren = 0; } delay(250); Ons = sonar.ping(); Serial.Print ("Ping:"); Serial.Print(US / US_ROUNDTRIP_CM); Converteren van ping tijd afstand te drukken resultaat (0 = buiten bepaalde afstand bereik, geen ping echo) Serial.println("cm"); Serial.Print(check); int i = uS / US_ROUNDTRIP_CM; Serial.Print ("test beweging"); Serial.println(i); Serial.Print(itemp); Als (ik < 125 & & ik > 70 & & ik! = 0) {controleren = 1;}}