Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino UNO analogRead始终返回1023_Arduino_Atmel - Fatal编程技术网

Arduino UNO analogRead始终返回1023

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() {

所以我的问题正如标题所说: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();
}
#包括“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引脚设置为输入
  • 取消选择内部上拉电阻器

这听起来好像您启用了ADC引脚上的内部上拉电阻器

通用检查表:

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

如果霍尔传感器未连接,您是否测试了从引脚2获得的信息?你试过使用另一个引脚输入吗?如果传感器没有连接,我仍然得到1023的所有方式。我刚刚试过你的建议,改变要使用的模拟管脚-结果和以前完全一样。我有点迷路了。因为你换了CPU,我觉得PCB不知怎么坏了…:-/-试着将插脚接地,然后查看它是否显示为0-如果不是,则肯定是出了问题。如果霍尔传感器未连接,您是否测试了从插脚2得到的结果?你试过使用另一个引脚输入吗?如果传感器没有连接,我仍然得到1023的所有方式。我刚刚试过你的建议,改变要使用的模拟管脚-结果和以前完全一样。我有点迷路了。因为你换了CPU,我觉得PCB不知怎么坏了…:-/-试着将针脚接地,然后看看它是否显示为0-如果不是,则肯定是出了问题。