arduinoについて質問です。 センサーからの信号を受け、基準値0度から+30度、-30度で最大60度サーボモーターが動くようにしたいのですが、現時点で基準値からプラス側にしかサーボが動かなくて困っています。 (わかりづらいと思うので画像も添付します) 現段階ではそれぞれ、感圧センサー、光センサー、曲げセンサーで動くものを3台のarduinoで作りました。 使っているサーボはSG90と呼ばれるものです。中華性も使っていますが動いています。 ↓こちらのサイトを参考にしてみたのですがマイナス側には動いてくれませんでした。 https://elchika.com/article/bd2d528c-62ff-4564-ad24-0c1ee310cb53/ 〜〜 コードはこれです 【感圧センサ、光センサ】 #include<Servo.h> int val = A0; Servo myservo; int pos=0; void setup() { Serial.begin(9600); myservo.attach(9); } void loop() { //servo0 // アナログピンの入力値を読み込み。 int sensorValue = analogRead(A0); // 読み込んだ状態をシリアルモニターに表示する文。 Serial.println(sensorValue); //見やすくするため少し遅延。 delay(100); if(sensorValue<200){//めちゃ押す for(pos=0;pos<=90;pos++){ myservo.write(pos); delay(10); } for (pos=90;pos>=0;pos--){ myservo.write(pos); delay(10); } }else if(sensorValue<500){//ちょい押す for (pos=0;pos<=60;pos++){ myservo.write(pos); delay(10); } for (pos=60;pos>=0;pos--){ myservo.write(pos); delay(10); } }else if(sensorValue<1024){//押さない for (pos=0;pos<=30;pos++){ myservo.write(pos); delay(10); } for (pos=30;pos>=0;pos--){ myservo.write(pos); delay(10); } }else{ for (pos=0;pos<0;pos++){ myservo.write(pos); delay(10); } } } 【曲げセンサ】 #include <Servo.h> Servo servo; #define SERVO_PIN 9 #define ANALOG_PIN 0 #define SERVO_POS_DEFAULT 0 #define SERVO_POS_MAX 120 #define CENSOR_VALUE_MIN 760 #define CENSOR_VALUE_MAX 960 int val; int pos; void setup() { Serial.begin(9600); servo.attach(SERVO_PIN); servo.write(SERVO_POS_DEFAULT); } void loop() { val = analogRead(ANALOG_PIN); Serial.println(val); delay(100); pos = constrain(val, CENSOR_VALUE_MIN, CENSOR_VALUE_MAX); pos = map(pos, CENSOR_VALUE_MIN, CENSOR_VALUE_MAX, SERVO_POS_DEFAULT, SERVO_POS_MAX); servo.write(pos); delay(100); } 長くなりましたが、よろしくお願いします!
C言語関連