ここから本文です

回答受付終了まであと6日 回答を投稿すると知恵コイン15枚が追加されます

Arduino UNOとモータドライバを用いてモーターを、ひとつのタクトスイッチで 消灯...

kenta_viktorさん

2016/11/2214:19:46

Arduino UNOとモータドライバを用いてモーターを、ひとつのタクトスイッチで
消灯、遅く回転、速く回転という切り替えが出来るような
回路と、スケッチを考えているのですが、なかなか上手くいきません
Arduinoに詳しい

方、上記のスイッチで切りかえる回路やスケッチを
教えていただけると助かります。回答よろしくお願いします

閲覧数:
24
回答数:
2

違反報告

回答投稿

全角10文字以上で回答を入力してください。

※質問が「投票受付中」「解決済み」になると、回答を取り消すことはできません。
※一度に投稿できるURLは3つ以内です。(プレミアム会員除く)

エラーが発生しました。お手数ですが、時間をおいて再度お試しください。

あと全角4000文字

回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

fried_turnipさん

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のスケッチにはモータードライバーに対比したものもあるようですから検索して探してください。

できれば自分で理解できる内容の書籍を本屋で探して買って参考にすると良いでしょう。

本になったものはやはり資料の内容が充実していると思います。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。