回答受付終了まであと6日 回答を投稿すると知恵コイン15枚が追加されます
Arduino UNOとモータドライバを用いてモーターを、ひとつのタクトスイッチで 消灯...
2016/11/2214:19:46
回答投稿
回答
1〜2件/2件中
- 並び替え:回答日時の
- 新しい順
- |古い順
2016/11/2218:07:29
モーターもドライバーも仕様が不明なので、
次の部品を使った下図の回路の場合で回答します。
http://akizukidenshi.com/catalog/g/gP-06437/
http://akizukidenshi.com/catalog/g/gI-08455/
http://akizukidenshi.com/catalog/g/gI-06168/
逆転が無いのでドライバーはMOSFET1個です。
小さなモーターなので電源を共用しています。
スイッチを押す度に、半速、全速、停止を繰り返します。
以下スケッチ
#define mo 4 //ドライバーを接続したPIN
#define sw 3 //スイッチを接続したPIN
#define half 75 //モーター半速の値
#define full 150 //モーター全速の値
void setup() {
pinMode(mo, OUTPUT);
pinMode(sw, INPUT_PULLUP);
}
void loop() {
while(digitalRead(sw)==HIGH){} //スイッチOFFを待つ
while(digitalRead(sw)==LOW){} //スイッチONを待つ
analogWrite(mo,half); //モーター半速
delay(100); //チャタリング防止
while(digitalRead(sw)==HIGH){} //スイッチOFFを待つ
while(digitalRead(sw)==LOW){} //スイッチONを待つ
analogWrite(mo,full); //モーター全速
delay(100); //チャタリング防止
while(digitalRead(sw)==HIGH){} //スイッチOFFを待つ
while(digitalRead(sw)==LOW){} //スイッチONを待つ
analogWrite(mo,0); //モーター停止
delay(100); //チャタリング防止
}
2016/11/2214:58:28
タクトスイッチのOn,Offの時にはチャタと呼ばれる信号のガチャガチャが存在します。
つまり入力が変化する時1になったり0になったりを短い時間繰り返すのです。
マイコンは高速で動くので、このチャタを信号と間違える可能性があるので、誤動作しないようにスイッチの信号を監視するプログラムを作る必要があります。
数mSの間隔で信号を監視して前の状態と同じなら状態を確立させるなどの処理をします。
その処理でスイッチがOnに変化したときモーターの制御をする出力を変化させます。
停止と低速と高速があるので、モータードライバーと言うICを使ったシールドを考えないと難しいでしょう。
モータードライバーは知恵袋でもたくさん質問も答えも出ています。
Arduinoのスケッチにはモータードライバーに対比したものもあるようですから検索して探してください。
できれば自分で理解できる内容の書籍を本屋で探して買って参考にすると良いでしょう。
本になったものはやはり資料の内容が充実していると思います。
「Arduino UNO、スケッチ」に関する回答受付中の質問
このカテゴリの回答受付中の質問
この質問につけられたタグ
注目の回答受付中の質問
片思い、、、脈あり?
回答受付中の質問
カテゴリQ&Aランキング
- 戻る
- 次へ
総合Q&Aランキング
友達の家でビックリ
みんなのアンテナ
Yahoo!知恵袋カテゴリ
お客様自身の責任と判断で、ご利用ください。