Elektrisk effektvariation via Raspberry
Webbureau » Digitale nyheder » Elektrisk effektvariation via Raspberry

Elektrisk effektvariation via Raspberry

I denne artikel vil vi variere den elektriske effekt af en via Raspberry. Driftsprincippet kan gøre det muligt at styre for eksempel intensiteten af ​​en lampe eller hastigheden af ​​en motor.

Normalt for at udføre denne opgave ville vi være nødt til at variere strømmen eller intensiteten på belastningen. Kun voila, med en Rpi, der kun er i stand til at sende et alt-eller-intet-signal, hvordan gør vi det? Svaret er: brug de to tilstande skiftevis og gentagne gange. Denne teknik kaldes PWM for Pulse Width Modulation, som giver pulsbreddemodulation på fransk.

Arbejdsprincip

Pulsbreddemodulation er en teknik, der almindeligvis bruges til at syntetisere kontinuerlige signaler ved hjælp af on/off-kredsløb. Det generelle princip er, at ved at anvende en række af impulser (skift fra tilstand 0 til 1) i velvalgte varigheder, kan en hvilken som helst mellemværdi opnås i gennemsnit over en vis periode.

Dette princip er baseret på to parametre:

  • Frekvens (periode)

  • Duty cycle

PWM_parametre

frekvensen (eller periode) er antallet af gange pr. sekund, pulsen genereres. Dette tælles mellem tidspunktet for starten af ​​en puls og starten af ​​den næste. Frekvensenheden er Hertz (Hz). Hertz er et hjerteslag i sekundet. For eksempel svarer 50 Hz til 50 impulser på et sekund, hvilket giver en impuls hvert 0.02 sekund.

Duty cycle er den procentdel af tid, signalet er i position 1 under cyklussen.

For eksempel betyder en frekvens på 50 Hz og en arbejdscyklus på 50 %, at signalet hvert 0.02 sekund vil være på 1 (høj) i halvdelen af ​​tiden og på 0 (LAV) i den anden halvdel.

femty_procent

50 Hertz og 50% cyklus

For en frekvens på 50 Hz og en arbejdscyklus på 80 % vil signalet være på 1 (HØJ) i 80 % af cyklustiden på 0.02 sekunder.

 firs_procent

50 Hertz og 80% cyklus

Test med en LED

Tja, teorien er cool, men det sjoveste er øvelsen! Til en første test skal du bruge en LED og en 10 Ohm modstand for at beskytte sidstnævnte. Den maksimale strøm for en GPIO-pin på en Raspberry overstiger ikke 16 mA. På langt de fleste LED'er er den understøttede strøm 20 mA. Modstand burde derfor ikke være nødvendigt, men det beskytter alligevel. Op til dig. Beregningsformlen er som følger (hvis du har dokumentation for din LED).

Modstand = (Forsyningsspænding - LED-spænding) / Max LED-strøm

Kredsløbet er som følger:

schema_test_rpi_del

For resten antager jeg, at du har installeret python-biblioteket, der tillader kontrol af GPIO-porte. Hvis dette ikke er tilfældet, henviser jeg dig til denne artikel.

Blinker af en LED

Vi starter med et simpelt blink af LED'en. Følgende kode tillader LED'en at blinke i 50 % af tiden i hver periode. Perioderne varer 0.5 Hz, altså en periode hvert 2. sekund. Kommentarerne skal være tilstrækkelige til at forstå koden.

Blink af en LED med variation af intensitet

I det følgende eksempel vil vi få LED'en til at blinke, men denne gang ved at kontrollere dens intensitetsniveau takket være cyklusrapporten.

Hastighedsvariation af en motor via Raspberry

Rapsberry's GPIO-porte sender kun et 3,3V-signal.Så hvordan varierer man effekten af ​​en belastning, der kræver meget mere end 3,3V, såsom en motor? Til det skal vi bruge en komponent, der fungerer som en interruptor, som man kalder MOSFET. En MOSFET er en elektronisk komponent, der bruges til at udføre strømstyring. Funktionsprincippet for denne type transistor er, at når portens spænding når en tilstrækkelig værdi, strømmer strømmen mellem afløbet og kilden. Nogle transistorer er strømstyrede, Mosfet'en er spændingsstyret.

skema_MOSFET

  • 1 = G = GATE: styrestift. Kommandoen her vil være GPIO-porten.

  • 2 = D = DRAIN: pin som dræner strømmen (belastningen hvad ... det er her vi vil tilslutte vores motor)

  • 3 = S = KILDE: strømkildepin (hvor strømmen opsamles for at blive sendt til belastningen ... i vores tilfælde er den jord)

Så MOSFET gør det muligt at adskille kredsløbet, hvor vores belastning findes, fra styrekredsløbet, i dette tilfælde Rpi.

Her er diagrammet med en eklektisk motor og en 12V batteristrømforsyning.

motor_hindbær

Koden, der skal bruges, er nøjagtig den samme som for blinkende LED med variation i intensitet.

Har du ikke en motor eller strømforsyning ved hånden? Du kan prøve kredsløbet med Rpi. Til det skal du bruge en LED og en modstand denne gang på 100 Ohm, fordi vi skal bruge kilden Vcc 5v hard Rpi til testkredsløbet.

Materialer, der er nødvendige for at teste:

  • LED
  • 100 Ohm modstand
  • MOSFET

På kredsløbet nedenfor passerer Vcc 5v-kilden til Rpi'en gennem 100 Ohm-modstanden for at begrænse strømmen, derefter ind i LED'en og slutter til afløbet på MOSFET'en. GPIO port 4 tillader, som for det foregående kredsløb, at styre MOSFET'en på porten.

raspberry_pwm

Også her er koden, der skal bruges, nøjagtig den samme som for blinkende LED med variation af intensitet.