Sisällysluettelo:

RaspberryPi: LEDin häivyttäminen sisään ja ulos: 4 vaihetta (kuvilla)
RaspberryPi: LEDin häivyttäminen sisään ja ulos: 4 vaihetta (kuvilla)

Video: RaspberryPi: LEDin häivyttäminen sisään ja ulos: 4 vaihetta (kuvilla)

Video: RaspberryPi: LEDin häivyttäminen sisään ja ulos: 4 vaihetta (kuvilla)
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Marraskuu
Anonim
RaspberryPi: Häivytä LED sisään ja ulos
RaspberryPi: Häivytä LED sisään ja ulos

Seuraavat vaiheet ovat kokeiluja valaisimien toiminnan havainnollistamiseksi. Ne osoittavat, kuinka himmentää LED tasaisesti ja kuinka himmentää se sisään ja ulos.

Tarvitset:

  • RaspberryPi (käytin vanhempaa Pi: tä, Pi-3 on käytössä, mutta mikä tahansa Pi toimii.)
  • Leipälauta
  • 5 mm punainen LED
  • 330 Ω vastus (ei kriittinen 220-560 Ω toimii.)
  • Liitäntäjohto

Adafruutin käyttämä Pi-cobbler ei ole välttämätön, mutta se helpottaa leipälautailua.

WiringPi on joukko kirjastoja RaspberryPi -ohjelmointiin C: ssä. Lataus-, asennus- ja käyttöohjeet ovat osoitteessa

Asenna wiringPi noudattamalla tämän sivun ohjeita:

Saat luettelon johdotuspi -numeroista kirjoittamalla komentoriville gpio readall.

Raspian uudemmissa versioissa wiringPi on asennettu oletusarvoisesti.

Vaihe 1: Pulssinleveyden modulointi

Pulssinleveysmodulaatio
Pulssinleveysmodulaatio
Pulssinleveysmodulaatio
Pulssinleveysmodulaatio
Pulssinleveysmodulaatio
Pulssinleveysmodulaatio

LEDit toimivat aina samalla jännitteellä kirkkaudesta riippumatta. Kirkkaus määräytyy neliöaalto -oskillaattorin avulla ja aika, jonka jännite on korkea, määrää kirkkauden. Tätä kutsutaan pulssinleveysmodulaatioksi (PWM). Tätä ohjaa wiringPi pwmWrite (nasta, n) -toiminto, jossa n: n arvo on 0 - 255. Jos n = 2, LED on kaksi kertaa kirkkaampi kuin n = 1. Kirkkaus kaksinkertaistuu aina, kun n kaksinkertaistuu. Joten n = 255 on kaksi kertaa kirkkaampi kuin n = 128.

N: n arvo ilmaistaan usein prosentteina, jota kutsutaan käyttöjaksoksi. Kuvissa on oskilloskoopin jälkiä 25, 50 ja 75% käyttöjaksoille.

Vaihe 2: LED ja vastus

LED ja vastus
LED ja vastus

Tämä ei ole välttämätöntä, mutta muutama näistä kätevistä voi tehdä leipälaudasta paljon helpompaa.

Juotosvastus LED -valon lyhyeen lediin. Käytä 220-560 ohmin vastusta.

Vaihe 3: Tasainen himmennys

Tasainen himmennys
Tasainen himmennys

Rakenna piiri kuten kaaviossa. Tämä on aivan kuin piiri, joka vilkkuu LEDiä. Se käyttää wiringPi -nastaista 1, koska sinun on käytettävä PWM -yhteensopivaa nastaa. Kokoa ohjelma ja suorita se. Huomaat, että mitä kirkkaampi LED, sitä hitaammin se himmenee. Kun se lähestyy himmeintä, se himmenee erittäin nopeasti.

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

* Käännä: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Suorita: sudo./fade1 * * Kaikki pin -numerot ovat johdotustaPi -numerot, ellei toisin mainita. ************************************************** ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode vaatii asennuksen (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark/Space -tila int i; kun taas (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); viive (10); } for (i = 0; i <256; i ++) {pwmWrite (1, i); viive (10); }}}

Seuraava vaihe näyttää kuinka himmentää LEDiä vakionopeudella ja yhdessä lausunnossa.

Vaihe 4: Vaihe 4: Ylös ja alas yhdellä () ja tasaisella hinnalla

Jotta LED himmenee vakionopeudella, viiveen () on lisättävä eksponentiaalisesti, koska puolet käyttöjaksosta tuottaa aina puolet kirkkaudesta.

Linja:

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

laskee kirkkauden käänteisen neliön viiveen pituuden määrittämiseksi. Käännä ja suorita tämä ohjelma ja huomaat, että LED -valo sammuu ja sammuu vakionopeudella.

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

* Käännä: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Suorita: sudo./fade2 * * Kaikki pin -numerot ovat johdotustaPi -numerot, ellei toisin mainita. ************************************************** ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode vaatii asennuksen (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Merkitse/välilyönti, kun (1) {int i; int x = 1; for (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // lasketaan indeksin pwmWrite käänteinen neliö (1, i); viive (d); jos (i == 255) x = -1; // vaihda suuntaa huipussa}}}

Suositeltava: