###実現したいこと
Raspberry piでモーターの正転・反転のどちらも行うこと
発生している問題
Raspberry pi3Bにおいて、スイッチによるモーター制御を行うとき、
- MOTOR1_PINにLOWを、MOTOR2_PINにHIGHを指定すると、なぜか動きません。
- MOTOR1_PINにHIGHで、MOTOR2_PINにLOWだと動きます。
###使ったもの
- モータードライバー (TA7291P)
- モーター(マブチモーターのRE-140RA)
該当のソースコード
python
1# -*- coding: utf-8 -*- 2import RPi.GPIO as GPIO, time, sys 3GPIO.setwarnings(False) 4 5SW1_PIN = 9 #z軸手前 6SW2_PIN = 6 #z軸奥 7SW3_PIN = 8 #x軸左 8SW4_PIN = 7 #x軸右 9MOTOR1_PIN = 25 #x軸 10MOTOR2_PIN = 26 11count1 = 0 12 13GPIO.setmode(GPIO.BCM) 14 15GPIO.setup( SW1_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 16GPIO.setup( SW2_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 17GPIO.setup( SW3_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 18GPIO.setup( SW4_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) 19GPIO.setup( MOTOR1_PIN, GPIO.OUT ) 20GPIO.setup( MOTOR2_PIN, GPIO.OUT ) 21 22try: 23 while True: 24 if(GPIO.input(SW1_PIN) == GPIO.LOW): 25 print("1") 26 GPIO.output( MOTOR1_PIN, GPIO.LOW ) 27 GPIO.output( MOTOR2_PIN, GPIO.LOW ) 28 else: 29 GPIO.output( MOTOR1_PIN, GPIO.LOW ) 30 GPIO.output( MOTOR2_PIN, GPIO.HIGH ) 31 if(GPIO.input(SW3_PIN) == GPIO.LOW and count1 >= 1): 32 print("2") 33 else: 34 pass 35 else: 36 pass 37 38except (KeyboardInterrupt): 39 GPIO.cleanup()
試したこと
配線の確認
- モーターとモータードライバーの組み合わせが他にあったので試すと、同様のことが発生した。
回答のほどよろしくお願いいたします
回路図を提示しましょう