Arduino UNO analogRead总是返回1023

时间:2013-04-23 08:49:31

标签: arduino atmel

所以我的问题就像标题所说:Arduino UNO analogRead总是返回1023。

但是当我在Arduino Mega 2650中刻出相同的草图时,一切都像魅力一样。

我试图改变UNO上的Atmel芯片,尝试了其中的3个(ATMEGA328P-PU)并没有任何变化。

我正在尝试对来自霍尔效应传感器的信号进行计数,并在7段显示屏上显示计数。

以下是代码:

#include "SevSeg.h"

SevSeg sevseg;
volatile int rpmcount;

void setup() {
  Serial.begin(9600);
  pinMode(2,INPUT_PULLUP);
  rpmcount = 0;
  sevseg.Begin(1,3,4,5,6,7,8,9,10,11,12,13);
}
int border=15;

void loop() {
  int tmp=0;
  tmp = analogRead(0);
  if(!digitalRead(2))rpmcount=0;
  Serial.println(tmp,DEC);
  if(tmp<=border && res >border){   
    rpmcount++;
    if(rpmcount>9999)rpmcount=0;
  } 

  res=tmp;
  sevseg.NewNum(rpmcount,(byte) 0);
  sevseg.PrintOutput();
}

非常感谢任何帮助

1 个答案:

答案 0 :(得分:1)

这听起来好像你在ADC引脚上启用了内部上拉电阻。

通用检查表:

  • ACSR中的ACD位为0(比较器使能)
  • ADMUX中的MUX位设置正确
  • 选择了正确的AREF
  • ADC引脚设置为输入
  • 取消选择内部上拉电阻