Arduino UNO analogRead始终返回1023
所以我的问题正如标题所说:Arduino UNO analogRead总是返回1023 但是,当我在Arduino Mega 2650中烧掉同一张素描时,一切都像一个符咒 我尝试过改变UNO上的Atmel芯片,尝试过其中3个(ATMEGA328P-PU),但没有任何改变 我试图对霍尔效应传感器的信号进行计数,并在7段显示器上显示计数 代码如下:Arduino UNO analogRead始终返回1023,arduino,atmel,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() {
#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();
}
#包括“SevSeg.h”
塞夫塞格塞夫塞格;
挥发性整数rpmcount;
无效设置(){
Serial.begin(9600);
引脚模式(2,输入\上拉);
rpmcount=0;
SevsegBegin(1,3,4,5,6,7,8,9,10,11,12,13);
}
int-border=15;
void循环(){
int-tmp=0;
tmp=模拟读数(0);
如果(!digitalRead(2))rpmcount=0;
连续打印(tmp,DEC);
if(tmpborder){
rpmcount++;
如果(rpmcount>9999)rpmcount=0;
}
res=tmp;
sevseg.NewNum(rpmcount,(字节)0);
sevseg.PrintOutput();
}
如果您能提供任何帮助,我将不胜感激。这听起来就像您启用了ADC引脚上的内部上拉电阻器一样 通用检查表:
- ACSR中的ACD位为0(比较器启用)
- ADMUX中的MUX位设置正确
- 选择正确的AREF
- ADC引脚设置为输入
- 取消选择内部上拉电阻器
- ACSR中的ACD位为0(比较器启用)
- ADMUX中的MUX位设置正确
- 选择正确的AREF
- ADC引脚设置为输入
- 取消选择内部上拉电阻器