Voiture télécommandée IR
Composants et fournitures
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Outils et machines nécessaires
|
À propos de ce projet
J'ai trouvé le design original sur Instructables et en ai construit une version. L'original était un véhicule de piste et celui-ci est à 4 roues motrices. L'ajustement à la conception d'origine vient dans la configuration de l'IR. La conception d'origine souffrait d'un retour d'information lorsque les moteurs fonctionnaient, ce qui interférait avec le récepteur IR. Les moteurs agissaient comme des générateurs là où les fils de terre se rencontraient. J'ai changé les broches et les affectations pour l'IR
Assemblez la base de la voiture en suivant les instructions fournies si vous utilisez le kit rover SAINSMART. Trouvé ici
Récepteur infrarouge :
int receiver_pin =4; //Connectez la broche de sortie 4 du contrôleur au récepteur IR Y
int vcc =5; //Connectez la broche de sortie 5 du contrôleur au récepteur IR V
int terre =6; //Connectez la broche de sortie 4 du contrôleur au récepteur IR G
Module d'entraînement du moteur L298N :
// moteur A
int enA =8 ;
int in1 =12 ;
int in2 =11 ;
// moteur B
int enB =7 ;
int in3 =10 ;
int in4 =9 ;
Module d'entraînement du moteur L298N GND vers contrôleur GND
Module d'entraînement de moteur L298N aux moteurs :
//Jeu moteur A côté droit
Connectez-vous le côté "+" (Rouge) des moteurs vers Out 4
Connectez le côté "-" (noir) des moteurs à Out 3
// Ensemble moteur B côté gauche
Connectez-vous le côté "+" (Rouge) des moteurs vers Out 2
Connectez le côté "-" (noir) des moteurs à Out 1
Connectez la batterie au module d'entraînement L298N "+" (rouge) à VCC et "-" (noir) à GND
Diagramme complet
Code
- Voiture télécommandée IR
Voiture télécommandée IRC#
#includecommande char ;int receiver_pin =4 ; //Connectez la broche de sortie du récepteur IR à la broche 4int vcc =5; //VCC pour capteur IR gnd =6; //GND pour IR sensorint statusled =13;IRrecv irrecv(receiver_pin);decode_results results;// connecter les broches du contrôleur de moteur aux broches numériques Arduino// moteur Aint enA =8;int in1 =12;int in2 =11;// moteur Bint enB =7;int in3 =10;int in4 =9;void setup(){Serial.begin(9600);irrecv.enableIRIn();pinMode(statusled,OUTPUT);digitalWrite(statusled,LOW);// set toutes les broches de commande du moteur vers les sorties pinMode (enA, OUTPUT); pinMode(enB, SORTIE); pinMode(in1, SORTIE); pinMode(in2, SORTIE); pinMode(in3, SORTIE); pinMode(in4, SORTIE); pinMode(vcc, SORTIE); pinMode(terre, SORTIE); // Initialisation de la broche vcc high digitalWrite(vcc, HIGH);}void loop() {if (irrecv.decode(&results)) {digitalWrite(statusled,LOW);irrecv.resume();if (results.value ==0xFF18E7 ){ // tapez button 2 forward robot control // cette fonction fera tourner les moteurs dans les deux sens à une vitesse fixe Serial.println("Button 2"); // allume le moteur A digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100);} else if(results.value ==0xFF10EF){ // tapez le bouton 4 tournez à gauche le contrôle du robot // cette fonction fera fonctionner le moteur A dans sens avant moteur B stop Serial.println("Bouton 4"); // allume le moteur A digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, LOW); digitalWrite(in4, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100); }else if(results.value ==0xFF30CF){ // tapez le bouton 1 tournez à gauche la commande du robot // cette fonction fera tourner le moteur A vers l'avant, le moteur B vers l'arrière Serial.println("Button Turn Right"); // allume le moteur A digitalWrite(in1, HIGH); digitalWrite(in2, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, LOW); digitalWrite(in4, HAUT); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100); }else if(results.value ==0xFF5AA5){ // tapez le bouton 6 tournez à droite le contrôle du robot // cette fonction arrêtera le moteur A, fera tourner le moteur B vers l'avant Serial.println("Button Turn Left"); // allume le moteur A digitalWrite(in1, LOW); digitalWrite(in2, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100);} else if(results.value ==0xFF7A85){ // tapez le bouton 3 tournez à droite le contrôle du robot // cette fonction fera fonctionner le moteur A dans sens arrière moteur B dans les sens avant // allume le moteur A digitalWrite(in1, LOW); digitalWrite(in2, HAUT); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, HIGH); digitalWrite(in4, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100);} else if(results.value ==0xFF4AB5){ // tapez le bouton 8 commande de robot en arrière // cette fonction fera fonctionner le moteur A et le moteur B vers l'arrière // allume le moteur A digitalWrite(in1, LOW); digitalWrite(in2, HAUT); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, LOW); digitalWrite(in4, HAUT); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100);} else if(results.value ==0xFF38C7){ // tapez le bouton 5 arrêter le contrôle du robot // cette fonction arrêtera à la fois le moteur A et moteur B // allume le moteur A digitalWrite(in1, LOW); digitalWrite(in2, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enA, 100); // allume le moteur B digitalWrite(in3, LOW); digitalWrite(in4, LOW); // régler la vitesse sur 200 hors de la plage possible 0~255 analogWrite(enB, 100); }}}
Schémas
Processus de fabrication
- Constructeur C#
- Télécommande universelle Raspberry Pi
- Contrôle de remplissage de la piscine
- Moniteur de fréquence cardiaque à distance
- Réutiliser la télécommande infrarouge indésirable pour arrêter et redémarrer Raspberry Pi
- L'attaque de sécurité ICS permet le contrôle à distance des bâtiments
- Cloud monitoring, un système de contrôle à distance
- 5 avantages du contrôle de production à distance
- Télécommande de pont roulant :tout ce que vous devez savoir