Étape 15 :
J’ai commencé avec un tutoriel de Randofo et utilisé le code de dougstrickland comme base pour cette opération. Besoin d’une ou deux choses à noter. Courant moteur augmente lorsque les moteurs commencent à tourner, et lorsqu’ils rencontrent de la résistance (mur). J’ai mesurer le courant après que les moteurs ont eu une seconde pour y aller--dans le cas contraire, je vais toujours détecter un courant élevé et avoir des ennuis. Si vous opérez sur le tapis, les valeurs de « analogRead » devrez peut-être être plus élevé car il faut plus de travail des moteurs.
Le solénoïde de sourire et remue la queue sont contrôlés par un relais assuré par broche 7 de l’Arduino.
valm int = 0 ;
int valm1 = 0 ;
const int Pw101 = 3 ;
const int pwmB = 11 ;
const int brakeA = 9 ;
const int brakeB = 8 ;
const int dirA = 12 ;
const int dirB = 13 ;
const int relais = 7 ;
void setup() {}
pinMode (dirA, sortie) ;
pinMode (brakeA, sortie) ;
pinMode (dirB, sortie) ;
pinMode (brakeB, sortie) ;
pinMode (sortie, relais) ;
digitalWrite (dirA, HIGH); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 255); //full vitesse A
digitalWrite (dirB, HIGH) ;
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 255) ;
digitalWrite (relais, faible) ;
retard (1000); //get passé courant de démarrage
}
void loop() {}
digitalWrite (dirA, HIGH); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 255); //full vitesse A
digitalWrite (dirB, HIGH) ;
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 255) ;
VALM=analogRead(0) ;
valm1=analogRead(1) ;
Si (valm > 45 ou valm1 > 45) {}
digitalWrite (brakeA, HIGH) ;
digitalWrite (brakeB, HIGH) ;
digitalWrite (dirA, LOW); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 255); //full vitesse A
digitalWrite (dirB, faible) ;
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 255) ;
Delay(2000) ;
digitalWrite (brakeA, HIGH); //stop une roue
Delay(1000) ;
digitalWrite (brakeB, HIGH); //stop autre roue
digitalWrite (relais, HIGH); //smile et queue sur
Delay(2000) ;
digitalWrite (relais, LOW); //turn sourire et aiguillette baronne
démarrer les deux roues avant
digitalWrite (dirA, HIGH); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 255); //full vitesse A
digitalWrite (dirB, HIGH) ;
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 255) ;
retard (1000); //get passé courant de démarrage
}}