リセットボタンができたので、調子にのってサーボをつないでみる。
普通ならここで、ユニバーサル基板にサーボ用のピンを立てて・・・・となるから、
めんどくさいのだが、GEMMYはサーボ用にピンが立っている。
寝る前にもうひとつ進んでおこうと、気軽に行ける。
mbedのライブラリからservoで検索して、なにも考えす一番最初のをインポートする。
サンプルのコードからぺぺっと カットアンドペーストして、
この前作ったボタンテストのプログラムに足す。
とりあえずめんどうだから、USB給電でも負荷にならなそうな、
ちっちゃいサーボをつないだ。
コンパイルして実行~~~??? あれ 動かん。
オシロで信号ピンをあたると、パルスはちゃんと出ている。
しばし考えてサーボコネクターのプラス側をあたる。
おお、USBから給電してしまわないように出来てるぞ。
それは正しい!
で、一昨日作った間に合わせ電源をつないだら動いた。
めでたしめでたし。
ここまで、トラブルシュートいれて15分。
まあ、楽なもんですよ。
------------------
プログラムは、ボタンテストにちょっと足して、白、黒ボタンで、サーボが
いっぱいに切れる。赤ボタンでニュートラル。
即席サーボテスター出来上がり。
コードは、ほとんど変わりませんわ。
#include "mbed.h"
#include "TextLCD.h"
#include "Servo.h"
TextLCD lcd(p11, p12, p27, p28, p29, p30); // rs, e, d4-d7
DigitalIn swWhite(p13);
DigitalIn swRed(p14);
DigitalIn swBlack(p9);
Servo myservo(p26); //GEMMY C1 CONNECTOR
int main() {
lcd.printf("SERVO TEST");
swWhite.mode(PullUp);
swRed.mode(PullUp);
swBlack.mode(PullUp);
while(1){
if(swWhite==0){
lcd.cls();
lcd.printf("#### ---- ----");
myservo = 1.0;
}
else if(swRed==0){
lcd.cls();
lcd.printf("---- #### ----");
myservo = 0.5;
}
if(swBlack==0){
lcd.cls();
lcd.printf("---- ---- ####");
myservo = 0.0;
}
}
}