Robofun 機器人論壇

標題: Arduino程式碼&Gp2D120感測器 問題 [打印本頁]

作者: loses5402    時間: 2013-12-28 19:45
標題: Arduino程式碼&Gp2D120感測器 問題
我第一次使用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都有接線了

懇請前輩們幫忙 感謝
作者: mzw2008    時間: 2013-12-30 02:05
vin 一般不能接
因為若你用9V電池, Vin會是9V,這樣會害感測器燒燬喔XDDD




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2