Étape 5: Magic Chest (récepteur IR) - assembler le Circuit et fichier texte
1. Raccorder le terrain de l’Arduino au bus négatif (-).
2. Branchez le + 5V de l’Arduino au bus positif (+).
3. installer la LED en pliant les broches de sorte que la LED chevauche le bord du plateau. Référez-vous à l’image (fils enlevés pour plus de clarté).
4. Connectez le câble positif (long) à Pin13 numérique.
5. connecter une résistance à la borne négative (courte) de la LED.
6. Raccorder la résistance au bus négatif.
7. installer la photo IR LED en pliant les broches de sorte que la photo IR LED chevauche le bord du plateau. Référez-vous à l’image (fils enlevés pour plus de clarté).
8. Connectez le fil court de la photo IR LED au bus positif.
9. Connectez le fil long de la photo IR LED à Analog Pin0.
10. connecter une résistance de la deuxième à l’IR LED photo et Analog Pin0.
11. connecter la résistance à l’omnibus négatif.
NOTE : La description pour l’installation de la photodiode IR est exacte. La diode fonctionne en empêchant la tension par l’intermédiaire de la borne positive. Quand IR est présent, la diode devient une transmission temporaire et permet de tension être détecté sur Analog Pin0.
12. mettre le servo en connectant l’orange de contrôle (ou jaune) fil à Pin9 numérique.
13. Connectez le câble rouge positif servo au bus positif.
14. Raccorder le fil marron (ou noir) négatif de servo pour le bus négatif.
15. Brancher l’Arduino sur un port USB sur un ordinateur avec l’IDE.
16. Compiler et télécharger le fichier sur l’Arduino. Le servo doit se déplacer et la lumière LED.
17. tester le circuit à l’aide d’un dispositif électroluminescent IR et en ouvrant le moniteur série USB dans l’IDE. Shine, qu'une émission IR LED la photodiode IR et le servo doit se déplacer alors que la LED allumée.
17 a. Si le servo continue à déplacer et le ' pos = ' affiche, tension est détectée sur la Pin0 de l’analogique. Vérifiez que le serial monitor affiche « 0 » pour indiquer qu’aucun IR n’est présent. Vérifiez que la photodiode IR n’est pas inversée en passant les fils de diode IR photo. Vérifiez que les fils négatifs et la résistance sont connectés à la terre de l’Arduino et pas court-circuiter par Analog Pin0. Vérifiez que le Pin0 analogique n’est pas une charge statique et qu’il est coincé en position fermée (haute) en retirant le câble et le câble à le Pin0 analogique à un dispositif ESD de terrage.
17 b. Si la LED ne s’allume, vérifiez que la LED n’est pas inversée et que le positif est connecté au bon conducteur de la LED.
17 c. Si le servo ne fonctionne pas, vérifiez que les couleurs de fils sont connectés correctement.
Arduino Code de texte suivants :
/*
IRdetect sur entrée analogique avec lumière LED et Servo
Lit une broche d’entrée sur analogique 0, imprime le résultat à l’écran de série,
et se déplace d’un servo. Fixez la photodiode IR à broche analogique 0 d’entrée,
LED pour la sortie de la broche numérique 13 extérieur épingles à + 5V et le sol.
Attacher le fil jaune (ou orange) de commande de servo à broche 9, rouge au + 5V,
et noir (ou brun) à la terre.
*/
Initialiser
#include < Servo.h >
Servo chestservo ; Créer l’objet pour contrôler servo servo.
int pos = 0 ; Variable pour stocker la position du servo.
int led13Pin = 13 ; Initialisez la variable 13 pour la broche 13.
Goupilles de réglage et de variables
void setup() {}
Serial.Begin(9600) ; Paramètres de communication série 9600 bits par seconde.
pinMode(led13Pin,OUTPUT) ; Le programme d’installation led13Pin comme une broche de sortie.
chestservo.Attach(9) ; Attache servo jusqu'à la broche 9 à l’objet de servo.
}
Fonction boucle
void loop() {}
int sensorValue = 0 ; Initialisez la variable à 0.
sensorValue = analogRead(A0) ; Définit la variable comme la lire l’entrée sur la broche analogique 0.
Serial.println (sensorValue, DEC) ; Afficher la valeur de que vous lire.
Delay(5) ; Délai en millisecondes entre les deux lectures pour la stabilité.
Si (sensorValue > 2) {/ / si il y a plus de valeur, puis allumer la LED, servo move,
et le retour de sortie série.
Serial.println ("Oui HIGH") ; Sortie série.
digitalWrite (led13Pin, HIGH) ; 2ème sortie la valeur élevé ou sur.
pour (pos = 0; pos < 180; pos += 1) {/ / pour boucle va de 0 à 180 degrés
incréments de 1 degré. Ouvre la poitrine.
Serial.Print ("POS =") ;
Serial.Print(POS) ; Valeur de sortie série de « pos ».
chestservo.Write(POS) ; Servo se déplace à variable « pos ».
Delay(25) ; Retard dans msec pour permettre le servo à déplacer.
//}
pour (pos = 180; pos > = 1; pos-= 1) {/ / pour boucle va de 180 à 0 degrés
incréments de 1 degré si le servo est mis en arrière. Ouvre la poitrine.
Serial.Print ("POS =") ;
Serial.Print(POS) ; Valeur de sortie série de « pos ».
chestservo.Write(POS) ; Servo se déplace à variable « pos ».
Delay(25) ; Retard dans msec pour permettre le servo à déplacer.
}
Serial.println("") ;
Delay(2400) ; Retard dans la poitrine de msec est ouvert.
pour (pos = 1; pos < 180; pos += 1) {/ / boucle FOR va de 0 à 180 degrés
incréments de 1 degré si le servo est mis en arrière. Poitrine ferme.
Serial.Print ("POS =") ;
Serial.Print(POS) ; Valeur de sortie série de « pos ».
chestservo.Write(POS) ; Servo se déplace à variable « pos ».
Delay(25) ; Retard dans msec pour permettre le servo à déplacer.
}
pour (pos = 180; pos > = 1; pos-= 1) {/ / boucle FOR va de 180 à 0 degrés
incréments de 1 degré. Poitrine ferme.
Serial.Print ("POS =") ;
Serial.Print(POS) ; Valeur de sortie série de « pos ».
chestservo.Write(POS) ; Servo se déplace à variable « pos ».
Delay(25) ; Retard dans msec pour permettre le servo à déplacer.
//}
Serial.println("") ;
Delay(200) ; Report de lumière sur msec.
digitalWrite (led13Pin, basse) ; 2ème sortie la valeur faible ou OFF.
} else {}
digitalWrite (led13Pin, basse) ; Définit par défaut LED sortie faible ou OFF.
int sensorValue = 0 ; Set entier variable à 0.
} / / Fin de l’instruction IF.
} / / Fin de boucle.