Project 7: Ventilator
Beschrijving
In dit project leren we hoe we een kleine ventilator kunnen maken.
Kennis van componenten
De kleine ventilator gebruikt een 130 DC motor en veilige ventilatorbladen. Je kunt PWM-uitgang gebruiken om de ventilatorsnelheid te regelen.

Bedieningsmethode
Twee pinnen zijn vereist om de motor van de ventilator te besturen, één voor INA en twee voor INB. Het PWM-waardebereik is 0~255. Wanneer de PWM-uitgang van de twee pinnen verschillend is, kan de ventilator draaien.
INA - INB <= -45 |
Draai met de klok mee |
|---|---|
INA - INB >= 45 |
Draai tegen de klok in |
INA ==0, INB == 0 |
Stop |
Besturingspinnen
INA |
19 |
|---|---|
INB |
18 |
Project 7.1 Ventilator
We kunnen de rotatiesnelheid van de ventilator zowel tegen de klok in als met de klok mee regelen.
Testcode
from machine import Pin,PWM
import time
#Two pins of the motor
INA =PWM(Pin(19,Pin.OUT),10000)#INA corresponds to IN+
INB =PWM(Pin(18,Pin.OUT),10000)#INB corresponds to IN-
try:
while True:
#Counterclockwise 2s
INA.duty(0) #The range of duty cycle is 0-1023
INB.duty(700)
time.sleep(2)
#stop 1s
INA.duty(0)
INB.duty(0)
time.sleep(1)
#Turn clockwise for 2s
INA.duty(600)
INB.duty(0)
time.sleep(2)
#stop 1s
INA.duty(0)
INB.duty(0)
time.sleep(1)
except:
INA.duty(0)
INB.duty(0)
INA.deinit()
INB.deinit()
Testresultaat
De ventilator zal met verschillende snelheden met de klok mee en tegen de klok in draaien.
Project 7.2 Ventilator met knopbediening
Knop 1 bestuurt de ventilatorschakelaar.
Testcode
from machine import Pin,PWM
import time
#Two pins of the motor
INA =PWM(Pin(19,Pin.OUT),10000)#INA corresponds to IN+
INB =PWM(Pin(18,Pin.OUT),10000)#INB corresponds to IN-
button1 = Pin(16, Pin.IN, Pin.PULL_UP)
count = 0
try:
while True:
btnVal1 = button1.value() # Reads the value of button 1
if(btnVal1 == 0):
time.sleep(0.01)
while(btnVal1 == 0):
btnVal1 = button1.value()
if(btnVal1 == 1):
count=count + 1
print(count)
val = count % 2
if(val == 1):
INA.duty(0) #The range of duty cycle is 0-1023
INB.duty(700)
else:
INA.duty(0)
INB.duty(0)
except:
INA.duty(0)
INB.duty(0)
INA.deinit()
INB.deinit()
Testresultaat
Druk op knop 1, de ventilator begint te draaien; druk nogmaals op knop 1, de ventilator stopt.