Innehållsförteckning:
- Steg 1: Pulsbreddsmodulering
- Steg 2: LED och motstånd
- Steg 3: Ojämn dimning
- Steg 4: Steg 4: Upp och ner i en för (), och i en jämn takt
Video: RaspberryPi: Tona in och ut en LED: 4 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Följande steg är experiment för att illustrera hur lysdioder fungerar. De visar hur man dämpar en LED i en jämn takt och hur man bleknar den in och ut.
Du kommer behöva:
- RaspberryPi (jag använde en äldre Pi, min Pi-3 används, men vilken Pi som helst fungerar.)
- Bakbord
- 5 mm röd LED
- 330 Ω motstånd (Ej kritisk 220-560 Ω fungerar.)
- Anslutningstråd
Pi-skomakaren jag använde från Adafruit är inte nödvändig, men det underlättar brädbrädan.
WiringPi är en uppsättning bibliotek för programmering av RaspberryPi i C. Instruktioner för nedladdning, installation och användning finns på
För att installera wiringPi följ instruktionerna på den här sidan:
För att få en lista över wiringPi -pin -nummer anger du gpio readall på kommandoraden.
I nyare versioner av Raspian wiringPi installeras som standard.
Steg 1: Pulsbreddsmodulering
Lysdioder körs alltid med samma spänning oavsett ljusstyrka. Ljusstyrkan bestäms av en fyrkantvågoscillator och den tid som spänningen är hög avgör ljusstyrkan. Detta kallas Pulse Width Modulation (PWM). Detta styrs av funktionen wiringPi pwmWrite (pin, n) där n har ett värde från 0 till 255. Om n = 2 lyser lysdioden dubbelt så starkt som n = 1. Ljusstyrkan fördubblas alltid när n fördubblas. Så n = 255 blir dubbelt så ljus som n = 128.
Värdet på n uttrycks ofta som en procentsats som kallas arbetscykel. Bilderna visar oscilloskopspår för 25, 50 och 75% arbetscykler.
Steg 2: LED och motstånd
Detta är inte nödvändigt, men att ha några av dessa praktiska kan göra breadboarding mycket enklare.
Löd ett motstånd mot den korta LED -lampan. Använd ett 220-560 Ohm motstånd.
Steg 3: Ojämn dimning
Bygg kretsen som i diagrammet. Detta är precis som kretsen för att blinka en lysdiod. Den använder wiringPi pin 1 eftersom du måste använda en PWM -aktiverad pin. Kompilera programmet och kör det. Du kommer att märka att ju ljusare LED -lampan är, desto långsammare dämpar den. När det närmar sig det svagaste kommer det att bli mörkare väldigt snabbt.
/******************************************************************
* Kompilera: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Execute: sudo./fade1 * * Alla pin -nummer är ledningarPi -nummer om inget annat anges. ************************************************** *****************/ #include int main () {wiringPiSetup (); // Installation krävs av wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Markera/mellanslag int i; medan (1) {för (i = 255; i> -1; i--) {pwmWrite (1, i); fördröjning (10); } för (i = 0; i <256; i ++) {pwmWrite (1, i); fördröjning (10); }}}
Nästa steg visar hur man dämpar lysdioden med en konstant hastighet, och i ett för uttalande.
Steg 4: Steg 4: Upp och ner i en för (), och i en jämn takt
För att lysdioden ska dimma med en konstant hastighet måste fördröjningen () öka med en exponentiell hastighet eftersom halva arbetscykeln alltid ger halva ljusstyrkan.
Linjen:
int d = (16-i/16)^2;
beräknar ljusets inversa kvadrat för att bestämma fördröjningens längd. Kompilera och kör detta program så ser du att lysdioden kommer att blekna in och ut med en konstant hastighet.
/******************************************************************
* Kompilera: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Execute: sudo./fade2 * * Alla pin -nummer är ledningarPi -nummer om inget annat anges. ************************************************** *****************/ #include int main () {wiringPiSetup (); // Installation krävs av wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Markera/mellanslagsläge medan (1) {int i; int x = 1; för (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // calc invers square of index pwmWrite (1, i); fördröjning (d); om (i == 255) x = -1; // växla riktning vid topp}}}
Rekommenderad:
Persienner med ESP8266, Google Home och Openhab -integration och webbkontroll: 5 steg (med bilder)
Kontroll av persienner med ESP8266, Google Home och Openhab -integration och webbkontroll: I den här instruktionsboken visar jag dig hur jag lade automatisering till mina persienner. Jag ville kunna lägga till och ta bort automatiseringen, så all installation är klämd på. Huvuddelarna är: Stegmotor Stegdrivrutinstyrd vid ESP-01 Växel och montering
Övervaka och registrera temperatur med Bluetooth LE och RaspberryPi: 9 steg (med bilder)
Övervaka och registrera temperatur med Bluetooth LE och RaspberryPi: Den här instruerbara handlingen handlar om hur man sätter ihop ett temperaturövervakningssystem med flera noder med Bluetooth LE-sensorbugg från Blue Radios (BLEHome) och RaspberryPi 3B Tack vare utvecklingen av standarden Bluetooth LE finns det nu tillgängligt
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: 5 steg (med bilder)
8 Reläkontroll med NodeMCU och IR -mottagare med WiFi och IR -fjärrkontroll och Android -app: Styrning av 8 reläväxlar med nodemcu och IR -mottagare via wifi och IR -fjärrkontroll och Android -app. Fjärrkontrollen fungerar oberoende av wifi -anslutning. HÄR ÄR EN UPPDATERAD VERSIONKLICK HÄR
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning: Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) för att visa temperatur, luftfuktighetsdata i digital och stapeldiagramform, visa tid och datum och kör en räkningstid
Tona en LED in och ut: 3 steg
Tona en LED in och ut: Följande steg är experiment för att illustrera hur lysdioder fungerar. De illustrerar hur man dämpar en LED i en jämn takt och hur man bleknar den in och ut. Du behöver: Arduino (jag använde en duo) Brödbräda 5 mm röd LED 330 Ω Motstå