INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
In hierdie les gebruik ons 'n servomotor, 'n fotoresistor en 'n aftrekweerstand om 'n outomaties opspoorbare ligbronstelsel saam te stel.
Stap 1: Komponente:
- Arduino Uno -bord * 1
- USB -kabel * 1
- Servomotor * 1
- fotoresistor * 1
- Weerstand (10k) * 1
- Broodbord * 1
- Springdrade
Stap 2: Beginsel
Die servomotor en die fotoresistor soek en kyk na 'n ligbron in 180 grade en teken die ligging van die ligbron op. Na afloop van die skandering stop die servomotor en die fotoresistor in die rigting van die ligbron.
Stap 3: Prosedures:
Stap 1:
Bou die kring.
Stap 2:
Laai die kode af van
Stap 3:
Laai die skets op na die Arduino Uno -bord
Klik op die ikoon Oplaai om die kode na die beheerbord op te laai.
As 'Klaar oplaai' onderaan die venster verskyn, beteken dit dat die skets suksesvol opgelaai is.
As u nou 'n flitslig gebruik om die fotoresistor te laat skyn, sal u sien dat die servomotor en die fotoresistor draai, en uiteindelik stop in die rigting van die ligbron.
Stap 4: Skematiese diagram
Stap 5: Kode
/********************************************************************
* naam:
Volg ligbron outomaties op
* funksie
: as u 'n flitslig gebruik om die fotoresistor te laat skyn, * jy sal sien
die servomotor en die fotoresistor draai, * en uiteindelik
stop in die rigting van die ligbron.
***********************************************************************
/E -pos: [email protected]
// Webwerf: www.primerobotics.in
#insluit
const int photocellPin = A0;
/************************************************/
Servo myservo; // skep servo -voorwerp om 'n servo te beheer
int outputValue = 0;
int hoek = {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;
/*************************************************/
leemte opstelling ()
{
Serial.begin (9600);
myservo.attach (9); // heg die servo op pen 9 aan die servo -voorwerp
}
/*************************************************/
leemte lus ()
{
vir (int i = 0;
ek <19; ek ++)
{
myservo.write (hoek ); // skryf die hoek na servo
outputValue
= analogRead (photocellPin); // lees die waarde van A0
Serial.println (outputValue); // druk dit uit
if (outputValue> maxVal) // as die huidige waarde van A0 groter is as die vorige
{
maxVal = outputValue; // skryf die waarde neer
maksPos
= ek; //
}
vertraging (200);
}
myservo.write (hoek [maxPos]); // skryf die hoek na servo waarvan A0 die grootste waarde het
terwyl (1);
}