Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tej lekcji użyjemy serwomotoru, fotorezystora i rezystora pull-down, aby zmontować automatycznie śledzący system źródła światła.
Krok 1: Komponenty:
- Płytka Arduino Uno * 1
-Kabel USB * 1
-Silnik serwo * 1
- fotorezystor * 1
- Rezystor (10k) * 1
-Płytka chlebowa * 1
- Przewody połączeniowe
Krok 2: Zasada
Serwomotor i fotorezystor skanują i szukają źródła światła pod kątem 180 stopni i rejestrują położenie źródła światła. Po zakończeniu skanowania serwomotor i fotorezystor zatrzymują się w kierunku źródła światła.
Krok 3: Procedury:
Krok 1:
Zbuduj obwód.
Krok 2:
Pobierz kod z
Krok 3:
Prześlij szkic na płytkę Arduino Uno
Kliknij ikonę Prześlij, aby przesłać kod do tablicy kontrolnej.
Jeśli na dole okna pojawi się komunikat „Zakończono przesyłanie”, oznacza to, że szkic został pomyślnie przesłany.
Teraz, jeśli użyjesz latarki do zaświecenia fotorezystora, zobaczysz, jak serwomotor i fotorezystor obracają się, a na koniec zatrzymają się w kierunku źródła światła.
Krok 4: Schemat ideowy
Krok 5: Kod
/********************************************************************
* Nazwa:
Automatyczne śledzenie źródła światła
* funkcja
: jeśli używasz latarki do świecenia fotorezystora, * zobaczysz
serwosilnik i fotorezystor obracają się, * i w końcu
zatrzymaj się w kierunku źródła światła.
***********************************************************************
/E-mail: [email protected]
//Strona internetowa: www.primerobotics.in
#włączać
const int fotokomórkaPin = A0;
/************************************************/
Servo myservo;//utwórz obiekt servo do sterowania serwo
int wartośćwyjściowa = 0;
kąt int = {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;
/*************************************************/
pusta konfiguracja()
{
Serial.początek(9600);
myservo.attach(9);// dołącza serwo na pinie 9 do obiektu servo
}
/*************************************************/
pusta pętla()
{
for(int i = 0;
< 19; ++)
{
myservo.write(angle);//wpisz kąt do servo
Wartość wyjściowa
= analogRead(fotokomórkaPin);//odczytaj wartość A0
Serial.println(outputValue);//print it
if(outputValue > maxVal)//jeśli aktualna wartość A0 jest większa niż poprzednia
{
maxVal = outputValue;//zapisz wartość
maxPos
=i;//
}
opóźnienie(200);
}
myservo.write(angle[maxPos]);//wpisz kąt do serwa, którego A0 ma największą wartość
natomiast(1);
}