Spisu treści:

Czujnik światła (fotorezystor) z Arduino w Tinkercad: 5 kroków (ze zdjęciami)
Czujnik światła (fotorezystor) z Arduino w Tinkercad: 5 kroków (ze zdjęciami)

Wideo: Czujnik światła (fotorezystor) z Arduino w Tinkercad: 5 kroków (ze zdjęciami)

Wideo: Czujnik światła (fotorezystor) z Arduino w Tinkercad: 5 kroków (ze zdjęciami)
Wideo: Jak rozpocząć pracę z mikrokontrolerem Arduino i zestawem konstrukcyjnym? | Moje Bambino 2024, Listopad
Anonim
Czujnik światła (fotorezystor) z Arduino w Tinkercad
Czujnik światła (fotorezystor) z Arduino w Tinkercad

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.

Obraz
Obraz

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

Zbuduj obwód
Zbuduj obwód
Zbuduj obwód
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

Kod z blokami
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)

Zbuduj fizyczny obwód Arduino (opcjonalnie)
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: