2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V této lekci použijeme servomotor, fotorezistor a stahovací odpor k sestavení systému automatického sledování světelného zdroje.
Krok 1: Součásti:
- Deska Arduino Uno * 1
- USB kabel * 1
- Servomotor * 1
- fotorezistor * 1
- Rezistor (10k) * 1
- Breadboard * 1
- Propojovací vodiče
Krok 2: Princip
Servomotor a fotorezistor skenují a hledají světelný zdroj o 180 stupňů a zaznamenávají polohu světelného zdroje. Po dokončení skenování se servomotor a fotorezistor zastaví ve směru světelného zdroje.
Krok 3: Postupy:
Krok 1:
Vybudujte obvod.
Krok 2:
Stáhněte si kód z
Krok 3:
Nahrajte skicu na desku Arduino Uno
Kliknutím na ikonu Odeslat odešlete kód na ovládací panel.
Pokud se ve spodní části okna zobrazí „Hotovo nahrávání“, znamená to, že skica byla úspěšně nahrána.
Nyní, když použijete baterku k zazáření fotorezistoru, uvidíte, jak se servomotor a fotorezistor otáčejí a nakonec se zastaví ve směru světelného zdroje.
Krok 4: Schematický diagram
Krok 5: Kód
/********************************************************************
* název:
Automatické sledování světelného zdroje
* funkce
: použijete -li ke svícení fotorezistoru svítilnu, * uvidíš
servomotor a fotorezistor se otáčejí, * a nakonec
zastavte ve směru světelného zdroje.
***********************************************************************
/E -mail: [email protected]
// Webové stránky: www.primerobotics.in
#zahrnout
konstantní fotobuňka Pin = A0;
/************************************************/
Servo myservo; // vytvoření objektu serva pro ovládání serva
int outputValue = 0;
int úhel = {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;
/*************************************************/
neplatné nastavení ()
{
Serial.begin (9600);
myservo.attach (9); // připojí servo na pin 9 k objektu serva
}
/*************************************************/
prázdná smyčka ()
{
pro (int i = 0;
i <19; i ++)
{
myservo.write (úhel ); // zapište úhel na servo
outputValue
= analogRead (photocellPin); // načte hodnotu A0
Serial.println (outputValue); // vytiskněte
if (outputValue> maxVal) // if the current value of A0 is greater than previous
{
maxVal = outputValue; // zapište hodnotu
maxPos
= i; //
}
zpoždění (200);
}
myservo.write (úhel [maxPos]); // zapište úhel na servo, jehož A0 má největší hodnotu
zatímco (1);
}