Stap 20: De Code
Upload deze code naar uw Arduino.
Als je niet hebt gedaan doen, pak de gratis Arduino installeren. Wanneer in het programma zorg dat uw bestuur type instellen op een Uno. (Of welke versie u gebruikt.)
U kunt gemakkelijk de snelheid en het bereik van de servo's, de predictictieve van de sensoren, van binnen de code wijzigen.
U kunt ook de code als bestand hierboven, of uit onze websitedownloaden.
#include / / Servo bibliotheek
180 horizontale MAX
Servo horizontale; horizontale servo
int servoh = 180; 90; staan de horizontale servo
int servohLimitHigh = 180;
int servohLimitLow = 65;
65 graden MAX
Servo verticale; verticale servo
int servov = 45; 90; verticale servo staan
int servovLimitHigh = 80;
int servovLimitLow = 15;
LDR pin aansluitingen
naam = analogpin;
int ldrlt = 0; LDR linksboven - onderkant linker <---BDG
int ldrrt = 1; LDR top rigt - RECHTSONDER
int ldrld = 2; LDR omlaag links / TOP links
int ldrrd = 3; LDR neer rigt - RECHTSBOVEN
VOID Setup
{Serial.begin(9600);
Servo verbindingen
name.attacht(PIN);
Horizontal.attach(9);
Vertical.attach(10);
Horizontal.write(180);
Vertical.write(45);
delay(3000);
}
void loop
{int lt = analogRead(ldrlt); / / top links
int rt = analogRead(ldrrt); rechts boven
int ld = analogRead(ldrld); naar linksonder
int rd = analogRead(ldrrd); naar rechtsonder
int rekenwijze = analogRead (4) / 20; Lees potentiometers
int tol = analogRead (5) / 4;
int rekenwijze = 10; int tol = 50;
int avt = (lt + rt) / 2; gemiddelde waarde boven
int avd = (ld + rd) / 2; gemiddelde waarde omlaag
int avl = (lt + ld) / 2; gemiddelde waarde links
int avr = (rt + rd) / 2; gemiddelde waarde rechts
int dvert = avt - avd; Controleer het verschil van op en neer
int dhoriz = avl - avr; / / check verschil og links en 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("");
Als (-1 * tol > dvert || dvert > tol) / / controleren als het verschil in de tolerantie anders veranderen verticale hoek
{
Als (avt > avd)
{
servov = ++ servov;
Als (servov > servovLimitHigh)
{
servov = servovLimitHigh;
}
}
anders als (avt < avd)
{
servov =--servov;
Als (servov < servovLimitLow)
{
servov = servovLimitLow;
}
}
Vertical.write(servov);
}
Als (-1 * tol > dhoriz || dhoriz > tol) / / controleren als het verschil in de tolerantie anders veranderen horizontale hoek
{
Als (avl > avr)
{
servoh =--servoh;
Als (servoh < servohLimitLow)
{
servoh = servohLimitLow;
}
}
anders als (avl < avr)
{
servoh = ++ servoh;
Als (servoh > servohLimitHigh)
{
servoh = servohLimitHigh;
}
}
anders als (avl = avr)
{
niets
}
Horizontal.write(servoh);
}
delay(DTIME);
}