| 
 | 
 
我第一次使用Arduino做專題原本已經完成循跡自走車(延黑色線走) 後來要加裝感測器(Gp2D120)感應障礙物 
我上網找到了程式碼加上去變得無法造我要的動作去行駛 
想請問各位前輩們我哪裡出問題程式碼如下 
/* 
 
  控制 兩個馬達    控制馬達轉速 使用PWM  功能 
 
 
 
 
 */ 
 
// constants won't change. They're used here to  
// set pin numbers: 
const int sensorPinL = 2;     //  
const int sensorPinR = 3;     //  
int pwmR = 0; 
int pwmL = 0; 
int IRpin = 0;                                    // analog pin for reading the IR sensor 
float sensorValue, distance; 
 
 
const int motorLin1 =  10;      //    左馬達 電機控制   
const int motorLin2=  11;      //   左馬達  電機控制 
const int motorRin1 =  12;      //    右馬達控制 
const int motorRin2=  13;      //     左馬達控制 
 
// variables will change: 
int sensorStateL = 0;         //  左偵測器 
int sensorStateR = 0;         //   右偵測器 
 
void setup() { 
 
  pinMode(motorRin1, OUTPUT);  
  pinMode(motorRin2, OUTPUT);  
 
  pinMode(sensorPinL, INPUT);   
  pinMode(sensorPinR, INPUT);     
 
  pinMode(5,OUTPUT);  // 控制左電機馬達轉速  PWM   
 
 
  pinMode(6,OUTPUT); 
 
  pinMode(IRpin, INPUT); 
 
} 
 
void loop(){ 
  // read the state of the pushbutton value: 
 
  analogWrite(5,200);  //PWM  左馬達     
 
   analogWrite(6,200);  //PWM     右馬達 
 
  sensorStateL = digitalRead(sensorPinL); 
  sensorStateR = digitalRead(sensorPinR); 
  // check if the pushbutton is pressed. 
  // if it is, the buttonState is HIGH: 
 
    if (sensorStateL == HIGH) {      
    // turn LED on:     
    digitalWrite(motorLin1, HIGH);  
    digitalWrite(motorLin2, LOW);    
  }  
  else { 
    // turn LED off: 
    digitalWrite(motorLin2, HIGH);  
    digitalWrite(motorLin1, LOW);  
  } 
 
 
    if (sensorStateR == HIGH) {      
    // turn LED on:     
    digitalWrite(motorRin1, HIGH);  
    digitalWrite(motorRin2, LOW);    
  }  
  else { 
    // turn LED off: 
    digitalWrite(motorRin2, HIGH);  
    digitalWrite(motorRin1, LOW);  
  } 
 
  sensorValue = analogRead(IRpin);  
  sensorValue *= 0.0048828125; 
  distance = 60.495 * pow(sensorValue,-1.1904); 
 
 
  Serial.println(distance); 
 
 
  delay(1000);   
} 
 
紅色是我在網路上找到的感測障礙物停止的程式碼加上去的 
若沒紅色的是可以正常黑顏色線走(無感測器) 
 
聽同學說是我程式設定20公分太大要改小 又不會用excle 
前輩們可以幫我修改到5公分或是幫我找出無法動作的問題 
我感測器正極接板子的VIN 負極GND 輸出為PING0    
因為5V 和3.5V都有接線了 
 
懇請前輩們幫忙 感謝  |   
 
 
 
 |