Étape 7: Code Final
* Programme pour un Robot de recherche léger simple.
* créé par : Anuj
* (c) tous droits réservés
*
* Base robotique devrait inclure la commande différentielle.
*
* Installation physique :
* Deux LDRs reliés au sol et broche analogique 1(Right) et broche analogique 2(left)
* base de Transistors NPN sur les broches 11(right) et 12(left).
*
*
******************************************************************************************************************/
À l’aide d’Arduino Duemilinove
Définitions de pin - attache une variable à une broche.
const int RightMotor = 2 ; Cette broche est utilisée pour activer ou désactiver le moteur droit. Connecté à la base d’un transistor NPN.
const int LeftMotor = 3 ; Cette broche est utilisée pour activer ou désactiver le moteur gauche. Connecté à la base d’un transistor NPN.
const int RightSensor = 1 ; Cette broche est utilisée pour lire la valeur du capteur droit.
const int LeftSensor = 2 ; Cette broche est utilisée pour lire la valeur du capteur gauche.
Définitions de variable
int SensorLeft ; Cette option stocke la valeur de l’axe gauche capteur à utiliser plus tard dans le sketch
int SensorRight ; Cette option stocke la valeur de l’axe droit capteur à utiliser plus tard dans le sketch
int SensorDifference ; Cette valeur est utilisée pour déterminer la différence entre la gauche et la droite
la méthode setup() s’exécute une fois lorsque le programme est exécuté. Lors de la
Arduino est réinitialisé, la setup() sera exécutée une fois de plus.
void setup() {}
pinMode (LeftMotor, sortie) ; Définit cette broche en tant que sortie. L’Arduino écrira des valeurs à cette broche.
pinMode (RightMotor, sortie) ; Définit cette broche en tant que sortie. L’Arduino écrira des valeurs à cette broche.
pinMode (entrée, LeftSensor) ; Définit cette broche en tant qu’entrée. L’Arduino lira les valeurs de cette broche.
pinMode (entrée, RightSensor) ; Définit cette broche en tant qu’entrée. L’Arduino lira les valeurs de cette broche.
digitalWrite (A1, élevé) ; Permet une résistance pullup interne
digitalWrite (A2, élevé) ; Permet une résistance pullup interne
Serial.Begin(9600) ; Permet une connexion série par le biais de l’Arduino USB ou UART (bornes 0 & 1). Notez que le débit en bauds correspond à 9600
Serial.println (« \nBeginning lumière recherche de comportement ») ; Placé à la fin de void Setup() pour qu’il soit s’exécute une seule fois, juste avant le void Loop()
}
la méthode loop() exécute maintes et maintes fois,
aussi longtemps que l’Arduino a pouvoir
void loop() {}
SensorLeft = 1023 - analogRead(LeftSensor) ; Ce lit la valeur de la sonde, puis l’enregistre à l’entier correspondant.
Delay(1) ;
SensorRight = 1023 - analogRead(RightSensor) ; Ce lit la valeur de la sonde, puis l’enregistre à l’entier correspondant.
Delay(1) ;
SensorDifference = abs (SensorLeft - SensorRight) ; Il calcule la différence entre les deux capteurs et puis l’enregistre à un entier.
Cette section de l’esquisse est utilisée pour imprimer les valeurs de la
capteurs à travers de la série de l’ordinateur. Utile pour déterminer
Si les capteurs fonctionnent et si le code fonctionne aussi correctement.
Serial.Print ("capteur à gauche =") ; Imprime le texte à l’intérieur des guillemets.
Serial.Print(SensorLeft) ; Imprime la valeur de la sonde de gauche.
Serial.Print("\t") ; Imprime un onglet (espace).
Serial.Print ("capteur à droite =") ; Imprime le texte à l’intérieur des guillemets.
Serial.Print(SensorRight) ; Imprime la valeur de la sonde de droit.
Serial.Print("\t") ; Imprime un onglet (espace).
Cette section de l’esquisse est ce qu’interperets effectivement les données et exécute ensuite les moteurs en conséquence.
Si (SensorLeft > SensorRight & & SensorDifference > 75) {/ / Ceci est interprété comme si le capteur de gauche indique plus de lumière que le capteur de droite, pour ce faire :
digitalWrite (RightMotor, élevé) ; Ceci est utilisé pour tourner à gauche. Avis le
digitalWrite (LeftMotor, basse) ; en face de courses de moteur de tourner à gauche.
Serial.println("left") ; Ceci affiche gauche lorsque le robot serait vraiment tourner à gauche.
}
Si (SensorLeft < SensorRight & & SensorDifference > 75) {/ / Ceci est interprété comme si le capteur gauche mesure moins de lumière que le capteur de droite, pour ce faire :
digitalWrite (RightMotor, basse) ; Ceci est utilisé pour tourner à droite. Avis le
digitalWrite (LeftMotor, élevé) ; en face de courses de moteur de tourner à droite.
Serial.println("Right") ; Ceci affiche droit lorsque le robot aurait en fait tourner à droite.
}
ElseIf (SensorDifference < 75) {/ / Ceci est interprété comme si la différence entre les deux capteurs est moins 125 (expérience en fonction de nos capteurs), pour ce faire :
digitalWrite (RightMotor, élevé) ; Cela sert à aller tout droit. Avis
digitalWrite (LeftMotor, élevé) ; les deux moteurs sont activés pour aller de l’avant.
Serial.println("Forward") ; Cela imprime vers l’avant lorsque le robot serait en fait aller de l’avant.
}
Serial.Print("\n") ;
}