プロジェクト 7: ファン
説明
このプロジェクトでは、小型ファンの作り方を学びます。
コンポーネントの知識
この小型ファンは130のDCモーターと安全なファンブレードを使用します。PWM出力を使用してファンの速度を制御できます。

制御方法
ファンのモーターを制御するには2つのピンが必要で、1つはINA用、もう1つはINB用です。PWMの値の範囲は0~255です。2つのピンのPWM出力が異なると、ファンは回転します。
INA - INB <= -45 |
時計回りに回転する |
|---|---|
INA - INB >= 45 |
反時計回りに回転する |
INA ==0, INB == 0 |
停止 |
制御ピン
INA |
19 |
|---|---|
INB |
18 |
プロジェクト 7.1: ファン
ファンの反時計回りおよび時計回りの回転速度を制御できます。
テストコード
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()
テスト結果
ファンは異なる速度で時計回りおよび反時計回りに回転します。
プロジェクト 7.2: ボタン制御ファン
ボタン1がファンのスイッチを制御します。
テストコード
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()
テスト結果
ボタン1を押すとファンが回転を開始し、再度ボタン1を押すとファンが停止します。