所以我的问题就像标题所说: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();
}
非常感谢任何帮助
答案 0 :(得分:1)
这听起来好像你在ADC引脚上启用了内部上拉电阻。
通用检查表: