Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
U ovoj lekciji ćemo koristiti servo motor, fotootpornik i padajući otpornik za sastavljanje automatskog sistema izvora svjetlosti.
Korak 1: Komponente:
- Arduino Uno ploča * 1
- USB kabel * 1
- Servo motor * 1
- fotootpornik * 1
- Otpornik (10 k) * 1
- Oglasna ploča * 1
- Žice za spajanje
Korak 2: Princip
Servo motor i fotootpornik skeniraju i traže izvor svjetlosti u 180 stupnjeva i bilježe lokaciju izvora svjetlosti. Nakon završetka skeniranja, servo motor i fotootpornik zaustavljaju se u smjeru izvora svjetlosti.
Korak 3: Postupci:
Korak 1:
Izgradite kolo.
Korak 2:
Preuzmite kôd sa
Korak 3:
Prenesite skicu na Arduino Uno ploču
Pritisnite ikonu Upload da biste učitali kôd na kontrolnu 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: Šematski dijagram
Korak 5: Kodirajte
/********************************************************************
* ime:
Automatski prati izvor svjetlosti
* funkcija
: ako koristite svjetiljku za osvjetljavanje fotootpornika, * vidjet ćeš
servo motor i fotootpornik se okreću, * i na kraju
zaustavite se u smjeru izvora svjetlosti.
***********************************************************************
/E -pošta: [email protected]
// Web stranica: www.primerobotics.in
#include
const int fotoćelijaPin = A0;
/************************************************/
Servo myservo; // stvoriti servo objekt za upravljanje servo pogonom
int outputValue = 0;
int angle = {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); // povezuje servo na pinu 9 sa servo objektom
}
/*************************************************/
void loop ()
{
za (int i = 0;
i <19; i ++)
{
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);
}