Étape 8: Codage fois
Maintenant il est temps d’écrire le code qui vous permettra de tout pour travailler ensemble. Heureusement pour vous, j’ai enregistré, vous la peine de le faire vous-même et allé de l’avant et il a préparé pour vous.Avant de commencer à coder, veillez à choisir le bon Conseil du compilateur. Nous utilisons un Arduino Mega 2560. Ce code fonctionnera qu’avec ledit Conseil, rien d’autre. Il ne fonctionnera pas avec un Uno ou l’un des nombreux autres conseils Arduino.
Pour modifier le jury dans le compilateur de l’Arduino, accédez à -> Outils -> Arduino Mega 2560 ou Mega ADK.
N’hésitez pas à modifier le code comme bon vous semble.
/ * Cerf Chaser
Cette esquisse lit un PING))) télémètre à ultrasons et retourne le
distance à l’objet le plus proche dans la gamme. Il s’allume puis une série de LEDs quand le max
distance est changé.
En outre, il commence un déplacement de servo
Pour ce faire, il envoie une impulsion
à la sonde d’entamer la lecture, puis écoute une impulsion
pour revenir. La longueur de l’impulsion de retour est proportionnelle à
la distance de l’objet de la sonde.
Le circuit :
* + V branchement de la commande PING))) attaché au + 5V
* Connexion GND du PING))) attaché à la terre
* Connexion de SIG du PING))) attaché à la broche numérique 7
créé : 28 juillet 2013
par : Brian J. Mays
modifiée par :
*/
#include < Servo.h >
Servo myservo ; créer l’objet de servo pour contrôler le servo
const int pingPin = 26; / / numéro d’identification du capteur de sortie
Ajoute dans les lumières
int RedLED = 36 ; LED connectée à la broche numérique 9 (broches pwm)
int GrnLED = 38 ; LED connectée à la broche numérique 10 (broches pwm)
int BluLED = 40 ; LED connectée à la broche numérique 11 (broches pwm)
int LED [3] = {RedLED, GrnLED, BluLED} ; un tableau de rendre plus facile faire bien les couleurs de LED
int deer_counter = 0 ; Mettre le compteur de cerfs à zéro
void setup() {}
initialiser la communication série :
Serial.Begin(9600) ;
Réglez de façon strictement comme les broches de sortie (lumières)
pinMode (RedLED, sortie) ;
pinMode (GrnLED, sortie) ;
pinMode (BluLED, sortie) ;
}
void loop()
{
créer des variables pour la durée du ping,
et le résultat de la distance en pouces et en centimètres :
longue durée, pouces, maxInches ;
Le PING))) est déclenché par une impulsion forte de 2 ou plusieurs microsecondes.
Donner une brève impulsion faible au préalable pour s’assurer une impulsion propre élevée :
pinMode (pingPin, sortie) ;
digitalWrite (pingPin, basse) ;
delayMicroseconds(2) ;
digitalWrite (pingPin, HIGH) ;
delayMicroseconds(5) ;
digitalWrite (pingPin, basse) ;
Le même NIP est utilisé pour lire le signal de la commande PING))): un sommet
impulsion dont la durée est la durée (en microsecondes) de l’envoi
du ping à la réception de son écho hors d’un objet.
pinMode (pingPin, entrée) ;
durée = pulseIn (pingPin, HIGH) ;
convertir l’heure dans un lointain
po = microsecondsToInches(duration) ;
changement de la distance protéger
maxInches = 72 ;
Serial.Print(inches) ;
Serial.Print ("in") ;
Serial.println() ;
Si (pouces < maxInches)
{
deer_counter = deer_counter + 1 ;
Serial.Print ("Deer compteur") ;
Serial.Print(deer_counter) ;
tourner sur servo
myservo.Attach(9) ; attache le servo sur la broche 9 à l’objet de servo
Delay(15) ; attend 15 ms pour le servo atteindre la position
Serial.Print ("détacher le Servo") ;
Clignoter les feux
pour (int fondu = 255 ; fade > = 0; fondu = 5) {}
analogWrite(RedLED, fade) ;
analogWrite(GrnLED, fade) ;
analogWrite(BluLED, fade) ;
Delay(50) ;
}
}
Détacher le servo s’éteigne après instruction IF
myservo.Detach() ;
Delay(100) ;
}
long microsecondsToInches(long microseconds)
{
Selon fiche technique de parallaxe pour le PING))), il y a
73,746 microsecondes par pouce (c'est-à-dire son voyage à 1130 pieds /
en second lieu). Cela donne la distance parcourue par le ping, sortant
et revenez, pour nous diviser par 2 pour obtenir la distance de l’obstacle.
Voir : http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
retourner les microsecondes / 74 / 2 ;
}
long microsecondsToCentimeters(long microseconds)
{
La vitesse du son est de 340 m/s ou 29 microsecondes par centimètre.
Le ping déplace dehors et en arrière, afin de trouver la distance de la
objet, que nous prenons la moitié de la distance parcourue.
retourner les microsecondes / 29 / 2 ;
}