Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
V tej lekciji bomo uporabili servo motor, fotorezistor in izvlečni upor za sestavo sistema za samodejno sledenje svetlobe.
1. korak: Komponente:
- plošča Arduino Uno * 1
- USB kabel * 1
- Servo motor * 1
- fotorezistor * 1
- upor (10k) * 1
- Okvir * 1
- Mostične žice
2. korak: Načelo
Servo motor in foto -upor skenirata in poiščeta svetlobni vir v 180 stopinjah ter zapišeta lokacijo svetlobnega vira. Po končanem skeniranju se servo motor in foto upor ustavita v smeri svetlobnega vira.
3. korak: Postopki:
Korak 1:
Zgradite vezje.
2. korak:
Prenesite kodo s spletnega mesta
3. korak:
Skico naložite na ploščo Arduino Uno
Kliknite ikono za nalaganje, da kodo naložite na nadzorno ploščo.
Če se na dnu okna prikaže "Končano nalaganje", to pomeni, da je bila skica uspešno naložena.
Sedaj, če uporabite svetilko za osvetlitev foto upornika, boste videli, da se servo motor in fotorezistor vrtita in se končno ustavita v smeri svetlobnega vira.
4. korak: Shematski diagram
5. korak: Koda
/********************************************************************
* ime:
Samodejno sledenje svetlobnemu viru
* funkcija
: če uporabljate svetilko za osvetljevanje foto upornika, * boš videl
servo motor in fotorezistor se vrtita, * in končno
ustavite v smeri svetlobnega vira.
***********************************************************************
/E -pošta: [email protected]
// Spletna stran: www.primerobotics.in
#vključi
const int fotocelicaPin = A0;
/************************************************/
Servo myservo; // ustvarite servo objekt za nadzor servo
int outputValue = 0;
int kot = {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); // pritrdi servo na pin 9 na servo objekt
}
/*************************************************/
void loop ()
{
za (int i = 0;
i <19; i ++)
{
myservo.write (kot ); // zapis kota v servo
outputValue
= analogRead (photocellPin); // preberemo vrednost A0
Serial.println (outputValue); // natisnite
if (outputValue> maxVal) // če je trenutna vrednost A0 večja od prejšnje
{
maxVal = outputValue; // zapišite vrednost
maxPos
= i; //
}
zamuda (200);
}
myservo.write (kot [maxPos]); // zapišemo kot na servo, ki ima A0 največjo vrednost
medtem ko (1);
}