Étape 3: télécommande Toyota (contrôle)
J’ai eu vraiment mal essayer de « nettoyer » les ordures qui a généré de mon contrôleur RC (j’utilise un vieux de 20 ans émetteur et le récepteur, qui a été donne comme un cadeau pour mon ami pour son 10e anniversaire, c’est tellement vieux que lorsque vous vissez les 4 boulons du carter, l’émetteur cesse de fonctionner, si vous enlevez 2 d'entre eux - il fonctionne à nouveau...)
J’ai utilisé un Arduino Duemilanova, (emprunté après j’ai sauté de mine...)
L’esquisse de l’Arduino est ci-dessous :
RC ToyotaContrôle de la voiture familiale par une télécommande
Août 2013
Pour plus d’informations, consultez Http://www.KeerBot.com
int ch1 = 5 ; Voici où nous tiendrons nos valeurs de canal
int ch2 = 6 ;
int out1 = 8 ;
int out2 = 9 ;
out3 int = 10 ;
int out4 = 11 ;
int out5 = 2 ;
int out6 = 3 ;
gas_operated booléen = false ;
brake_operated booléen = false ;
int ledpin = 13 ;
unsigned long temps ;
void setup() {}
pinMode (ch1, entrée) ; Entrée de récepteur de canal 1
pinMode (ch2, entrée) ; Entrée de récepteur de canal 2
pinMode (out1, sortie) ;
pinMode (sortie out2,) ;
pinMode (out3, sortie) ;
pinMode (out4, sortie) ;
pinMode (out5, sortie) ;
pinMode (out6, sortie) ;
pinMode (ledpin, sortie) ;
Serial.Begin(9600) ; Verser un bol de Serials - (ha ha ha...)
}
void loop() {}
temps = millis() ;
CH1 = pulseIn (5, HIGH, 25000) ; Lire la largeur d’impulsion de
CH2 = pulseIn (6, HIGH, 25000) ; chaque canal
Serial.Print(Time) ;
Serial.Print(";") ;
Serial.Print(CH1) ;
Serial.Print(";") ;
Serial.Print(CH2) ;
Serial.Print(";") ;
Si (ch1 > 1700 & & ch1 < 2200) {}
Serial.Print("2500") ; Récepteur de canal 1 signal
digitalWrite (out1, HIGH) ; ON gaz - piston à gaz FWD
gas_operated = true ;
}
ElseIf (ch1 > 1000 & & ch1 < 1400) {}
Serial.Print("1000") ; Récepteur de canal 1 vers le bas de signal
digitalWrite (out2, HIGH) ; Frein ON - piston frein FWD
brake_operated = true ;
}
else {}
Serial.Print("1500") ; IDLE signal du récepteur canal 1
digitalWrite (out1, faible) ; Pas de gaz au large
digitalWrite (out2, faible) ; Pas de frein au large
Si (brake_operated == true) {}
digitalWrite (ledpin, HIGH) ; Aucun frein ON - piston frein BCK
digitalWrite (out5, HIGH) ; Aucun frein ON - piston frein BCK
Delay(1500) ;
brake_operated = false ;
digitalWrite (ledpin, basse) ; Pas de frein au large
digitalWrite (out5, faible) ; Pas de frein au large
//}
Si (gas_operated == true) {}
digitalWrite (ledpin, HIGH) ; Aucun gaz ON - piston à gaz BCK
digitalWrite (out6, HIGH) ; Aucun gaz ON - piston à gaz BCK
Delay(1500) ;
gas_operated = false ;
digitalWrite (ledpin, basse) ; Pas de gaz au large
digitalWrite (out6, faible) ; Pas de gaz au large
//}
}
Serial.Print(";") ;
Si (ch2 > 1700 & & ch2 < 2200) {}
Serial.println("2500") ; BON signal de canal 2 récepteur
digitalWrite (out3, HIGH) ;
}
ElseIf (ch2 > 1000 & & ch2 < 1400) {}
Serial.println("1000") ; Récepteur canal gauche 2
digitalWrite (out4, HIGH) ;
}
else {}
Serial.println("1500") ; Récepteur canal 2 signal inactif
digitalWrite (out3, faible) ;
digitalWrite (out4, faible) ;
}
Delay(50) ; J’ai mis cela ici, juste pour rendre la fenêtre terminale plus heureux
}