Stap 8: Elektronica en Arduino code
Ik aangesloten de componenten op de LinkIt één poorten op deze manier:
LinkIt 3V3: naar één van de terminals van de versnellingsbak motor.
LinkIt 5V: aan de Vcc-terminal van de ultrasone sensor en de 5V aansluiting van het Relais
LinkIt GND: naar de terminal van de GND van de ultrasone sensor, de terminal van de GND van de estafette en de transactie van de terminals van de schakelaar aan de estafette. De andere schakelaar terminal zal worden aangesloten op de andere terminal van de versnellingsbak motor om te activeren.
LinkIt D13: naar de terminal van de Echo van de ultrasone sensor.
LinkIt D12: naar de Trig terminal van de ultrasone sensor.
LinkIt D8: naar de terminal van de SIG van het Relais.
Voor de sketch, ik controleerde een heleboel Arduino instructables om wat inspiratie, maar degene die ik het meest analized was de eenvoudige Walker Robot van de Randofo. Ik probeer te vinden de gemeenschappelijke punten maken een ultrasone sensor werken.
De schets is de volgende:
/ * Code die is geschreven door M.C. Langer. Zacht, it´s mijn eerste Arduino sketch
*/
#define trigPin 12 / / definiëren de pinnen van uw sensor
#define echoPin 13 / / de pinnen van uw sensor te definiëren
int tarief = 1000; Ik zag dat iedereen gebruikt deze constante voor ultrasone sensor, dus ik hetzelfde voor het moment doen zal. Deze constante verandert niet. Het is het pin-nummer
void setup {Serial.begin(9600); / / initialiseren seriële communicatie met 9600 bits per seconde
pinMode(8,OUTPUT); pinMode (trigPin, OUTPUT); / / set de trig pin waar de output heengaat verzenden geluidsgolven
pinMode (echoPin, INPUT); / / de echo-pincode in te voeren voor het ontvangen van de geluidsgolven instellen
delay(5000);
}
void loop {}
lange duur, afstand; Start de scan
pinMode (trigPin, OUTPUT);
digitalWrite (trigPin, laag);
delayMicroseconds(2); vertraging
digitalWrite (trigPin, hoge);
delayMicroseconds(5); een ander vertraging (krijg ik niet het. Het is makkelijker met Lego Mindstorms)
digitalWrite (trigPin, laag);
duur = pulseIn (echoPin, hoge);
afstand = (duur/2) / 29.1; / / de afstand in centimeters te converteren.
Als (< 50 afstand) / * als er een hindernis op een afstand van minder dan 50 centimeter, dan... Wacht, dit is meer als Lego Mindstorms. Ik krijg het! */
{
digitalWrite(8,HIGH); delay(7000);
}
anders
digitalWrite(8,LOW);
}