import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(22, GPIO.OUT) while 1: GPIO.output(22, True) time.sleep(0.5) GPIO.output(22, False) time.sleep(0.5)
まずは、RPi.GPIO の方でディジタル出力を確認しました。LEDと抵抗を出力ピンとグランドの間に入れて、上記のソースでLEDの点滅を確認しました。 次に、WiringPi の方でPWM出力を試してみました。
import wiringpi import time io = wiringpi.GPIO(wiringpi.GPIO.WPI_MODE_PINS) io.pinMode(1, io.PWM_OUTPUT) while 1: count = 0; while count < 100: io.pwmWrite(1, count) count += 1 time.sleep(0.1) while count > 0: io.pwmWrite(1, count) count -= 1 time.sleep(0.1)
抵抗は通さずに、PWM出力ピン→LED→GNDに接続してしまうことにしました。
タイマーでじわじわ明るくなったり、暗くなったりするのを確認。調子に乗って、Motor Shieldを装着。
動きました。PWM出力以外のdirectionピンやbrakeピンを初期化していなかったのと、アナログ出力の設定値が0~254だと勝手に思っていたんですが、実際には0~1023でした。Arduinoでは254なので、そう思い込んでいて、LEDくらいは光るけどモータを動かすには足りない値を設定していたようです。breakピンの状態に寄ってはブレーキがかかっていたかもしれません。
0 件のコメント:
コメントを投稿