Spisu treści:

RaspberryPi: Zanikanie i wyłączanie diody LED: 4 kroki (ze zdjęciami)
RaspberryPi: Zanikanie i wyłączanie diody LED: 4 kroki (ze zdjęciami)

Wideo: RaspberryPi: Zanikanie i wyłączanie diody LED: 4 kroki (ze zdjęciami)

Wideo: RaspberryPi: Zanikanie i wyłączanie diody LED: 4 kroki (ze zdjęciami)
Wideo: TV LG BRAK OBRAZU , WŁĄCZA SIĘ JEST GŁOS JAK SPRAWDZIĆ I CO WYMIENIĆ, USZKODZENIE PODŚWIETLENIA LED 2024, Listopad
Anonim
RaspberryPi: zanikanie i włączanie diody LED
RaspberryPi: zanikanie i włączanie diody LED

Poniższe kroki są eksperymentami ilustrującymi działanie diod LED. Pokazują, jak przyciemniać diodę LED w równomiernym tempie oraz jak ją rozjaśniać i ściemniać.

Będziesz potrzebować:

  • RaspberryPi (użyłem starszego Pi, moje Pi-3 jest w użyciu, ale każde Pi będzie działać.)
  • Deska do krojenia chleba
  • 5mm czerwona dioda LED
  • Rezystor 330 Ω (Nie krytyczny 220-560 Ω będzie działać.)
  • Podłączyć przewód

Pi-cobbler, którego użyłem od Adafruit nie jest konieczny, ale ułatwia robienie chleba.

WiringPi to zestaw bibliotek do programowania RaspberryPi w C. Instrukcja do pobrania, instalacji i użytkowania znajduje się na stronie

Aby zainstalować okablowaniePi postępuj zgodnie z instrukcjami na tej stronie:

Aby uzyskać listę numerów pinów okablowaniaPi, wpisz gpio readall w wierszu poleceń.

W nowszych wersjach okablowania Raspian Pi jest instalowane domyślnie.

Krok 1: Modulacja szerokości impulsu

Modulacja szerokości impulsów
Modulacja szerokości impulsów
Modulacja szerokości impulsów
Modulacja szerokości impulsów
Modulacja szerokości impulsów
Modulacja szerokości impulsów

Diody LED zawsze działają pod tym samym napięciem, niezależnie od jasności. Jasność jest określana przez oscylator fali prostokątnej, a czas, w którym napięcie jest wysokie, określa jasność. Nazywa się to modulacją szerokości impulsu (PWM). Jest to kontrolowane przez funkcję wirePi pwmWrite(pin, n), gdzie n ma wartość od 0 do 255. Jeśli n=2 dioda będzie świecić dwukrotnie jaśniej niż n=1. Jasność zawsze podwaja się, gdy n podwaja się. Zatem n=255 będzie dwa razy jaśniejsze niż n=128.

Wartość n jest często wyrażana jako wartość procentowa nazywana cyklem pracy. Zdjęcia przedstawiają ślady oscyloskopu dla cykli pracy 25, 50 i 75%.

Krok 2: LED i rezystor

LED i rezystor
LED i rezystor

Nie jest to konieczne, ale posiadanie kilku z nich może znacznie ułatwić pracę nad płytami.

Przylutuj rezystor do krótkiej diody LED. Użyj rezystora 220-560 Ohm.

Krok 3: Nierównomierne przyciemnianie

Nierównomierne przyciemnianie
Nierównomierne przyciemnianie

Zbuduj obwód jak na schemacie. To jest tak, jak w obwodzie migającym diodą LED. Wykorzystuje pin 1 okablowaniaPi, ponieważ musisz użyć pinu obsługującego PWM. Skompiluj program i uruchom go. Zauważysz, że im jaśniejsza dioda LED, tym wolniej się ściemnia. Gdy zbliża się do najciemniejszego, będzie się ściemniał bardzo szybko.

/******************************************************************

* Kompiluj: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Wykonaj: sudo./fade1 * * Wszystkie numery pinów są numerami wirePi, chyba że określono inaczej. ************************************************** ****************/ #include int main() { wirePiSetup(); // Konfiguracja wymagana przez okablowaniePi pinMode (1, PWM_OUTPUT); // pwmSetMode(PWM_MODE_MS); // Tryb znaku/spacji int i; while(1) { for (i = 255; i > -1; i--) { pwmWrite(1, i); opóźnienie(10); } dla (i = 0; i < 256; i++) { pwmWrite(1, i); opóźnienie(10); } } }

Następny krok pokazuje, jak ściemniać diodę LED ze stałą szybkością, a w jednym dla instrukcji.

Krok 4: Krok 4: W górę iw dół w jednym For() i w równym tempie

Aby dioda LED ściemniała się ze stałą szybkością, opóźnienie() musi rosnąć w tempie wykładniczym, ponieważ połowa cyklu pracy zawsze wytwarza połowę jasności.

Linia:

int d = (16-i/16)^2;

oblicza odwrotność kwadratu jasności w celu określenia długości opóźnienia. Skompiluj i uruchom ten program, a zobaczysz, że dioda LED będzie się pojawiać i gasnąć w stałym tempie.

/******************************************************************

* Kompiluj: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Wykonaj: sudo./fade2 * * Wszystkie piny są numerami wirePi, chyba że określono inaczej. ************************************************** ****************/ #include int main() { wirePiSetup(); // Konfiguracja wymagana przez okablowaniePi pinMode (1, PWM_OUTPUT); // pwmSetMode(PWM_MODE_MS); // Tryb znakowania/spacji while(1) { int i; int x = 1; dla (i = 0; i > -1; i = i + x) { int d = (16-i/16)^2; // oblicz odwrotny kwadrat indeksu pwmWrite(1, i); opóźnienie(d); jeśli (i == 255) x = -1; // zmiana kierunku na szczycie } } }

Zalecana: