Orodha ya maudhui:

RaspberryPi: Fifisha LED ndani na nje: Hatua 4 (na Picha)
RaspberryPi: Fifisha LED ndani na nje: Hatua 4 (na Picha)

Video: RaspberryPi: Fifisha LED ndani na nje: Hatua 4 (na Picha)

Video: RaspberryPi: Fifisha LED ndani na nje: Hatua 4 (na Picha)
Video: Шок!!! ДУШИ МЕРТВЕЦОВ В ЗАТОЧЕНИИ У ДЕМОНА В ЭТОМ СТРАШНОМ ДОМЕ / HERE ARE THE SOULS OF THE DEAD 2024, Julai
Anonim
RaspberryPi: Fisha LED ndani na nje
RaspberryPi: Fisha LED ndani na nje

Hatua zifuatazo ni majaribio ya kuonyesha jinsi LED zinavyofanya kazi. Zinaonyesha jinsi ya kuzima LED kwa kiwango sawa na jinsi ya kuifuta ndani na nje.

Utahitaji:

  • RaspberryPi (Nilitumia Pi ya zamani, Pi-3 yangu inatumika, lakini Pi yoyote itafanya kazi.)
  • Bodi ya mkate
  • 5 mm nyekundu ya LED
  • 330 Ω Resistor (Sio muhimu 220-560 Ω itafanya kazi.)
  • Kushikamana na waya

Cobbler niliyetumia kutoka kwa Adafruit sio lazima, lakini inafanya uwekaji wa mkate rahisi.

WiringPi ni seti ya maktaba za kusanidi RaspberryPi katika C. Maagizo ya kupakua, kusanikisha na kutumia iko kwenye

Ili kufunga wiringPi fuata maagizo kwenye ukurasa huu:

Ili kupata orodha ya nambari za pini za wiringPi ingiza gpio readall kwenye laini ya amri.

Katika matoleo mapya ya Raspian wiringPi imewekwa kwa chaguo-msingi.

Hatua ya 1: Upanaji wa upana wa Pulse

Pulse Modulation Upana
Pulse Modulation Upana
Pulse Modulation Upana
Pulse Modulation Upana
Pulse Modulation Upana
Pulse Modulation Upana

LEDs kila wakati huendesha kwa voltage moja bila kujali mwangaza. Mwangaza umedhamiriwa na oscillator ya wimbi la mraba na muda wa voltage ambayo iko juu huamua mwangaza. Hii inaitwa Pulse Width Modulation (PWM). Hii inadhibitiwa na wiringPi pwmWrite (pini, n) kazi ambapo n ina thamani kutoka 0 hadi 255. Ikiwa n = 2 LED itakuwa mkali mara mbili kama n = 1. Mwangaza siku zote huongezeka mara mbili wakati n maradufu. Kwa hivyo n = 255 itakuwa mkali mara mbili kuliko n = 128.

Thamani ya n mara nyingi huonyeshwa kama asilimia inayoitwa mzunguko wa ushuru. Picha zinaonyesha athari za oscilloscope kwa mizunguko ya ushuru ya 25, 50 na 75%.

Hatua ya 2: LED na Resistor

LED na Resistor
LED na Resistor

Hii sio lazima, lakini kuwa na chache kati ya hizi rahisi kunaweza kufanya ubao wa mkate uwe rahisi sana.

Solder kontena kwa mwongozo mfupi wa LED. Tumia kontena la Ohm 220-560.

Hatua ya 3: Un-hata Kupunguza

Kupunguza-hata
Kupunguza-hata

Jenga mzunguko kama kwenye mchoro. Hii ni kama mzunguko wa kupepesa LED. Inatumia wiringPi siri 1 kwa sababu unahitaji kutumia pini iliyowezeshwa na PWM. Kusanya programu na kuiendesha. Utagundua kuwa mwangaza wa LED ndio hupunguza polepole. Inapokaribia kufifia itakuwa inazidi kupungua haraka sana.

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

* Jumuisha: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade1.c -lwiringPi * * Fanya:. ************************************************** **************** / # pamoja na int main () {wiringPiSetup (); // Usanidi unahitajika na wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Alama / Nafasi ya anga int i; wakati (1) {kwa (i = 255; i> -1; i--) {pwmWrite (1, i); kuchelewesha (10); } kwa (i = 0; i <256; i ++) {pwmWrite (1, i); kuchelewesha (10); }}}

Hatua inayofuata inaonyesha jinsi ya kuipunguza LED kwa kiwango cha kila wakati, na kwa moja kwa taarifa.

Hatua ya 4: Hatua ya 4: Juu na chini kwa Moja kwa (), na kwa Kiwango Hata

Ili taa ipungue kwa kiwango cha mara kwa mara ucheleweshaji () lazima uongezeke kwa kiwango cha ufafanuzi kwa sababu nusu ya mzunguko wa ushuru utazalisha mwangaza nusu kila wakati.

Mstari:

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

mahesabu ya mraba inverse ya mwangaza kuamua urefu wa kuchelewa. Kusanya na kuendesha programu hii na utaona kuwa LED itapotea ndani na nje kwa kiwango cha kila wakati.

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

* Jumuisha: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade2.c -lwiringPi * * Fanya:. ************************************************** **************** / # pamoja na int main () {wiringPiSetup (); // Usanidi unahitajika na wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Hali ya Alama / Nafasi wakati (1) {int i; int x = 1; kwa (i = 0; i> -1; i = i + x) {int d = (16-i / 16) ^ 2; // mraba wa inverse wa calc index pwm Andika (1, i); kuchelewesha (d); ikiwa (i == 255) x = -1; // kubadili mwelekeo kwenye kilele}}}

Ilipendekeza: