PROMO

Kurs ESP8266 #5: Obsługa ADC

4. Przykładowy program #2: Praktyczne wykorzystanie przetwornika ADC

Ten przykład będzie bardziej „życiowy”. Na wejście przetwornika, będziemy mieli podłączony dzielnik wykonany z fotorezystora i rezystora, a na pinie PWM diodę. Koncepcja jest taka, że im mniej światła będzie dochodzić do fotorezystora, tym mocniej będzie świecić dioda – coś na zasadzie układu sterującego lampką solarną.

Schemat:
5_2

Program:

Na początku konfigurujemy wyjście 4. pinu PWM (na płytce NodeMCU niebieska dioda), żeby pracował z częstotliwością 1kHz oraz jego wartość początkowa wynosiła 1023 (dioda wyłączona). Następnie uruchamiamy ten pin. Teraz w pętli głównej programu przypisujemy zmiennej wartoscADC, odczyt z przetwornika ADC, oraz zmiennej moc, zmienną wartoscADC. Tutaj napotykamy mały problem, z którym musimy się uporać. Otóż zakres przetwornika ADC wynosi 0-1024, a zakres PWM jest 0-1023. W momencie, gdy na ADC otrzymamy wartość 1024 to PWM nie będzie w stanie jej obsłużyć przez co program nam się zawiesi. Dlatego musimy zablokować wartość ADC do 1023. W tym momencie musimy skorzystać z instrukcji warunkowej if, gdzie dla odczytów ADC większych lub równych 1023 będziemy zawsze otrzymywać 1023, ponieważ wartości powyżej 1023 będą zawieszać nasz program.
Kolejna instrukcja jest już opcjonalna, ale wytłumaczę o co chodzi. Jeżeli zasłonimy fotorezystor, to wartości ADC będą oscylować w granicach 200-300. Czyli jest bardzo ciemno. W tym przypadku dioda będzie się świecić na 75% mocy; to żeby się świeciła w 100% to możemy dać warunek. Jeżeli wartość ADC będzie mniejsza/równa 250 to zmienna moc- odpowiadająca za PWM -będzie wynosić 0 (100% jasności diody).
Na sam koniec wyświetlamy na monitorze portu szeregowego aktualną wartość ADC oraz ustawiamy wypełnienie PWM równe zmiennej moc. No i już na samym końcu konfigurujemy nasz timer, aby powtarzał program co 50 milisekund.

Efekt jaki powinniśmy uzyskać jest następujący:

Podsumowanie

Po dzisiejszej części kursu powinieneś/aś umieć:

  • podstawowe funkcje obsługujące ADC w języku skryptowym Lua
  • napisać prosty program obsługujący przetwornik analogowo-cyfrowy
  • znać specyfikację przetwornika w ESP8266

 

Materiały do tej części kursu:

Download-icon

 

 

Zobacz pozostałe części kursu [ TUTAJ ]

Jeżeli chcesz być informowany na bieżąco o nowych częściach kursu to kliknij „Lubię to!” bądź subskrybuj naszą stronę, aby otrzymywać na adres e-mail nowości ze strony. Jeżeli masz jakieś pytania to śmiało zadawaj je na forum ; )

  • Stanisław Gromowski

    Bardzo fajnie i przystępnie wytłumaczone, mam nadzieję że to nie koniec :)

    • W niedalekiej przyszłości będzie dalsza część tego kursu ;)

      • Stanisław Gromowski

        To czekam niecierpliwie :)