2016-09-05 4 views
-1

私はポテンショメータで速度制御のプロジェクトを行い、arduino mega2560の2つのDCモーターで速度をパーセンテージで測定しました。 ピンA0はポテンショメータから値を読み込み、モータのPWMを管理します。ピンA1は、第2モーターからのアナログ電圧を読み取り、速度をパーセンテージでカウントする必要があります。 しかし、私のピンA1は常にピンA0で同じ値を読んでいますが、A1.LCDは変数 "display_value"の値を示していますが、接続されていません。 誰か助けてください?arduinoから間違ったアナログ読み取り

const int input_1=A0;//input from potentiometer 
const int input_2=A1;//input from generator 
const int output_enA=10;//PWM, output for H-bridge 
//int stanje_senzora=0; 
int value_input_1=0; 
int value_input_2=0; 
int value_output_1=0; 
int display_value=0; 

//Pins for run dc-motor 
int in1 = 8; 
int in2 = 9; 
void setup() { 
    // put your setup code here, to run once: 
lcd.begin(16,2); 
    pinMode(input_1, INPUT); 
    pinMode(input_2, INPUT); 
    pinMode(output_enA, OUTPUT); 
    pinMode(in1, OUTPUT); 
    pinMode(in2, OUTPUT); 
} 
void motor() 
{ 
    value_input_1=analogRead(input_1);//read analog value from potentiometer 
    value_output_1=map(value_input_1, 0, 1023, 0, 255); 
    //run dc-motor with H-bridge 
    digitalWrite(in1,HIGH); 
    digitalWrite(in2,LOW); 
    analogWrite(output_enA, value_output_1); 
} 
void loop() { 
    // put your main code here, to run repeatedly: 
    value_input_2=analogRead(input_2); 
    display_value=map(value_input_2, 0, 1023, 0, 100); 
    lcd.setCursor(0,0); 
    lcd.print("speed= "); 
    lcd.print(display_value); 
    lcd.print(" %"); 

    motor(); 
} 

答えて

0

お持ちの場合はA1接続されていない、それはそれは同じ値のように見えるので、前回の測定から/放電サンプリング・コンデンサを充電することはできません(フローティング)。例えば3.3Vのように接続する場合は、5V を使用すると約66%の測定が必要です。

関連する問題