Spisu treści:
- Krok 1: Zbuduj obwód
- Krok 2: Kod z blokami
- Krok 3: Wyjaśnienie kodu fotorezystora Arduino
- Krok 4: Zbuduj fizyczny obwód Arduino (opcjonalnie)
- Krok 5: Następnie spróbuj…
Wideo: Czujnik światła (fotorezystor) z Arduino w Tinkercad: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:29
Projekty Tinkercad »
Nauczmy się odczytywać fotorezystor, światłoczuły typ rezystora zmiennego, za pomocą wejścia analogowego Arduino. Jest również nazywany LDR (rezystor zależny od światła).
Do tej pory nauczyłeś się już sterować diodami LED za pomocą wyjścia analogowego Arduino i odczytywać potencjometr, który jest innym rodzajem rezystora zmiennego, więc w tej lekcji będziemy opierać się na tych umiejętnościach. Pamiętaj, że wejścia analogowe Arduino (piny oznaczone A0-A6) mogą wykryć stopniowo zmieniający się sygnał elektryczny i zamienić ten sygnał na liczbę z zakresu od 0 do 1023.
Zbadaj przykładowy obwód osadzony tutaj na płaszczyźnie roboczej, klikając opcję Rozpocznij symulację i klikając fotorezystor (brązowy owal z falistą linią pośrodku), a następnie przeciągnij suwak jasności, aby dostosować symulowane światło wejściowe.
W tej lekcji sam zbudujesz symulowany obwód obok próbki. Aby opcjonalnie zbudować fizyczny obwód, zbierz swoją płytkę Arduino Uno, kabel USB, płytkę stykową bez lutowania, diodę LED, rezystory (220 omów i 4,7 k omów), fotorezystor i przewody płytki stykowej.
Możesz śledzić wirtualnie za pomocą obwodów Tinkercad. Możesz nawet obejrzeć tę lekcję z poziomu Tinkercad (wymagane bezpłatne logowanie)! Zbadaj przykładowy tor i zbuduj swój własny tuż obok niego. Tinkercad Circuits to darmowy program oparty na przeglądarce, który pozwala budować i symulować obwody. Jest idealny do nauki, nauczania i tworzenia prototypów.
Krok 1: Zbuduj obwód
Spójrz na przedstawiony na zdjęciu obwód płytki stykowej. Przydatne może być przyjrzenie się wersji tego przykładowego obwodu z okablowaniem swobodnym, pokazanej na zdjęciu. W tym kroku zbudujesz własną wersję tego obwodu obok próbki na płaszczyźnie roboczej.
Aby przejść dalej, załaduj nowe okno Tinkercad Circuits i zbuduj własną wersję tego obwodu obok próbki.
Zidentyfikuj fotorezystor, diodę LED, rezystory i przewody podłączone do Arduino na płaszczyźnie roboczej Tinkercad Circuits.
Przeciągnij Arduino Uno i płytkę stykową z panelu komponentów na płaszczyznę roboczą, obok istniejącego obwodu.
Podłącz szyny zasilania (+) i uziemienia (-) odpowiednio do Arduino 5V i uziemienia (GND), klikając, aby utworzyć przewody.
Rozciągnij szyny zasilające i uziemiające do odpowiednich szyn na przeciwnej krawędzi płytki stykowej (opcjonalne dla tego obwodu, ale dobra powszechna praktyka).
Podłącz diodę LED do dwóch różnych rzędów płytek stykowych, tak aby katoda (ujemna, krótsza noga) była połączona z jedną nogą rezystora (dowolna wartość od 100-1K omów). Rezystor może pracować w dowolnej orientacji, ponieważ rezystory nie są spolaryzowane, w przeciwieństwie do diod LED, które muszą być podłączone w określony sposób, aby działały.
Podłącz drugą nogę rezystora do masy.
Podłącz anodę LED (dodatnia, dłuższa nóżka) do pinu 9 Arduino.
Przeciągnij fotorezystor z panelu komponentów na płytkę prototypową, tak aby jego nogi wpięły się w dwa różne rzędy.
Kliknij, aby utworzyć przewód łączący jedną nogę fotorezystora z zasilaniem.
Drugą nogę podłącz do pinu analogowego A0 Arduino.
Przeciągnij rezystor z panelu komponentów, aby połączyć nogę fotorezystora podłączoną do A0 z masą i dostosuj jego wartość do 4,7 k omów.
Krok 2: Kod z blokami
Użyjmy edytora bloków kodu, aby posłuchać stanu fotorezystora, a następnie ustawmy diodę LED na względną jasność w zależności od tego, ile światła widzi czujnik. Możesz chcieć odświeżyć pamięć wyjścia analogowego LED w lekcji Fading LED.
Kliknij przycisk „Kod”, aby otworzyć edytor kodu. Szare bloki Notation to komentarze służące do zapisywania tego, co zamierzasz zrobić w swoim kodzie, ale ten tekst nie jest wykonywany jako część programu.
Kliknij kategorię Zmienne w edytorze kodu.
Aby zapisać wartość rezystancji fotorezystora, utwórz zmienną o nazwie „sensorValue”.
Przeciągnij blok „zestawu”. Stan naszego fotorezystora będziemy przechowywać w zmiennej
czujnikValue
Kliknij kategorię Wejście i przeciągnij blok „analogowy pin odczytu” i umieść go w bloku „ustaw” po słowie „do”
Ponieważ nasz potencjometr jest podłączony do Arduino na pinie A0, zmień listę rozwijaną na A0.
Kliknij kategorię Wyjście i przeciągnij blok „drukuj do monitora szeregowego”.
Przejdź do kategorii Zmienne i przeciągnij zmienną sensorValue do bloku „drukuj do monitora szeregowego” i upewnij się, że menu rozwijane jest ustawione na drukowanie z nowym wierszem. Opcjonalnie rozpocznij symulację i otwórz monitor szeregowy, aby sprawdzić, czy odczyty przychodzą i zmieniają się podczas regulacji czujnika. Wartości wejść analogowych mieszczą się w zakresie 0-1023.
Ponieważ chcemy pisać do diody LED z liczbą od 0 (wyłączone) do 255 (pełna jasność), użyjemy bloku „mapa”, aby wykonać dla nas kilka krzyżowych mnożenia. Przejdź do kategorii Matematyka i przeciągnij blok „mapa”.
W pierwszym slocie przeciągnij blok zmiennej sensorValue, a następnie ustaw zakres od 0 do 255.
Wróć do kategorii Wyjście, przeciągnij analogowy blok „ustaw pin”, który domyślnie mówi „ustaw pin 3 na 0”. Dostosuj go, aby ustawić pin 9.
Przeciągnij wcześniej utworzony blok mapy do pola „do” bloku „ustaw pin”, aby zapisać dopasowaną liczbę do pinu LED za pomocą PWM.
Kliknij kategorię Sterowanie i przeciągnij blok oczekiwania i dostosuj go, aby opóźnić program o 0,1 sekundy.
Krok 3: Wyjaśnienie kodu fotorezystora Arduino
Gdy edytor kodu jest otwarty, możesz kliknąć menu rozwijane po lewej stronie i wybrać „Bloki + tekst”, aby wyświetlić kod Arduino wygenerowany przez bloki kodu. Śledź dalej, gdy będziemy bardziej szczegółowo badać kod.
int sensorValue = 0;
Zanim
Ustawiać()
tworzymy zmienną do przechowywania aktualnej wartości odczytanej z potencjometru. To jest nazwane
int
ponieważ jest to liczba całkowita lub dowolna liczba całkowita.
pusta konfiguracja()
{ pinMode (A0, WEJŚCIE); pinMode(9, WYJŚCIE); Serial.początek(9600); }
Wewnątrz konfiguracji szpilki są konfigurowane za pomocą
pinMode()
funkcjonować. Pin A0 jest skonfigurowany jako wejście, dzięki czemu możemy "nasłuchiwać" stanu elektrycznego potencjometru. Pin 9 jest skonfigurowany jako wyjście do sterowania diodą LED. Aby móc wysyłać wiadomości, Arduino otwiera nowy kanał komunikacji szeregowej z
Serial.początek()
który przyjmuje argument szybkości transmisji (jaką prędkość komunikować), w tym przypadku 9600 bitów na sekundę.
pusta pętla()
{ // odczytaj wartość z czujnika sensorValue = analogRead(A0); // wydrukuj odczyt czujnika, aby znać jego zakres Serial.println(sensorValue);
Wszystko po serii ukośników
//
to komentarz, który pomaga ludziom zrozumieć prostym językiem, do czego program ma służyć, ale nie jest zawarty w programie uruchamianym przez Arduino. W głównej pętli funkcja o nazwie
analogowyOdczyt();
sprawdza stan pinu A0 (który będzie liczbą całkowitą od 0-1023) i przechowuje tę wartość w zmiennej
czujnikValue
// mapowanie odczytu czujnika na zakres dla diody LED
analogWrite(9, map(sensorValue, 0, 1023, 0, 255)); opóźnienie (100); // Czekaj na 100 milisekund }
Wiersz następujący po następnym komentarzu robi dużo na raz. Pamiętać
analogZapis()
przyjmuje dwa argumenty, numer pin (9 w naszym przypadku) i wartość do zapisania, która powinna wynosić od 0 do 255. Funkcja inline
mapa()
przyjmuje pięć argumentów: liczbę do oceny (ciągle zmieniająca się zmienna czujnika), oczekiwane minimum i oczekiwane maksimum oraz pożądane minimum i maksimum. Więc
mapa()
funkcja w naszym przypadku ocenia przychodzącą wartość sensorValue i wykonuje pewne mnożenie krzyżowe w celu skalowania wyjścia z 0-1023 do 0-255. Wynik jest zwracany do drugiego argumentu
analogZapis();
ustawiając jasność diody LED podłączonej do pinu 9.
Krok 4: Zbuduj fizyczny obwód Arduino (opcjonalnie)
Aby zaprogramować fizyczne Arduino Uno, musisz zainstalować bezpłatne oprogramowanie (lub wtyczkę do edytora stron internetowych), a następnie je otworzyć. Różne fotokomórki mają różne wartości, więc jeśli Twój obwód fizyczny nie działa, może być konieczna zmiana sparowanego z nim rezystora. Dowiedz się więcej o dzielnikach napięcia w lekcji Instructables Electronics Class poświęconej rezystorom.
Podłącz obwód Arduino Uno, podłączając komponenty i przewody, aby pasowały do połączeń pokazanych tutaj w Tinkercad Circuits. Aby uzyskać bardziej szczegółowy opis pracy z fizyczną płytką Arduino Uno, zapoznaj się z bezpłatną klasą Instructables Arduino.
Skopiuj kod z okna kodu Tinkercad Circuits i wklej go do pustego szkicu w oprogramowaniu Arduino lub kliknij przycisk pobierania (strzałka skierowana w dół) i otwórz
wynikowy plik za pomocą Arduino. Możesz również znaleźć ten przykład w oprogramowaniu Arduino, przechodząc do Plik -> Przykłady -> 03. Analog -> AnalogInOutSerial.
Podłącz kabel USB i wybierz swoją płytę i port w menu Narzędzia oprogramowania.
Prześlij kod i użyj dłoni, aby zasłonić czujnik przed światłem i/lub oświetlić czujnik!
Otwórz monitor szeregowy, aby obserwować wartości czujnika. Prawdopodobne jest, że wartości ze świata rzeczywistego nie zwiększą się do 0 lub do 1023, w zależności od warunków oświetleniowych. Możesz dostosować zakres 0-1023 do obserwowanego minimum i obserwowanego maksimum, aby uzyskać maksymalny zakres ekspresji jasności na diodzie LED.
Krok 5: Następnie spróbuj…
Teraz, gdy nauczyłeś się czytać fotorezystor i mapować jego wyjście w celu kontrolowania jasności diody LED, możesz zastosować te i inne umiejętności, których się do tej pory nauczyłeś.
Czy możesz zamienić diodę LED na inny typ wyjścia, na przykład serwomotor, i utworzyć kod odzwierciedlający aktualny poziom światła czujnika jako określoną pozycję wzdłuż wskaźnika?
Spróbuj wymienić fotorezystor na inne wejścia analogowe, takie jak ultradźwiękowy czujnik odległości lub potencjometr.
Dowiedz się więcej o tym, jak monitorować wejścia cyfrowe i analogowe Arduino za pomocą komputera za pomocą monitora szeregowego.
Zalecana:
Fotorezystor Arduino LED: 4 kroki
Arduino Fotorezystor LED: Mój projekt dotyczy fotorezystora obniżającego światło diody LED w zależności od światła zewnętrznego. Inspirację czerpałem z Tech, A Style. „Włączanie/wyłączanie diody fotorezystora Arduino”. Instructables, Instructables, 8 października 2017 r., www.instructables.com/Arduino-Photore
DIY czujnik oddechu z Arduino (przewodzący czujnik rozciągnięcia dzianiny): 7 kroków (ze zdjęciami)
Czujnik oddechu DIY z Arduino (przewodzący czujnik rozciągnięcia dzianiny): Ten czujnik DIY przyjmie postać przewodzącego czujnika rozciągnięcia dzianiny. Będzie owijał się wokół klatki piersiowej/żołądka, a gdy klatka piersiowa/żołądek rozszerza się i kurczy, podobnie czujnik, a w konsekwencji dane wejściowe, które są przesyłane do Arduino. Więc
Zdalnie sterowany włącznik światła Bluetooth - modernizacja. Włącznik światła nadal działa, bez dodatkowego pisania.: 9 kroków (ze zdjęciami)
Zdalnie sterowany włącznik światła Bluetooth - modernizacja. Przełącznik światła nadal działa, bez dodatkowego pisania.: aktualizacja z 25 listopada 2017 r. - W przypadku wersji tego projektu o dużej mocy, która może kontrolować kilowaty obciążenia, zobacz Doposażenie sterowania BLE w obciążenia o dużej mocy - nie jest wymagane dodatkowe okablowanie Aktualizacja z 15 listopada 2017 r. - Niektóre płyty BLE / stosy oprogramowania dostarczają
PROSTY CZUJNIK ŚWIATŁA SŁONECZNEGO: 6 kroków (ze zdjęciami)
PROSTY CZUJNIK ŚWIATŁA SŁONECZNEGO: Postępuj zgodnie z instrukcjami, aby z powodzeniem zbudować własny czujnik światła. Bardzo przydatne w automatycznym systemie oświetleniowym. Komponenty: 7805 Regulator IC SL100 tranzystor LED (najlepiej czerwony) 150ohm Rezystor Zasilanie 9V Przekaźnik (6V) LDR (powszechnie dostępny) Łącz
Czujnik dotykowy i czujnik dźwięku kontrolujący światła AC/DC: 5 kroków
Czujnik dotykowy i czujnik dźwięku kontrolujący światła AC/DC: To mój pierwszy projekt i działa w oparciu o dwa podstawowe czujniki, jeden to czujnik dotykowy, a drugi to czujnik dźwięku, po naciśnięciu panelu dotykowego na czujniku dotykowym włącza się światło AC ON, jeśli go zwolnisz, światło będzie wyłączone i to samo