たまたま要らなくなったHDDがモーターを取り外せるようになってたので作ってみました。
「ブラシレスモーターを回す」という課題は実は6,7年前からの因縁があって、最近になってようやく回せた次第です。始動出来てませんが。
当時はLED点灯させるくらいしか作れなかったんです。
そっからちまちま独学と調べ物で…。色々横道それたりして…(´;ω;`)ウッ…
要所要所に汎用ロジックIC挟むだけで結構改善するかもしれない。
モーターが小さいので放熱が必要なほど熱くはなりませんでした。というかこのFETの定格がでかい…。
もしPWMを使うのならサージ対策しっかりとして下さい。配線を工夫して別電源にするだけでだいぶ効くはずですが。
回りこんだらマイコン死にます普通に。(涙目
コメントで、ラジコン飛行機のESC(Electronic Speed
Controller)もこんなもん?という質問がありましたが、だいたいこんなもんだと思います。
#include<avr/io.h> #include<util/delay.h> /* stage| W| V| U| --------------- 1|00|10|01| 2|10|00|01| 3|10|01|00| 4|00|01|10| 5|01|00|10| 6|01|10|00| --------------- 01:push 10:pull 00:hz */ unsigned char stage[6] = {0b010010, 0b100010, 0b100100, 0b000101, 0b001001, 0b011000}; int main(void){ short int i; int j; PORTB = 0; PORTC = 0; DDRB = 0x3F; DDRC = 0; _delay_ms(1000); for(j=0;j<50;j++){ PORTB = stage[i]; _delay_ms(10); } j = 1; i = 0; while(1){ if(((PINC>>2) & 1) == j) { PORTB = stage[i]; i++; if (i == 6){ i = 0; } if (j == 1) j = 0; else j = 1; } } return 0; } |
ちょっと(というかかなり)恥ずかしいんですが。まあこのくらいのものでも、始動はともかく回るということで。
PC2の立ち上がりエッジもしくは立ち下がりエッジを検出したら次のパターンを出力。という内容です。
始動の方法はいくつか特許があるようです。
花夢電科雑多猫 様の ハー
ドディスクのモータを arduinoで制御