Stap 5: Magic borst (IR ontvanger) - assembleren van het Circuit en de tekstbestand
1. de grond van de Arduino verbinding te maken met de negatieve (-) bus.
2. Sluit de + 5V van de Arduino met de positieve (+)-bus.
3. Installeer de LED door het buigen van de pinnen, zodat de LED de rand van het bord overlapt. Verwijzen naar de afbeelding (draden verwijderd voor de duidelijkheid).
4. Steek de positieve stekker (lang) in digitale Pin13.
5. Sluit een weerstand aan de negatieve lood (korte) van de LED.
6. Sluit de weerstand aan de negatieve bus.
7. Installeer de IR foto LED door het buigen van de pinnen, zodat de foto van de IR LED de rand van het bord overlapt. Verwijzen naar de afbeelding (draden verwijderd voor de duidelijkheid).
8. Sluit de korte lead van de foto van de IR LED op de positieve bus.
9. Sluit de lange leiding van de foto van de IR LED op analoge Pin0.
10. Sluit een tweede weerstand aan de IR foto LED en analoge Pin0.
11. Sluit de weerstand aan de negatieve bus.
Opmerking: De beschrijving voor de installatie van de IR foto diode is nauwkeurig. De diode werkt door te voorkomen dat de spanning door de positieve leiding. Wanneer IR aanwezig is, de diode wordt een tijdelijke doorwerking en laat spanning op analoge Pin0 worden gedetecteerd.
12. Installeer de servo door het aansluiten van de controle oranje (of gele) draad tot digitale Pin9.
13. Sluit de servo positieve rode draad met de positieve bus.
14. Verbind de servo negatieve bruin (of zwart) draad met de negatieve bus.
15. Sluit de Arduino op een USB-poort op een computer met de IDE.
16. compileren en Upload het bestand naar de Arduino. De servo moet verplaatsen en het LED-licht.
17. test het circuit met behulp van een IR-emitting apparaat en de USB seriële monitor te openen in de IDE. Glans die een uitstoot van de IR LED op de IR foto diode en de servo moet verplaatsen terwijl de LED-lampjes.
17a. als de servo blijft bewegen en de ' pos = ' displays, spanning op de analoge Pin0 wordt ontdekt. Controleer of dat de seriële monitor weergeeft "0" die aangeeft dat geen IR aanwezig is. Controleer of dat de IR foto diode niet wordt omgekeerd door over te schakelen van de IR foto diode leads. Controleer of de negatieve leads en weerstand verbonden met de grond van de Arduino en geen kortsluiting via analoog Pin0 zijn. Controleer of de analoge Pin0 beschikt niet over een statische lading en zit vast in de gesloten (hoge) positie door het verwijderen van de kabel en aarding van de kabel aan op de analoge Pin0 naar een ESD-apparaat.
17b. als de LED mislukt aan het licht, controleert u dat de LED niet wordt omgekeerd en dat de positieve is aangesloten op de juiste leiding van de LED.
17c. Indien de servo niet actief is, controleert u of dat de draad kleuren correct zijn aangesloten.
Arduino tekst Code als volgt:
/*
IRdetect op de analoge ingang met LED licht en Servo
Leest een analoge input op pin 0, drukt het resultaat naar de seriële monitor,
en een servo beweegt. Bevestig de IR foto diode aan analoge pin 0 ingang,
LED aan digitale pin 13 uitvoer buiten pinnen te + 5V en ground.
Servo control gele (of oranje) draad naar pin 9, rood tot + 5V, hechten
en zwarte (of bruine) aan de grond.
*/
Initialiseren
#include < Servo.h >
Servo chestservo; Servo-object om te bepalen van de servo maken.
int pos = 0; Variabele op te slaan van de servo positie.
int led13Pin = 13; Variabele initialiseren als voor pin 13 13.
Setup pinnen en variabelen
VOID Setup {}
Serial.begin(9600); Setup seriële communicatie met 9600 bits per seconde.
pinMode(led13Pin,OUTPUT); Opstelling led13Pin als een uitgang Pins.
chestservo.attach(9); Servo hecht aan pin 9 op het servo-object.
}
Lus functie
void loop {}
int sensorValue = 0; Initialiseer de variabele op 0.
sensorValue = analogRead(A0); Variabele ingesteld als het Lees input op analoge pin 0.
Serial.println (sensorValue, DEC); De waarde die u leest uitprinten.
delay(5); Vertraging in msec leest tussen voor stabiliteit.
Als (sensorValue > 2) {/ / als groter is dan de waarde, dan licht de LED, zet de servo,
en uitgang voor seriële terug te keren.
Serial.println ("Ja hoog"); Uitgang voor seriële.
digitalWrite (led13Pin, hoge); 2de uitgang instellen op hoog of op.
voor (pos = 0; pos < 180; pos += 1) {/ / voor lus van 0 tot 180 graden gaat
in stappen van 1 graad. Borst wordt geopend.
Serial.Print ("POS =");
Serial.Print(POS); Uitgang voor seriële waarde van 'pos'.
chestservo.write(POS); Servo wordt verplaatst naar de variabele 'pos'.
delay(25); De wachttijd in msec toe servo te verplaatsen.
//}
voor (pos = 180; pos > = 1; pos-= 1) {/ / voor lus van 180 tot 0 graden gaat
in de stappen van de 1 graden als de servo in de achteruit wordt gezet. Borst wordt geopend.
Serial.Print ("POS =");
Serial.Print(POS); Uitgang voor seriële waarde van 'pos'.
chestservo.write(POS); Servo wordt verplaatst naar de variabele 'pos'.
delay(25); De wachttijd in msec toe servo te verplaatsen.
}
Serial.println("");
delay(2400); Vertraging in msec borst is geopend.
voor (pos = 1; pos < 180; pos += 1) {/ / voor lus gaat van 0 tot 180 graden
in de stappen van de 1 graden als de servo in de achteruit wordt gezet. Borst wordt gesloten.
Serial.Print ("POS =");
Serial.Print(POS); Uitgang voor seriële waarde van 'pos'.
chestservo.write(POS); Servo wordt verplaatst naar de variabele 'pos'.
delay(25); De wachttijd in msec toe servo te verplaatsen.
}
voor (pos = 180; pos > = 1; pos-= 1) {/ / voor lus gaat van 180 tot 0 graden
in stappen van 1 graad. Borst wordt gesloten.
Serial.Print ("POS =");
Serial.Print(POS); Uitgang voor seriële waarde van 'pos'.
chestservo.write(POS); Servo wordt verplaatst naar de variabele 'pos'.
delay(25); De wachttijd in msec toe servo te verplaatsen.
//}
Serial.println("");
delay(200); De wachttijd in msec licht op.
digitalWrite (led13Pin, laag); 2de uitgang ingesteld op laag of uit.
} else {}
digitalWrite (led13Pin, laag); Hiermee stelt u de standaarduitvoer LED LOW of OFF.
int sensorValue = 0; Set integer variabele terug naar 0.
} / / Einde van de IF-instructie.
} / / Einde van de lus.