Arduino Light Seeker: 3 trin

Arduino Light Seeker: 3 trin

Indholdsfortegnelse:

Anonim

Først og fremmest er jeg fra Schweiz, så vær venlig at undskyld mine engelske fejl.

Her er et af mit første lille projekt, jeg gjorde med min Arduino Uno.

Det er bare en lille lys søgende. Servo vender mod lyset.

Jeg lavede en video for at vise dig, hvad det gør:

forsyninger:

Trin 1: Ledningerne

Her er den nøjagtige ledninger, jeg brugte.

Den eneste forskel er, at jeg fik fast fotoresistors på servo (men jeg kunne ikke gøre det med programmet)

Jeg brugte også et 9V batteri i videoen, det blev plugget i Vin og GND.

Modstandene er 200 ohm for LED'erne og 10 KOhm for fotoresistorer.

Trin 2: Koden

Dette er min første kode. Jeg forsøgte at oversætte kommentarerne på engelsk.

Arduino beregner forskellen mellem venstre og højre fotoresistor og vender servo, hvis forskellen er større end 30.

Når servo drejes med uret, lyser den højre LED. Når den vender mod uret lyser den venstre LED

Hvis du ser fejl eller rare ting, så fortæl mig:)

#omfatte

Servo servo; // definere servo

// Variabler

int photoD = 0; // definer pin 0 for højre fotoresistor

int photoG = 1; // definer pin 1 for venstre fotoresistor

int ledD = 3; // definer pin 3 for højre LED

int ledG = 5; // definer pin 5 for venstre LED

int incr = 5; // værdi for at tilføje til vinklen

int valS; //vinkel

lange temps; //Tid

lange temps2; // Tid 2

lange temps3; // Tid 3

lange temps4; // Tid 4

//----------------------------------------------------------------------------

//Opsætning

void setup ()

{

pinMode (3, OUTPUT); // Definer output pin 3

pinMode (5, OUTPUT); // definere output pint 5

servo.attach (8); // servo på pin 8

Serial.begin (9600); // Start seriekommunikation

temps = millis ();

servo.write (75); // Startposition for servo

}

//----------------------------------------------------------------------------

// Loop

void loop ()

{

int valG; // photoG værdi

int valD; // photoD værdi

valD = analogRead (photoD);

valG = analogRead (photoG);

// Viser værdierne på skærmen hvert sekund

hvis (temps + 1000 <millis ()) {

Serial.print ("højre fotoresistorværdi:");

Serial.println (Vald);

Serial.print ("left photoresistor value:");

Serial.println (Valg);

Serial.print ("Angle:");

Serial.println (valS);

Serial.println ("----------------------");

temps = millis ();

}

hvis (temps3 + 1000 <millis () && (valD - valG> 20) && (valS <180)) {

Serial.println ("Drejer mod uret");

temps3 = millis ();

}

hvis (temps4 + 1000 <millis () && (valG-valD> 20) && (valS> 0)) {

Serial.println ("Drej med uret");

temps4 = millis ();

}

hvis (valD - valG> 30) {

valS = valS + incr;

digitalWrite (ledG, HIGH);

}

hvis (valG - valD> 30) {

valS = valS - incr;

digitalWrite (ledD, HIGH);

}

hvis (valS> 0 || valS <180) {

servo.write (valS); // vender servo

}

hvis (valS <= 0) {

valS = 0;

}

hvis (valS> = 180) {

valS = 180;

}

hvis (temps2 + 500 <millis () && valD - valG <30 && valG - valD <30) {

digitalWrite (ledD, LOW);

digitalWrite (ledG, LOW);

temps2 = millis ();

}

forsinkelse (30);

}

Trin 3: Enden

Og … det er alt!

Jeg håber du nød dette projekt!

Har du spørgsmål, er du velkommen til at spørge.