Étape 27 :
analogRead(2) valeurs déterminent le point de déclenchement pour la cellule photoélectrique.
les valeurs analogRead(0) et analogRead(1) déterminent le courant qui provoque l’Arduino à penser que le paquet a heurté un obstacle. Si vous exécutez sur le tapis, les valeurs devrez peut-être être plus élevé. Si vous exécutez les moteurs plus rapidement, la valeur devrez peut-être être plus élevé.
Notez que le « démarrage actuel » sur les moteurs est supérieur à l’actuel « run »--c’est pourquoi il y a un délai avant la vérification avant les valeurs actuelles.
valm int = 0 ;
int valm1 = 0 ;
déclencheur d’int = 0 ;
int triggerlock = 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 (sortie, relais) ;
digitalWrite (relais, HIGH) ;
retard (500); //leave relais sur.5 seconde--rend « eek » sound
digitalWrite (relais, faible) ;
}
void loop() {}
Trigger=analogRead(2) ;
Si (déclencher < 900 ou triggerlock > 0) {//light qui brille sur capteur appartenant ou ayant
triggerlock = 10 ; //don't recontrôler lumière
pinMode (dirA, sortie) ;
pinMode (brakeA, sortie) ;
pinMode (dirB, sortie) ;
pinMode (brakeB, sortie) ;
digitalWrite (dirA, HIGH); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 150); //set vitesse A
digitalWrite (dirB, HIGH); //forward B moteur
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 150); //set Vitesse B
VALM=analogRead(0) ;
valm1=analogRead(1) ;
Si (valm > 520 ou valm1 > 520) {}
digitalWrite (relais, HIGH); //turn sur son « eek »
Delay(100) ;
digitalWrite (relais, faible) ;
digitalWrite (brakeA, HIGH); //stop moteur A
digitalWrite (brakeB, HIGH); //stop B moteur
digitalWrite (dirA, LOW); //reverse A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 150); //set vitesse A
digitalWrite (dirB, LOW); //reverse B
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 150); //set Vitesse B
Delay(300) ;
digitalWrite (brakeA, HIGH); //stop une roue
Delay(400) ;
digitalWrite (brakeB, HIGH); //stop autre roue
démarrer les deux roues avant
digitalWrite (dirA, HIGH); //forward A
digitalWrite (brakeA, LOW); //release frein A
analogWrite (Pw101, 150); //set vitesse A
digitalWrite (dirB, HIGH); //forward B
digitalWrite (brakeB, basse) ;
analogWrite (pwmB, 150); //set Vitesse B
retard (700); //get passé courant de démarrage
}}}