Stap 2: De code
Dit is mijn eerste code. Ik heb geprobeerd om te vertalen van de opmerkingen in het Engels.De Arduino berekent het verschil tussen de linker- en fotoweerstand en draait de servo als het verschil groter is dan 30.
Wanneer de servo draait met de klok mee, oplicht de juiste LED. Wanneer het draait tegen de klok, LED oplicht links
Als er fouten of raar ding, vertel me :)
#include
Servo de servo; define servo
Variabelen
int photoD = 0; define pin 0 voor de juiste photoresistor
int photoG = 1; definiëren van pin 1 voor linker photoresistor
int ledD = 3; pin 3 definiëren voor juiste LED
int ledG = 5; pin 5 definiëren voor linker LED
int incr = 5; waarde toe te voegen aan de hoek
int valS; hoek
lange temps; Tijd
lange temps2; Tijd 2
lange temps3; Tijd 3
lange temps4; Tijd 4
//----------------------------------------------------------------------------
Setup
VOID Setup
{
pinMode (3, OUTPUT); define uitgang pins 3
pinMode (5, OUTPUT); definiëren van uitvoer pint 5
Servo.attach(8); Servo op pin 8
Serial.begin(9600); Start seriële communicatieboekjes
temps = millis();
Servo.write(75); Aanvankelijke standpunt voor de servo
}
//----------------------------------------------------------------------------
Loop
void loop
{
int valG; photoG waarde
int valD; photoD waarde
valD = analogRead(photoD);
valG = analogRead(photoG);
De waarden worden weergegeven op de monitor met elke seconde
Als (temps + 1000 < millis()) {}
Serial.Print ("rechts fotoweerstand waarde:");
Serial.println(valD);
Serial.Print ("fotoweerstand waarde links:");
Serial.println(valG);
Serial.Print ("hoek:");
Serial.println(valS);
Serial.println("---");
temps = millis();
}
Als (temps3 + 1000 < millis() & & (valD - valG > 20) & & (valS < 180)) {}
Serial.println ("draaien tegen de klok");
temps3 = millis();
}
Als (temps4 + 1000 < millis() & & (valG - valD > 20) & & (valS > 0)) {}
Serial.println ("draaien");
temps4 = millis();
}
Als (valD - valG > 30) {}
valS = valS + incr;
digitalWrite(ledG,HIGH);
}
Als (valG - valD > 30) {}
valS = valS - incr;
digitalWrite(ledD,HIGH);
}
Als (valS > 0 || valS < 180) {}
Servo.write(valS); draait de servo
}
Als (valS < = 0) {}
valS = 0;
}
Als (valS > = 180) {}
valS = 180;
}
Als (temps2 + 500 < millis() & & valD - valG < 30 & & valG - valD < 30) {}
digitalWrite(ledD,LOW);
digitalWrite(ledG,LOW);
temps2 = millis();
}
delay(30);
}