Étape 11 : El código para controlar el seguidor
Sube el código aquí al Arduino.
Ud. puede Québec el código para cambiar el sensibilidad de los sensores y la velocidad de los servos.
#include / / include bibliothèque Servo
180 MAX horizontal
Servo horizontaux ; servo horizontaux
int servoh = 180 ; 90 ; support de servo horizontaux
int servohLimitHigh = 180 ;
int servohLimitLow = 65 ;
65 degrés MAX
Servo vertical ; servo vertical
int г = 45 ; 90 ; stand vertical servo
int servovLimitHigh = 80 ;
int servovLimitLow = 15 ;
Connexions des broches LDR
nom = analogpin ;
int ldrlt = 0 ; LDR en haut à gauche - gauche bas <---BDG
int ldrrt = 1 ; LDR rigt haut - bas à droite
int ldrld = 2 ; LDR bas gauche - haut gauche
int ldrrd = 3 ; LDR baisse rigt - haut droite
void setup()
{Serial.begin(9600) ;
connexions de servo
Name.attacht(pin) ;
horizontal.Attach(9) ;
vertical.Attach(10) ;
horizontal.Write(180) ;
vertical.Write(45) ;
Delay(3000) ;
}
void loop()
{int lt = analogRead(ldrlt); / / en haut à gauche
int rt = analogRead(ldrrt) ; en haut à droite
int ld = analogRead(ldrld) ; bas gauche
rd int = analogRead(ldrrd) ; bas à droite
dtime int = analogRead 4/20 ; lire les potentiomètres
int tol = analogRead 5/4 ;
dtime int = 10 ; int tol = 50 ;
avt int = (lt + rt) / 2 ; haut de la valeur moyenne
avd int = (ld + rd) / 2 ; valeur moyenne vers le bas
avl int = (lt + ld) / 2 ; valeur moyenne gauche
avr int = (rt + rd) / 2 ; valeur moyenne droite
int dvert = avt - avd ; vérifier la diffirence de haut en bas
int dhoriz = avl - avr; / / vérifier la diffirence og gauche et rigt
Serial.Print(AVT) ;
Serial.Print("") ;
Serial.Print(AVD) ;
Serial.Print("") ;
Serial.Print(AVL) ;
Serial.Print("") ;
Serial.Print(AVR) ;
Serial.Print("") ;
Serial.Print(dtime) ;
Serial.Print("") ;
Serial.Print(TOL) ;
Serial.println("") ;
Si (-1 * tol > dvert || dvert > tol) / / vérification si la diffirence est dans la tolérance d’autre changement angle vertical
{
Si (avt > avd)
{
г = ++ г ;
Si (г > servovLimitHigh)
{
г = servovLimitHigh ;
}
}
ElseIf (avt < avd)
{
г =--г ;
Si (г < servovLimitLow)
{
г = servovLimitLow ;
}
}
vertical.Write(servov) ;
}
Si (-1 * tol > dhoriz || dhoriz > tol) / / vérifier si la diffirence est dans la tolérance d’autre changement d’angle horizontal
{
Si (avl > avr)
{
servoh =--servoh ;
Si (servoh < servohLimitLow)
{
servoh = servohLimitLow ;
}
}
ElseIf (avl < avr)
{
servoh = ++ servoh ;
Si (servoh > servohLimitHigh)
{
servoh = servohLimitHigh ;
}
}
ElseIf (avl = avr)
{
rien
}
horizontal.Write(servoh) ;
}
Delay(dtime) ;
}