Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U ovoj lekciji koristit ćemo servo motor, fotootpornik i padajući otpornik za sastavljanje automatskog sustava izvora svjetlosti.
Korak 1: Komponente:
- Arduino Uno ploča * 1
- USB kabel * 1
- Servo motor * 1
- fotootpornik * 1
- Otpornik (10k) * 1
- Oglasna ploča * 1
- Žice za kratkospojnike
Korak 2: Princip
Servo motor i fotootpornik skeniraju i traže izvor svjetlosti u 180 stupnjeva te bilježe mjesto izvora svjetlosti. Nakon završetka skeniranja, servo motor i fotootpornik zaustavljaju se u smjeru izvora svjetlosti.
Korak 3: Postupci:
Korak 1:
Izgradite krug.
Korak 2:
Preuzmite kôd s
3. korak:
Prenesite skicu na Arduino Uno ploču
Pritisnite ikonu za prijenos da biste učitali kôd na upravljačku ploču.
Ako se na dnu prozora pojavi poruka "Gotovo učitavanje", to znači da je skica uspješno učitana.
Sada, ako upotrijebite svjetiljku za osvjetljavanje fotootpornika, vidjet ćete kako se servo motor i fotootpornik okreću, te se konačno zaustaviti u smjeru izvora svjetlosti.
Korak 4: Shematski dijagram
Korak 5: Kodirajte
/********************************************************************
* Ime:
Automatski prati izvor svjetlosti
* funkcija
: ako koristite svjetiljku za osvjetljavanje fotootpora, * vidjet ćeš
servo motor i fotootpornik se okreću, * i konačno
zaustaviti u smjeru izvora svjetlosti.
***********************************************************************
/E -pošta: [email protected]
// Web stranica: www.primerobotics.in
#uključi
const int fotoćelijaPin = A0;
/************************************************/
Servo myservo; // stvoriti servo objekt za upravljanje servo pogonom
int outputValue = 0;
int kut = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0;
int maxPos = 0;
/*************************************************/
void setup ()
{
Serial.begin (9600);
myservo.attach (9); // priključuje servo na pin 9 na servo objekt
}
/*************************************************/
void loop ()
{
za (int i = 0;
i <19; ja ++)
{
myservo.write (angle ); // upisuje kut u servo
outputValue
= analogRead (photocellPin); // očitavanje vrijednosti A0
Serial.println (outputValue); // ispišite ga
if (outputValue> maxVal) // ako je trenutna vrijednost A0 veća od prethodne
{
maxVal = outputValue; // zapišite vrijednost
maxPos
= i; //
}
kašnjenje (200);
}
myservo.write (angle [maxPos]); // upisuje kut u servo koji A0 ima najveću vrijednost
while (1);
}