Étape 20 : Le Code
Télécharger ce code sur votre Arduino.
Si vous n’avez pas fait faire, prenez l' Arduino gratuit installer. Lorsque dans le programme n’oubliez pas de définir votre type de Conseil pour une Uno. (Ou quelle que soit la version que vous utilisez.)
Vous pouvez facilement modifier la vitesse et la gamme des servos, le sensitivy des capteurs de dans le code.
Vous pouvez également télécharger le code dans le fichier ci-dessus, ou sur notre site Web.
#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) ;
}