Inhoudsopgave:
- Stap 1: Pulsbreedtemodulatie
- Stap 2: LED en weerstand
- Stap 3: Ongelijkmatig dimmen
- Stap 4: Stap 4: Op en neer in één For(), en in een gelijkmatig tempo
Video: RaspberryPi: een LED in- en uitfaden - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
De volgende stappen zijn experimenten om te illustreren hoe LED's werken. Ze laten zien hoe je een LED gelijkmatig dimt en hoe je deze in- en uitfadt.
Je zal nodig hebben:
- RaspberryPi (ik gebruikte een oudere Pi, mijn Pi-3 is in gebruik, maar elke Pi zal werken.)
- Breadboard
- 5 mm rode LED
- Weerstand van 330 (niet kritisch 220-560 Ω zal werken.)
- Aansluitdraad
De Pi-cobbler die ik gebruikte van Adafruit is niet nodig, maar maakt breadboarden wel makkelijker.
WiringPi is een set bibliotheken voor het programmeren van de RaspberryPi in C. Instructies voor downloaden, installeren en gebruiken vindt u op
Volg de instructies op deze pagina om bedradingPi te installeren:
Voer gpio readall in op de opdrachtregel om een lijst met bedradingspin-pinnummers te krijgen.
In nieuwere versies van Raspian bedradingPi is standaard geïnstalleerd.
Stap 1: Pulsbreedtemodulatie
LED's werken altijd op dezelfde spanning, ongeacht de helderheid. De helderheid wordt bepaald door een blokgolfoscillator en de hoeveelheid tijd dat de spanning hoog is bepaalt de helderheid. Dit wordt pulsbreedtemodulatie (PWM) genoemd. Dit wordt geregeld door de wirePi pwmWrite(pin, n) functie waarbij n een waarde heeft van 0 tot 255. Als n=2 zal de LED twee keer zo helder zijn als n=1. De helderheid verdubbelt altijd wanneer n verdubbelt. Dus n=255 zal twee keer zo helder zijn als n=128.
De waarde van n wordt vaak uitgedrukt als een percentage dat de werkcyclus wordt genoemd. De afbeeldingen tonen oscilloscoopsporen voor 25, 50 en 75% inschakelduur.
Stap 2: LED en weerstand
Dit is niet nodig, maar als je er een paar bij de hand hebt, kan breadboarden een stuk eenvoudiger worden.
Soldeer een weerstand op de korte led van een LED. Gebruik een weerstand van 220-560 Ohm.
Stap 3: Ongelijkmatig dimmen
Bouw het circuit zoals in het diagram. Dit is net als het circuit om een LED te laten knipperen. Het gebruikt wirePi pin 1 omdat je een PWM-pin nodig hebt. Compileer het programma en voer het uit. U zult merken dat hoe helderder de LED is, hoe langzamer deze dimt. Naarmate het in de buurt van het zwakste komt, wordt het heel snel zwakker.
/******************************************************************
* Compileren: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Uitvoeren: sudo./fade1 * * Alle pinnummers zijn bedradingPi-nummers tenzij anders aangegeven. ************************************************** ********************/ #include int main() { bedradingPiSetup(); // Setup vereist door bedrading Pi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark/Space-modus int i; while(1) { for (i = 255; i > -1; i--) { pwmWrite(1, i); vertraging(10); } voor (i = 0; i < 256; i++) { pwmWrite(1, i); vertraging(10); } } }
De volgende stap laat zien hoe u de LED met een constante snelheid dimt, en in één voor verklaring.
Stap 4: Stap 4: Op en neer in één For(), en in een gelijkmatig tempo
Om de LED met een constante snelheid te laten dimmen, moet de vertraging () exponentieel toenemen, omdat de helft van de inschakelduur altijd de helft van de helderheid zal produceren.
De lijn:
int d = (16-i/16)^2;
berekent het inverse kwadraat van de helderheid om de lengte van de vertraging te bepalen. Compileer en voer dit programma uit en u zult zien dat de LED met een constante snelheid in en uit gaat.
/******************************************************************
* Compileren: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Uitvoeren: sudo./fade2 * * Alle pinnummers zijn bedradingPi-nummers tenzij anders aangegeven. ************************************************** ********************/ #include int main() { bedradingPiSetup(); // Setup vereist door bedrading Pi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark/Space-modus while(1) { int i; int x = 1; voor (i = 0; ik > -1; ik = ik + x) { int d = (16-i/16)^2; // calc inverse kwadraat van index pwmWrite (1, i); vertraging (d); als (i == 255) x = -1; // van richting veranderen op piek } } }
Aanbevolen:
Een e-mailmelding ontvangen wanneer een kanaal op ThingSpeak een tijdje niet is bijgewerkt: 16 stappen
Ontvang een e-mailmelding als een kanaal op ThingSpeak een tijdje niet is bijgewerkt: Achtergrondverhaal Ik heb zes geautomatiseerde kassen verspreid over Dublin, Ierland. Door een op maat gemaakte app voor mobiele telefoons te gebruiken, kan ik op afstand de geautomatiseerde functies in elke kas volgen en ermee communiceren. Ik kan de win handmatig openen / sluiten
Automatisch een programma starten bij het aansluiten van een laptop op een dockingstation: 5 stappen
Een programma automatisch starten wanneer u een laptop op een dockingstation aansluit: deze instructie gaat over het uitvoeren van een programma of een toepassing wanneer u uw laptop op een dockingstation aansluit. In dit voorbeeld gebruik ik Lenovo T480 Windows 10
Een condensator of een inductor meten met een mp3-speler: 9 stappen
Een condensator of een inductor meten met een mp3-speler: Hier is een eenvoudige techniek die kan worden gebruikt om de capaciteit en inductantie van een condensator en inductor nauwkeurig te meten zonder dure apparatuur. De meettechniek is gebaseerd op een gebalanceerde brug en kan eenvoudig worden geconstrueerd uit onde
Een lijn toevoegen aan een Boombox met een cassettespeler: 5 stappen
Een line-in toevoegen aan een boombox met een tapespeler: ** Zoals bij alle instructables, neem je je item / gezondheid / wat dan ook in eigen handen wanneer je het probeert! Houd rekening met hoge spanningen op het hoofdvoedingsbord, de hete soldeerbout, enz. Voorzichtig en geduldig zijn, zal u succes brengen. **NS
Een LED in- en uitfaden: 3 stappen
Een LED in- en uitfaden: De volgende stappen zijn experimenten om te illustreren hoe LED's werken. Ze illustreren hoe je een LED gelijkmatig dimt en hoe je deze in- en uitfadt. Je hebt nodig: Arduino (ik gebruikte een duo) Breadboard 5 mm rode LED 330 Ω Zich verzetten