Arduinoについて質問です。ボタンを一回押すとモーターが回る・停止と機能するようにしたくAIで生成したのですがうまくいかないので教えてほしいです。ボタンはkeystudioのものでモーターはRF-500TBだと思います。PCのUSBからだと電力が足りなかったので直流電源装置とモータードライバ(トー芝のTA7291P)も使ってます。初心者なので簡単な言葉で教えてもらえると助かります。AI生成コードconst int in1 = 7;const int in2 = 8;const int vref = 9; // PWM制御const int buttonPin = 2;bool motorState = false;bool lastButtonState = HIGH; // プルアップなので初期はHIGHvoid setup() { pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(vref, OUTPUT); pinMode(buttonPin, INPUT_PULLUP); // 内部プルアップを有効化 Serial.begin(9600);}void loop() { int buttonState = digitalRead(buttonPin); // HIGH→LOW(押された瞬間)を検出 if (buttonState == LOW \u0026amp;\u0026amp; lastButtonState == HIGH) { motorState = !motorState; delay(50); // チャタリング防止 } lastButtonState = buttonState; if (motorState) { // モーター正転 digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(vref, 200); Serial.println(\u0026quot;モーター ON\u0026quot;); } else { // モーター停止 digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(vref, 0); Serial.println(\u0026quot;モーター OFF\u0026quot;); } delay(10);}

1件の回答

回答を書く

1014110

2026-01-04 06:20

+ フォロー

回答者には質問に書いてあることしかわかりませんが、



\u0026gt; ボタンを一回押すとモーターが回る・停止

では、その前段階として「モーターを回す」ことはできているのですか?それができていなければ、モーターが回るわけはない、ということになってしまいます。

\u0026gt; PCのUSBからだと電力が足りなかった

とおっしゃっているので、回してみているようにも思えるのですが動かないという現実に対してはひとつひとつ「確認」していかないとどうにもならないので。( https://www.mabuchi-motor.co.jp/product/pdf/RF-500TB.pdf によればモーターのストール電流が12Vで0.71A、5Vで低減して半分以下になるなら500mAまでのUSB2.0でも回りそうな気はしますけれど。)



ブレッドボードで配線していたりすると、気がつくとワイヤが抜けていたとか、挿してあるように見えても接触が確保できていなかったりします(ブレッドボードって信頼性はかなり低いです)。そういうのを含めて、まずはマイコン抜きで回るしかない回路、そしてマイコンをつないで回るしかないプログラムで回るかといったあたりを確認してください。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有