這一次是用電腦控制步進馬達的轉速
打開arduino介面才發現...單晶片處於失控狀態
我在猜可能是單晶片的電流不夠大,無法推動達零頓電路的大電流
(我用的atmega168每隻腳最多輸入輸出40mA,而步進馬達則會用掉600mA...)
所以我加了7404(反相器)
這一次是用電腦控制步進馬達的轉速
打開arduino介面才發現...單晶片處於失控狀態
我在猜可能是單晶片的電流不夠大,無法推動達零頓電路的大電流
(我用的atmega168每隻腳最多輸入輸出40mA,而步進馬達則會用掉600mA...)
所以我加了7404(反相器)
工程師就跟功率晶體一樣容易過熱又短命,而且爆掉了還很好更換,我想好處是身體壞掉的時候腦袋狀況還是很好,至少不會老年癡呆吧

雖然都是雙相步進馬達,但是四線步進馬達跟五,六線步進馬達的驅動電路很不一樣,因為四線步進馬達是雙極馬達,雙極的意思是說,A跟B相位的電流會有兩個方向。而六線式因為有共用腳,所以電流就只有單一方向了。
四線馬達可以使得A0-->A1或是A0<---A1 (箭頭是電流方向)
五,六線馬達則"只"能A0-->A1或"只"能A0<---A1
請參考下面的圖片
下圖是四線步進馬達

所需的材料至少要有:
1.塑膠瓦愣板(依照你需要的大小)
2.LED數顆
3.最重要的~PVC鏡面塑膠板: 外表看起來像鏡子...可是放到案暗處會變成半透明的紙...A4大小約20~30元
4.銲錫
arduino與PC端的通信( PC送信給arduino )
這個是源碼http://www.4shared.com/file/RkTtxTCq/INPUT.html
我用來控制兩顆servo motor,控制方式是輸入 X+"角度";Y+"角度";
要說比較奇怪的地方...就是每接收一個字元都必須有1ms的delay,否則收到得字串會錯誤
另外這種方式在有線傳輸的時候不會有問題,在無線傳輸上就問題大了(我用的是APC220)
如果輸入"X 3",輸出 3 = 3
如果輸入"X 23",輸出 23 = 20 + 3
如果輸入"X 234",輸出 233 = 199 + 30 + 4
如果輸入"X 2345",輸出 2344 = 1999 + 300 + 40 + 4
這個鬼問題不知道是不是浮點數...
這個範例所使用的是加速度感應器
耐心好重要...我常常缺乏看程式的耐心
import processing.serial.*;
Serial myPort; // Create object from Serial class
int val; // Data received from the serial port
最近在實驗一個計畫,利用加速度感測器讀取信號。再傳給電腦,電腦會讀出加速度的不同,然後播出不同的聲音。
現在我的問題應該是抓取了太多的信號,那些信號在暫存區裡,等著傳到電腦。所以會使得揮刀跟播出的聲音不同時。
只好先把這個計畫擱著了
// 2 servo motor
#include <Servo.h>
Servo servo1;
Servo servo2;
int pos1[] = {89,90};
/* by angel91250
lightsaber ver.1
有伸縮功能
下一個版本要加入聲音
*/