H-Bridge を使ってモーター速度を制御して洗濯機を作っています。H-Bridge の MOSFET への信号は、マイクロ コントローラ PICAXE 14M2 によって制御されます。
モーターは、発電機と負荷を受けるバケットに結合されています。デフォルトのデューティ サイクルは 25% です。50% でモーターが停止し、50% を超えるとモーターの回転が変化します。
今、私がやりたいことは、負荷がバケットに追加されると、モーターはその速度を維持する必要があり、速度を維持するためにデューティサイクルを制御したい.
したがって、負荷が増加すると、モーターへの抵抗が増加します。つまり、バケットが減速し、発電機が生成する電圧が低下します。
ここで、デューティ サイクルを増やす必要があるため、モーターが速度を上げてデフォルト値に追いつくようにします。
残念ながら、クローズ ループ機能を実行できません。誰でも私を助けてくれませんか....
PS。12V DCモーターを2つ使用しています。1つはバケットを回転させるモーターとして機能し(他のモーターとも結合されています)、もう1つのモーターはフィードバックを得るために発電機として機能します
ありがとう。
次のコードを使用しています。
setfreq M32 ' 100 kHz Frequency
main:
if pinB.5 = 1 then goto Closeloop
goto main
***************************************************************************
Closeloop:
symbol duty = b2
let duty = 79
gosub closeloop1
closeloop1:
for b11 = 1 to 100
hpwm 1,0,0,79,duty
readadc C.4, b22 ` Read generated voltage from pin C.4
IF b22 > 204 then gosub stepdown 'if Generated voltage > 4 V , stepdown the duty cycle
IF b22 < 153 then gosub stepup 'if V< 3 V, stepup the duty cycle
stepup: ` Increase the duty (So speed is increased) if gernerated voltage is less than 3V
duty = duty - 5
goto closeloop1
stepdown: ` Decrease the duty (So speed is reduced) if gernerated voltage is more than 4V
duty = duty + 5
goto closeloop1
next b11