後記:
參考左
http://arduino.cc/en/Reference/AnalogWrite
http://arduino.cc/en/Tutorial/PWM
先知道
1. 用analogWrite前係唔需要預先用pinMode去設定個接口為輸出既。
2. PWM signal frequency 係預設左大約 490-500Hz.
3. 而analogWrite就用作設定個Duty Cycle。最細0代表長關,而最大255代表長開。
如果要調整個PWM Frequency就要睇下E度......
http://www.arduino.cc/playground/Main/TimerPWMCheatsheet....
http://www.arduino.cc/playground/Main/TimerPWMCheatsheet
睇完就將post#3個code作出修改重post,當中改了.......
1. 刪除冇用既 pinMode(EnA, OUTPUT); 同埋 pinMode(EnB, OUTPUT);
2. 把風扇試過Duty Cycle大约130已經可以起動,所以個startspeed就改為........
startspeed = 15;
3. 為左簡化個code同埋試下唔同Duty Cycle下既輸出情況,改個for loop為.....
for(value = startspeed ; value <= 255; value+=120)
即Duty Cycle由15,135,255...,等3個不停地循環落去。
4. 笫二個寫EnB既analogWrite改為.......
analogWrite(EnB, topspeed - value);
令到輸出B剛好同輸出A既Duty Cycle次序反過來,即輸出B=255,135,15...;輸出A=15,135,255...。
5. 為左睇到Duty Cycle變動所帶來的效果,將delay延長,改為
delay(12000);
經修改後.........
等Compile同upload成功後,再開番試機。
重新再插個USB,塊板會重新reset,要等一陣,.....
塊L298N Motor擴展板上面既B+紅灯就會好光,同埋B接口既風扇會轉,因為B接口既Duty Cycle=255,量度個平均電壓=10.6V。
另外板上面既A+紅灯就會暗D,同時把風扇唔會轉,因為A接口既Duty Cycle=15。
再等一陴,delay(12000);,....
塊L298N Motor擴展板上面既B+紅灯仍然光,同埋B接口既風扇都會轉慢D,因為B接口既Duty Cycle變少左得番135,量度個平均電壓=6.2V。
另外板上面既A+紅灯就會變光D,同時把風扇開始會轉,因為A接口既Duty Cycle變大左有135。
又再等一陴,delay(12000);,....
塊L298N Motor擴展板上面既B+紅灯又再變暗D,同埋B接口既風扇開始停,因為B接口既Duty Cycle變少左得番15,量度個平均電壓=0.6V。
另外板上面既A+紅灯就會再變光D,同時把風扇會再轉快D,因為A接口既Duty Cycle再變大左有255。
L285NSuccessC
個code改過後,個Arduino PWM係塊L298N Motor擴展板試機成功..........
[ 本帖最後由 zonebaby 於 2009-8-22 11:21 編輯 ] |