Rezystor zależny od światła - czujnik LDR z esptop 10 za pomocą Arduino IDE

Rezystor zależny od światła - czujnik LDR z esptop 10 za pomocą Arduino IDE

ESP32 to potężny mikrokontroler wyposażony w funkcje IoT. ESP32 z LDR może mierzyć intensywność światła i wyzwolić reakcję zgodnie z nim. Korzystając z ESP32 i LDR, możemy stworzyć projekt zdalnego wykrywania światła i zaprojektować różne innowacyjne rozwiązania IoT dla różnych branż i aplikacji.

W tym przewodniku podstawy LDR i jego aplikacje z ESP32 zostaną omówione.

1: Wprowadzenie do czujnika LDR

2: Zastosowania LDR z ESP32

3: Interfejs LDR z ESP32 za pomocą Arduino IDE

    • 1: Schemat
    • 2: Kod
    • 3: Wyjście pod Dim Light
    • 4: Wyjście pod jasnym światłem

Wniosek

1: Wprowadzenie do czujnika LDR

A LIght Dependent RESISTOR (LDR) jest rodzajem rezystora, który zmienia jego rezystancję w oparciu o intensywność światła, na którą jest narażony. W ciemności jego odporność jest bardzo wysoka, podczas gdy w jasnym świetle jego odporność jest bardzo niska. Ta zmiana oporu sprawia, że ​​jest to najlepsze w projektach wykrywania światła.


Analogowe piny ESP32 przekształcają napięcia przychodzące na liczbę całkowitą między 0 a 4095. Ta wartość liczb całkowita jest odwzorowana w stosunku do analogowego napięcia wejściowego od 0 V do 3.3v, który jest domyślnie napięcie odniesienia ADC w ESP32. Ta wartość jest odczytywana za pomocą Arduino analogread () Funkcja z LDR.

Aby uzyskać bardziej szczegółowy przewodnik i pinout ADC ESP32 Przeczytaj artykuł ESP32 ADC - Odczyt wartości analogowe z Arduino IDE.


ESP32 ma wbudowany konwerter analogowo-cyfrowy (ADC), który może mierzyć napięcie na LDR i przekształcić go w sygnał cyfrowy, który może być przetwarzany przez mikrokontroler. Korzystanie z tego sygnału ESP32 określa opór LDR, który jest proporcjonalny do intensywności światła.

Tutaj będziemy używać pinów ESP32 ADC Channel 1.


Fotony lub cząstki światła odgrywają kluczową rolę w obsłudze LDRS. Gdy światło spada na powierzchnię LDR, fotony są wchłaniane przez materiał, który następnie uwalnia elektrony w materiale. Liczba wolnych elektronów jest wprost proporcjonalna do intensywności światła, a im więcej elektronów, tym niższy staje się opór LDR.

2: Zastosowania LDR z ESP32

Poniżej znajduje się lista niektórych aplikacji LDR opartych na IoT z ESP32:

    • Przełącznik aktywowany światłem
    • Wskaźnik poziomu światła
    • Tryb nocny w urządzeniach
    • Systemy bezpieczeństwa oparte na świetle
    • Inteligentne systemy oświetlenia
    • Wrażliwe na światło systemy bezpieczeństwa
    • Monitorowanie roślin
    • Energooszczędne oświetlenie
    • Zautomatyzowane rolety okienne

3: Interfejs LDR z ESP32 za pomocą Arduino IDE

Aby użyć LDR z ESP32, musimy podłączyć LDR z pinem kanału ESP32 ADC. Po tym kodzie Arduino, który odczytuje wartości analogowe z pinu wyjściowego LDR. Aby zaprojektować ten obwód, potrzebujemy LDR, rezystora i płyty ESP32.

LDR i rezystor są połączone szeregowo, z LDR połączoną z Kanał analogowy 1 Pin wejściowy ESP32. Dioda LED zostanie dodana do obwodu, który może przetestować pracę LDR.

1: Schemat

Schemat obwodu do interfejsu LDR z ESP32 jest dość prosty. Musimy podłączyć LDR i rezystor w konfiguracji podziału napięcia i podłączyć wyjście dzielnika napięcia z ADC (analogowo -cyfrowy konwerter) ESP32. Kanał ADC 1 Pin D34 jest używany jako wejście analogowe dla ESP32.

Następujący obraz jest schematem ESP32 z czujnikiem LDR.

2: Kod

Po skonfigurowaniu obwodu następnym krokiem jest napisanie kodu dla ESP32. Kod odczytuje wejście analogowe z LDR i użyje go do kontrolowania LED lub innego urządzenia na podstawie różnych poziomów światła.

int ldr_val = 0; /*Zmienna do przechowywania wartości fotorezystora*/
Int czujnik = 34; /*Wejście analogowe dla fotorezystora*/
int LED = 25; /*Pin wyjściowy LED*/
void setup ()
Seryjny.rozpocząć (9600); /*Wskaźnik transmisji seryjnej*/
pinmode (LED, wyjście); / *Zestaw szpilki LED jako wyjście */

void Loop ()
Ldr_val = analogread (czujnik); /*Analog odczytu wartość LDR*/
Seryjny.print („Wartość wyjściowa LDR:”);
Seryjny.println (ldr_val); /*Wyświetl LDR wyjściowy VAL na monitor szeregowych*/
if (ldr_val> 100) /*jeśli intensywność światła jest wysoka* /
Seryjny.println („wysoka intensywność”);
DigitalWrite (LED, niski); /*Dioda LED pozostaje z wyłączenia*/

w przeciwnym razie
/*Inaczej, jeśli intensywność światła jest niska dioda LED, pozostanie na*/
Seryjny.println („Niska intensywność”);
DigitalWrite (LED, High); /* Włączanie LID wartość LDR jest mniejsza niż 100*/

opóźnienie (1000); /*Odczytuje wartość po co 1 sekundę*/


W powyższym kodzie używamy LDR z ESP32, który będzie kontrolował LED przy użyciu analogowego wejścia pochodzącego z LDR.

Pierwsze trzy wiersze kodu deklarują zmienne do przechowywania Wartość fotosystor, Pin analogowy dla fotorezystora i PROWADZONY Pin wyjściowy.

w organizować coś() Funkcja, komunikacja szeregowa jest inicjowana z szybkością transmisji 9600, a PIN LED D25 jest ustawiany jako wyjściowy.

w pętla() Funkcja, wartość fotorezystora jest odczytywana za pomocą funkcji analogread (), która jest przechowywana w Ldr_val zmienny. Wartość fotorezystora jest następnie wyświetlana na monitor szeregowych za pomocą szeregowego.funkcja println ().

Jakiś Jeśli inaczej Instrukcja służy do kontrolowania diody LED na podstawie intensywności światła wykrytych przez fotorezyster. Jeśli wartość fotorezystora jest większa niż 100, oznacza to, że intensywność światła jest wysoka, a dioda LED pozostaje. Jeśli jednak wartość fotorezystora jest mniejsza lub równa 100, oznacza to, że intensywność światła jest niska, a dioda LED włącza.

Wreszcie program czeka na 1 sekundę za pomocą funkcji opóźnienia () przed ponownym przeczytaniem wartości fotorezystora. Cykl ten powtarza się w nieskończoność, powodując włączenie i wyłączanie diody LED na podstawie intensywności światła wykrytych przez fotorezyster.

3: Wyjście pod Dim Light

Intensywność światła jest mniejsza niż 100, więc LED pozostanie włączony.

4: Wyjście pod jasnym światłem

W miarę wzrostu intensywności światła wartość LDR wzrośnie, a opór LDR spadnie, więc LED się wyłączy.

Wniosek

LDR można połączyć z ESP32 za pomocą pinu ADC Channel 1. Wyjście LDR może kontrolować wykrywanie światła w różnych aplikacjach. Dzięki niskiej i kompaktowej wielkości ESP32 i LDR dokonują atrakcyjnego wyboru dla projektów IoT, które wymagają możliwości wykrywania światła. Za pomocą Arduino analogread () funkcja możemy odczytać wartości z LDR.