Étape 2: Programmation de l’Arduino
1er-vous aurez besoin d’inscrire la bibliothèque de l’IR à Arduino(Voici un lien)2-mettre dans le code (attaché)
3e-utiliser le bouton #1 pour ouvrir le servo et le bouton #2 pour le fermer
Voici le code-
#include < Servo.h >
#include < Ultrasonic.h >
#include « IRremote.h »
#define TRIGGER_PIN 12 / / capteur à ultrasons TRIGGER
#define ECHO_PIN 13 / / ECHO du capteur à ultrasons
#define DISTANCE 20 / / en centimètres
#define attend 5000 / / en millisecondes alors il s’agit de 5 secondes.
#define SERVO_PIN 9
#define CLOSE_POS 90 / / servo en gros/position
#define OPEN_POS 180 / / position du servo dans OPEN/dos
/ *---(Déclarer des constantes)---* /
récepteur int = 11 ; broche 1 du récepteur IR pour Arduino numérique broche 11
/ *---(Déclarer des objets)---* /
IRrecv irrecv(receiver) ; création d’instance de « irrecv »
résultats de la decode_results ; création d’instance de « decode_results »
/ *---(Déclarer des Variables)---* /
Ultrason ultrasonique (TRIGGER_PIN, ECHO_PIN) ;
Servo myservo ; créer l’objet de servo pour contrôler le servo PEZ
void setup()
{
Serial.Begin(9600) ;
myservo.Attach(SERVO_PIN) ; attache le servo pour épingler
myservo.Write(CLOSE_POS) ; mettre servo en position CLOSE/UP
Serial.println ("données brutes récepteur IR + bouton décode Test") ;
irrecv.enableIRIn() ; Démarrer le récepteur
}
void loop()
{
Si (irrecv.decode (et résultats)) / / si nous avons reçu un signal IR ?
{
Serial.println (results.value, HEX) ; UN commentaire pour voir les valeurs brutes
translateIR() ;
irrecv.Resume() ; recevoir la valeur suivante
}
}
flotteur cmMsec, inMsec ;
microsec long = ultrasonic.timing() ;
//
cmMsec = ultrasonic.convert (microsec, Ultrasonic::CM) ;
inMsec = ultrasonic.convert (microsec, Ultrasonic::IN) ;
//
Il s’agit pour le débogage
Serial.Print ("MS:") ;
Serial.Print(MICROSEC) ;
Serial.Print (", CM:") ;
Serial.Print(cmMsec) ;
Serial.Print (", IN:") ;
Serial.println(inMsec) ;
Delay(1000) ;
//
void setup() / *---(programme d’installation : s’exécute une fois)---* /
//
/ / Serial.begin(9600) ;
Serial.println ("données brutes récepteur IR + bouton décode Test") ;
irrecv.enableIRIn() ; Démarrer le récepteur
//
} / *--(réglage fin)---* /
//
void loop() / *---(boucle : fonctionne en permanence)---* /
// {
Si (irrecv.decode (et résultats)) / / si nous avons reçu un signal IR ?
//
// {
Serial.println (results.value, HEX) ; UN commentaire pour voir les valeurs brutes
translateIR() ;
irrecv.Resume() ; recevoir la valeur suivante
// }
} / *--(boucle principale fin)--* /
/ *---(Déclarer des fonctions écrites par l’utilisateur)---* /
void translateIR() / / prend action basée sur le code d’IR
décrivant les codes IR de MP3 de voiture
{
Switch(Results.value)
{
affaire 0xFF30CF :
Serial.println ("1") ;
myservo.Write(OPEN_POS) ; dire de servo pour aller à ouvert/arrière
rupture ;
affaire 0xFF18E7 :
Serial.println ("2") ;
myservo.Write(CLOSE_POS) ; dire de servo pour aller à fermer/UP
rupture ;
par défaut :
Serial.println ("autre bouton") ;
}
Delay(500) ;
}
myservo.Write(CLOSE_POS) ; dire de servo pour aller à fermer/UP
Delay(15) ; attend 15 ms pour le servo atteindre la position
//
//
//
myservo.Write(OPEN_POS) ; dire de servo pour aller à ouvert/arrière
Delay(Waiting) ; attend un certain temps pour permettre l’accaparement des granulés de bonbons
//
//
//}