9. Télécommande¶
Ce kit est livré avec un récepteur IR, qui vous permet d’utiliser une télécommande IR pour contrôler le mouvement de la voiture.
Composants requis
Pour ce projet, nous avons besoin des composants suivants.
Il est certainement pratique d’acheter un kit complet, voici le lien :
Nom |
ÉLÉMENTS DANS CE KIT |
LIEN |
---|---|---|
3 in 1 Starter Kit |
380+ |
Vous pouvez également les acheter séparément via les liens ci-dessous.
INTRODUCTION DES COMPOSANTS |
LIEN D’ACHAT |
---|---|
- |
|
- |
|
- |
Câblage
Construisez maintenant le circuit selon le schéma ci-dessous.
Récepteur IR |
Carte R3 |
---|---|
OUT |
12 |
GND |
GND |
VCC |
5V |
Code
Note
Ouvrez le fichier
9.remote_control.ino
situé dans le dossier3in1-kit\car_project\9.remote_control
.Ou copiez ce code dans Arduino IDE.
La bibliothèque
IRremote
est utilisée ici, vous pouvez l’installer depuis le Library Manager.
Après le téléchargement réussi du code, appuyez sur le bouton de la télécommande, la LED clignotera une fois pour indiquer que le signal a été reçu, et la voiture se déplacera selon le bouton que vous avez pressé. Vous pouvez appuyer sur les touches suivantes pour contrôler la voiture.
+ : Accélérer
- : Ralentir
1 : Avancer à gauche
2 : Avancer
3 : Avancer à droite
4 : Tourner à gauche
6 : Tourner à droite
7 : Reculer à gauche
8 : Reculer
9 : Reculer à droite
Comment ça fonctionne ?
L’effet de ce projet est de faire bouger la voiture en lisant la valeur clé de la télécommande IR. De plus, la LED sur la broche 13 clignotera pour indiquer la réception réussie du signal IR.
Importez la bibliothèque
IRremote
, vous pouvez l’installer depuis le Library Manager.#include <IRremote.h> const int IR_RECEIVE_PIN = 12; // Define the pin number for the IR Sensor
Initialise la communication série à un débit de 9600 bauds. Initialise le récepteur IR sur la broche spécifiée (
IR_RECEIVE_PIN
) et active le retour LED (si applicable).... void setup() { ... //IR remote IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Start the receiver Serial.println("REMOTE CONTROL START"); }
Lorsque vous appuyez sur les touches de la télécommande, le récepteur infrarouge saura quelle touche est pressée, puis la voiture se déplacera en fonction de la valeur clé correspondante.
void loop() { if (IrReceiver.decode()) { // Serial.println(results.value,HEX); String key = decodeKeyValue(IrReceiver.decodedIRData.command); if (key != "ERROR") { Serial.println(key); if (key == "+") { speed += 50; } else if (key == "-") { speed -= 50; } else if (key == "2") { moveForward(speed); delay(1000); ... } IrReceiver.resume(); // Enable receiving of the next value } }
Vérifie si un signal IR est reçu et décodé avec succès.
Décode la commande IR et la stocke dans
key
à l’aide d’une fonctiondecodeKeyValue()
personnalisée.Vérifie si la valeur décodée n’est pas une erreur.
Imprime la valeur IR décodée sur le moniteur série.
Reprend la réception du signal IR pour le signal suivant.