Innholdsfortegnelse:
- Trinn 1: Pulsbreddemodulasjon
- Trinn 2: LED og motstand
- Trinn 3: Ujevn demping
- Trinn 4: Trinn 4: Opp og ned i ett for (), og til en jevn hastighet
Video: RaspberryPi: Fade en LED inn og ut: 4 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
Følgende trinn er eksperimenter for å illustrere hvordan lysdioder fungerer. De viser hvordan du kan dempe en LED med en jevn hastighet og hvordan du kan fade den inn og ut.
Du vil trenge:
- RaspberryPi (jeg brukte en eldre Pi, min Pi-3 er i bruk, men hvilken som helst Pi vil fungere.)
- Brødbrett
- 5 mm rød LED
- 330 Ω motstand (ikke kritisk 220-560 Ω vil fungere.)
- Tilkobling Wire
Pi-skomakeren jeg brukte fra Adafruit er ikke nødvendig, men det gjør breadboarding enklere.
WiringPi er et sett med biblioteker for programmering av RaspberryPi i C. Instruksjoner for nedlasting, installasjon og bruk finnes på
Følg instruksjonene på denne siden for å installere wiringPi:
For å få en liste over wiringPi pin -numre, skriv inn gpio readall på kommandolinjen.
I nyere versjoner av Raspian wiringPi er installert som standard.
Trinn 1: Pulsbreddemodulasjon
Lysdioder kjører alltid med samme spenning uavhengig av lysstyrken. Lysstyrken bestemmes av en firkantbølge -oscillator, og hvor lang tid spenningen er høy avgjør lysstyrken. Dette kalles Pulse Width Modulation (PWM). Dette styres av wiringPi pwmWrite (pin, n) -funksjonen der n har en verdi fra 0 til 255. Hvis n = 2 vil LED -en være dobbelt så lyssterk som n = 1. Lysstyrken dobles alltid når n dobler. Så n = 255 vil være dobbelt så lyst som n = 128.
Verdien av n er ofte uttrykt som en prosentandel som kalles duty cycle. Bildene viser oscilloskopspor for 25, 50 og 75% driftssykluser.
Trinn 2: LED og motstand
Dette er ikke nødvendig, men å ha noen få av disse hendige kan gjøre breadboarding mye enklere.
Lodd en motstand til den korte LED -en. Bruk en 220-560 Ohm motstand.
Trinn 3: Ujevn demping
Bygg kretsen som i diagrammet. Dette er akkurat som kretsen for å blinke en LED. Den bruker wiringPi pin 1 fordi du må bruke en PWM -aktivert pin. Kompiler programmet og kjør det. Du vil merke at jo lysere LED -lampen er, jo saktere dempes den. Når det nærmer seg det svakeste, vil det bli svakere veldig fort.
/******************************************************************
* Kompiler: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Utfør: sudo./fade1 * * Alle pin -tall er lednings -Pi -tall med mindre annet er spesifisert. ************************************************* *****************/ #include int main () {wiringPiSetup (); // Oppsett som kreves av wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Merk/mellomrom -modus int i; mens (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); forsinkelse (10); } for (i = 0; i <256; i ++) {pwmWrite (1, i); forsinkelse (10); }}}
Det neste trinnet viser hvordan du dæmper LED -en med en konstant hastighet, og i en for uttalelse.
Trinn 4: Trinn 4: Opp og ned i ett for (), og til en jevn hastighet
For at LED -en skal dimme med en konstant hastighet, må forsinkelsen () øke med en eksponensiell hastighet fordi halve driftssyklusen alltid gir halvparten av lysstyrken.
Køen:
int d = (16-i/16)^2;
beregner den inverse firkanten av lysstyrken for å bestemme lengden på forsinkelsen. Kompiler og kjør dette programmet, og du vil se at LED -en vil falme inn og ut med en konstant hastighet.
/******************************************************************
* Kompiler: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Utfør: sudo./fade2 * * Alle pin -tall er lednings -Pi -tall med mindre annet er spesifisert. ************************************************* *****************/ #include int main () {wiringPiSetup (); // Oppsett som kreves av wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Merk/mellomrom -modus mens (1) {int i; int x = 1; for (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // calc invers square of index pwmWrite (1, i); forsinkelse (d); hvis (i == 255) x = -1; // bytt retning på topp}}}
Anbefalt:
Legg inn Tinkercad -design i instruksjoner: 4 trinn (med bilder)
Legg inn Tinkercad -design i Instructables: Visste du at du kan legge inn et interaktivt Tinkercad -design i en Instructable? Dette er hvordan! Denne ferdigheten vil komme godt med når du deler fremgangsmåter relatert til Tinkercad-design, og er perfekt for den nåværende åpne fjernundervisningen med Tinkerc
Cosmo Clock - Endrer farge hver gang en astronaut går inn i rommet: 8 trinn (med bilder)
Cosmo Clock - Endrer farge hver gang en astronaut kommer inn i verdensrommet: Hei! Er du en plassentusiast? Hvis ja så hi-fi! Jeg elsker plass og astronomi. Tydeligvis er jeg ingen astronaut for å gå opp dit og se nærmere på universet. Men hver gang jeg finner ut at en person fra jorden har reist til himmelen, blir jeg inspirert
Interaktiv Minecraft Ikke skriv inn sverd/tegn (ESP32-CAM): 15 trinn (med bilder)
Interactive Minecraft Don't Enter Sword/Sign (ESP32-CAM): Det er virkelig flere grunner til at dette prosjektet ble til: 1. Som forfatter av kooperativt multitasking-bibliotek TaskScheduler var jeg alltid nysgjerrig på hvordan jeg skulle kombinere fordelene med kooperativ multitasking med fordelene med å forebygge en
Tastaturinjeksjon/Auto Skriv inn passordet ditt med ett klikk !: 4 trinn (med bilder)
Tastaturinjeksjon/Auto Skriv inn passordet ditt med ett klikk !: Passord er vanskelig … og det er enda vanskeligere å huske et sikkert! På toppen av det hvis du har et, innviklet passord, vil det ta tid å skrive. Men frykt ikke vennene mine, jeg har en løsning på dette! Jeg laget en liten maskin for automatisk skriving som vil
Fade en LED inn og ut: 3 trinn
Fade en LED inn og ut: Følgende trinn er eksperimenter for å illustrere hvordan lysdioder fungerer. De illustrerer hvordan du kan dempe en LED i en jevn hastighet og hvordan du kan fade den inn og ut. Du trenger: Arduino (jeg brukte en duo) Brødbrett 5 mm rød LED 330 Ω Stå imot