モーターシールドでモーターを動かし、超音波センサーで障害物(自分)が10cm以下の距離になったらそれについていくロボットを作りたいのですが、プログラムにエラーが出ていじったのですが原因が分かりません。
プログラム
lang
1#include <Wire.h> 2#include <Adafruit_MotorShield.h> 3 4Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 5Adafruit_DCMotor *Motor1 = AFMS.getMotor(1); 6Adafruit_DCMotor *Motor2 = AFMS.getMotor(2); 7 8void sennsa(){ 9 int dur; 10 float dis; 11 digitalWrite(13,HIGH); 12 delayMicroseconds(10); 13 digitalWrite(13,LOW); 14 dur = pulseIn(12,HIGH); 15 dis = (float) dur*0.017; 16 Serial.print(dis); 17 Serial.println(" cm"); 18 delay(500); 19} 20void go(){ //前 21 Motor1->run(FORWARD); 22 Motor2->run(FORWARD); 23 24} 25 26void back(){ //後ろ 27 Motor1->run(BACKWARD); 28 Motor2->run(BACKWARD); 29 Serial.println("aaa"); 30} 31 32void st(){ //止まる 33 Motor1->run(RELEASE); 34 Motor2->run(RELEASE); 35 36} 37 38void left(){ //左 39 Motor1->run(FORWARD); 40 Motor2->run(BACKWARD); 41 42} 43 44void right(){ //右 45 Motor2->run(FORWARD); 46 Motor1->run(BACKWARD); 47 48} 49 50void setup() { 51Serial.begin(9600); 52pinMode(13,OUTPUT); 53pinMode(12,INPUT); 54AFMS.begin(); 55Motor1->setSpeed(150); 56Motor1->run(FORWARD); 57Motor1->run(RELEASE); 58 59Motor2->setSpeed(150); 60Motor2->run(FORWARD); 61Motor2->run(RELEASE); 62} 63 64void loop() { 65sennsa(); 66if (dis < 10){ ”ここにエラー” 67back(); //止まる 68} 69else{ 70right(); 71delay(500); 72left(); 73delay(500); 74} 75 76} 77
エラーメッセージ
moto_2:66: error: 'dis' was not declared in this scope if (dis < 10){ ^ exit status 1 'dis' was not declared in this scope
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/20 11:34
2018/05/20 11:36
2018/05/20 11:36
2018/05/20 11:49
2018/05/20 11:56
2018/05/20 11:59
2018/05/20 12:00
2018/05/20 12:02
2018/05/20 12:04
2018/05/20 12:05
2018/05/20 12:07
2018/05/20 12:13
2018/05/20 12:15
2018/05/20 12:16
2018/05/20 12:17
2018/05/20 12:18
2018/05/20 12:19
2018/05/20 12:21
2018/05/20 12:25
2018/05/20 12:30
2018/05/20 12:33
2018/05/20 12:34