从arduino读错了模拟

时间:2016-09-05 23:45:30

标签: arduino

我使用电位计进行速度控制项目,并测量arduino mega2560中两个直流电机的速度百分比。 引脚A0用于读取电位器的值,管理PWM用于电机。引脚A1必须从第二个电机读取模拟电压,并以百分比计数速度。 但是我的引脚A1总是在引脚A0处读取相同的值虽然未连接A1.LCD显示变量“display_value”的值,但它没有连接。 请有人帮帮我吗?

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();
}

1 个答案:

答案 0 :(得分:0)

如果A1未连接(浮动),则它无法对先前测量的采样电容充电/放电,因此它看起来像是相同的值。如果连接例如3.3V,如果使用5V Aref,它应该测量大约66%。