###前提・実現したいこと
arduinoでUSBホストシールドを使ってPS3コントローラをBluetooth接続をしてDCサーボを動かそうと思っています。
PS3コントローラのジョイスティックを動かしてDCサーボをdelayを使って動かしたいのですがうまくできません。
s1が200以上のときに
s1の値をシリアルボートに表示→サーボを90度→delay(300)→サーボを60度→delay(300)と動かしたいです
###発生している問題・エラーメッセージ
if内を読み込んだときにdelayが機能せず値が表示され続けます
三回s1が200以上だったらs1の値が三回シリアルボートに表示され、その後サーボが60度、delay(300),90度、delay(300)を三回繰り返します
###該当のソースコード
#include <PS3BT.h>
#include <usbhub.h>
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <Servo.h>
int s1;
Servo servo;
USB Usb;
BTD Btd(&Usb);
PS3BT PS3(&Btd);
void setup()
{
servo.attach(4);
servo.write(90);
Serial.begin(9600);
while(!Serial);
if (Usb.Init() == -1)
{
Serial.print(F("\r\nOSC did not start"));//[OSC did not start]を表示する
while (1);
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));//[PS3 Bluetooth Library Started]を表示する
}
void loop()
{
Usb.Task();
if(PS3.PS3Connected)
{
s1 = (PS3.getAnalogHat(RightHatY));
if (s1 > 200)
{
Serial.print(F("\tRightHatY;"));
Serial.println(s1);
servo.write(60);
delay(300);
servo.write(90);
delay(300);
}
if (PS3.getButtonClick(PS))
{
Serial.print(F("\r\nPS"));
PS3.disconnect();
}
}
}
###試したこと
robo8080さんのブログに書いてあったサーボのやつはできました
あなたの回答
tips
プレビュー