Ndryshimi i energjisë elektrike nëpërmjet Raspberry
Sommaire
Parimi i funksionimit
Modulimi i gjerësisë së pulsit është një teknikë që përdoret zakonisht për të sintetizuar sinjale të vazhdueshme duke përdorur qarqet ndezëse/fikëse. Parimi i përgjithshëm është që duke aplikuar një sërë impulsesh (ndryshimi nga gjendja 0 në 1) për kohëzgjatje të zgjedhura mirë, çdo vlerë e ndërmjetme mund të merret mesatarisht gjatë një periudhe të caktuar.
Ky parim bazohet në dy parametra:
-
Frekuenca (periudha)
-
Cikli i detyrës
frekuenca (ose perioda) është numri i herëve në sekondë që gjenerohet pulsi. Kjo llogaritet midis momentit të fillimit të një pulsi dhe fillimit të tjetrit. Njësia e frekuencës është Hertz (Hz). Herci është një rrahje zemre në sekondë. Për shembull 50 Hz korrespondon me 50 impulse në një sekondë, që jep një impuls çdo 0.02 sekonda.
Cikli i detyrës është përqindja e kohës kur sinjali është në pozicionin 1 gjatë ciklit.
Për shembull, një frekuencë prej 50 Hz dhe një cikël pune prej 50% do të thotë që çdo 0.02 sekonda sinjali do të jetë në 1 (i lartë) për gjysmën e kohës dhe në 0 (LOW) për gjysmën tjetër.
Cikli 50 Hertz dhe 50%.
Për një frekuencë prej 50 Hz dhe një cikël pune prej 80%, sinjali do të jetë në 1 (LARTË) për 80% të kohës së ciklit prej 0.02 sekondash.
Cikli 50 Hertz dhe 80%.
Provoni me një LED
Epo, teoria është e lezetshme, por më argëtimi është praktika! Për testin e parë do t'ju duhet një LED dhe një rezistencë 10 Ohm për të mbrojtur këtë të fundit. Rryma maksimale e një kunj GPIO të një Raspberry nuk kalon 16 mA. Në shumicën dërrmuese të LED-ve, rryma e mbështetur është 20 mA. Prandaj rezistenca nuk duhet të jetë e nevojshme, por mbron njësoj. Varet nga ju. Formula e llogaritjes është si më poshtë (nëse keni dokumentacionin për LED-in tuaj).
Rezistenca = (Tensioni i furnizimit - tension LED) / Rryma maksimale LED
Qarku është si më poshtë:
Për pjesën tjetër, supozoj se keni instaluar bibliotekën python duke lejuar kontrollin e porteve GPIO. Nëse nuk është kështu, ju referoj në këtë artikull.
Ndezja e një LED
Ne do të fillojmë me një ndezje të thjeshtë të LED. Kodi i mëposhtëm lejon që LED të pulsojë për 50% të kohës së çdo periudhe. Periudhat zgjasin 0.5 Hz, pra një periodë çdo 2 sekonda. Komentet duhet të jenë të mjaftueshme për të kuptuar kodin.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
#!/usr/bin/env python
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
#0.5 Hz = 1 fois toutes les deux secondes
p = GPIO.PWM(4, 0.5)
# cycle = 50%
p.start(50)
# une touche pour quitter le programme.
input(‘Appuyez sur une touche pour stopper’)
# La fonction input est bloquante. Si on arrive ici alors on peut fermer le programme
p.stop()
GPIO.cleanup()
|
Ndezja e një LED me ndryshim të intensitetit
Në shembullin e mëposhtëm do të bëjmë blicin LED, por këtë herë duke kontrolluar nivelin e intensitetit të tij falë raportit të ciklit.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
# creation d’un objet PWM. canal=4 frequence=50Hz
LED = GPIO.PWM(4, 50)
# demarrage du PWM avec un cycle a 0 (LED off)
LED.start(0)
# On fait varier le rapport cyclique de 0 a 100 puis de 100 a 0
try:
while 1:
for dc in range(0, 101, 1):
LED.ChangeDutyCycle(dc)
time.sleep(0.01)
for dc in range(100, –1, –1):
LED.ChangeDutyCycle(dc)
time.sleep(0.01)
except KeyboardInterrupt:
pass
p.stop()
GPIO.cleanup()
|
Ndryshimi i shpejtësisë së një motori përmes Raspberry
Portat GPIO të Rapsberry dërgojnë vetëm një sinjal 3,3 V. Pra, si ta ndryshoni fuqinë e një ngarkese që kërkon shumë më tepër se 3,3 V, si p.sh. një motor? Për këtë ne do të përdorim një komponent i cili funksionon si një ndërhyrës që quhet MOSFET. Një MOSFET është një komponent elektronik që përdoret për të kryer kontrollin e fuqisë. Parimi i funksionimit të këtij lloji të tranzistorit është që kur tensioni i Portës arrin një vlerë të mjaftueshme, rryma rrjedh midis Drenit dhe Burimit. Disa transistorë kontrollohen nga rryma, Mosfet kontrollohet me tension.
-
1 = G = GATE: kunja e kontrollit. Komanda këtu do të jetë porti GPIO.
-
2 = D = DRAIN: pin i cili kullon rrymën (ngarkesa sa ... këtu do të lidhim motorin tonë)
-
3 = S = BURIMI: kunja e burimit aktual (ku rryma mblidhet për t'u dërguar në ngarkesë ... në rastin tonë, ajo është tokëzuar)
Pra, MOSFET bën të mundur ndarjen e qarkut ku gjendet ngarkesa jonë nga qarku i kontrollit, në këtë rast Rpi.
Këtu është diagrami me një motor eklektik dhe një furnizim me bateri 12V.
Kodi për t'u përdorur është saktësisht i njëjtë si për ndezjen e LED me ndryshim në intensitet.
Nuk keni një motor ose furnizim me energji elektrike në dorë? Mund të provoni qarkun me Rpi. Për këtë ju duhet një LED dhe një rezistencë këtë herë prej 100 Ohm sepse ne do të përdorim burimin Vcc 5v Rpi të fortë për qarkun e provës.
Materialet e nevojshme për testim:
- LED
- Rezistenca 100 Ohm
- MOSFET
Në qarkun më poshtë, burimi Vcc 5v i Rpi kalon përmes rezistencës 100 Ohm në mënyrë që të kufizojë rrymën, më pas në LED dhe në fund lidhet me kullimin e MOSFET. Porta 4 GPIO lejon, si për qarkun e mëparshëm, të kontrollojë MOSFET në portë.
Këtu përsëri, kodi për t'u përdorur është saktësisht i njëjtë si për ndezjen e LED me ndryshim të intensitetit.