Stap 6: Arduino Sketch
Voorwaarde hier de volledige schets van de Arduino gebruikt voor het project is. Na montage van de robot samen en uploaden van de schets, zal de robot voorwaarts bewegen wanneer een object is geplaatst binnen 10 cm van de sensor van de nabijheid.
/******************************************
DOEL: Inchworm Robot gemaakt door
Michail Ivanovsit, datum: 4/13/2016 *** /
#define echoPin 6 / / dit is de echo-pin
#define triggerPin 7 / / dit is de trigger-pin
#include //include nabijheid sensor bibliotheek #include //include servo bibliotheek
Servo myservo;
int pos = 0; definieert een variabele voor het bijhouden van de positie van de servo
VOID Setup {}
Serial.begin(115200); Start seriële communicatie
pinMode (echoPin, INPUT); //set-pinmodes
pinMode (triggerPin, OUTPUT);
myservo.attach(13); de servo op pin 9 hecht aan de servo-object
myservo.write(POS); Hiermee stelt u de aanvankelijke positie van de servo op 0
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
digitalWrite (3, hoge); Stel de rode LED op, en de groene LED uit
digitalWrite (2, laag); }
/***************************main loop*********************************************************/
float controle; variabele voor het bijhouden van de distane
void loop {}
Serial.Print ("de afstand is:"); Start seriële monitor voor het bijhouden van analyseren de code
digitalWrite (triggerPin, hoge); maken van een 10usec-puls, gebruiken de nabijheidssensor
delayMicroseconds(10);
digitalWrite (triggerPin, laag); uitschakelen van de pin van de trigger
zweven afstand = pulseIn(echoPin,HIGH); Lees nu geeft de puls die wordt verzonden door de sensor //pulseIn de lengte van de pols in usec
afstand = afstand/58; de afstand in [cm] wordt berekend door pulselength [usec] / 58
Serial.Print(distance,DEC); / / de meting te sturen naar de seriële monitor
Serial.println ("cm"); seriële monitor wordt gebruikt om spoor van de keeo van de gegevens die zijn verkregen door de sensor van de nabijheid
Controleer = 11; toewijzen van een aanvankelijke waarde hoger is dan 10 cm controleren
myservo.write(0); servo om de positie van de 0 in het begin van de lus te retourneren
delay(500); vertraging is ingesteld op het toestaan van de servo te voltooien de 180 graden beweging
Controleer = afstand; de waarde van afstand variabele selectievakje toewijzen
Als (Controleer < 10) {}
myservo.write(80); Als de afstand minder dan 10 cm is, verplaatsen de servo naar positie 180
digitalWrite (3, laag); groene LED oplichten, en rode LED uitschakelen
digitalWrite(2,HIGH); }
else {}
digitalWrite (2, laag); Als de afstand meer dan 10cm is, dan houd de LEDs in oorspronkelijke toestand digitalWrite(3,HIGH);
}
delay(500);
}