为什么Arduino模拟输出值总是错误的?显着关闭

问题描述 投票:0回答:3

发生了什么事情,无论我把什么类型的传感器放到我的Arduino Elegoo R3板上,我的价值都是错误的。

发生了什么:

模拟温度传感器 - 读取400多摄氏度

火焰检测传感器 - 根据火焰距离读取0,1023(挖掘)或0,1(模拟)之间的编号。

详情:Board - Elegoo Uno R3

面包板

传感器来自Elegoo 37传感器套件 - https://github.com/josejuansanchez/37-in-1-arduino-sensor-kit

基本代码:

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(A0, INPUT);
}

void loop() {
  int reading = analogRead(A0);  

 // converting that reading to voltage, for 3.3v arduino use 3.3
 float voltage = reading * 5.0;
 voltage /= 1024.0; 

 // print out the voltage
 Serial.print(voltage); Serial.println(" volts");

 // now print out the temperature
 float temperatureC = (voltage - 0.5) * 100 ;  //converting from 10 mv per degree wit 500 mV offset
                                               //to degrees ((voltage - 500mV) times 100)
 Serial.print(temperatureC); Serial.println(" degrees C");

 // now convert to Fahrenheit
 float temperatureF = (temperatureC * 9.0 / 5.0) + 32.0;
 Serial.print(temperatureF); Serial.println(" degrees F");

 delay(1000);     
}

我尝试过其他传感器并遇到类似的问题。

这让我相信我做错了布线。但是,有一张照片可以显示引脚连接,我使用面包板完全按照照片所示连线

我在这里找到的教程正是我如何为火焰检测设置我的电路板:http://www.instructables.com/id/Arduino-Modules-Flame-Sensor/

我或本教程缺少什么会导致传感器读数错误?

arduino microcontroller sensor
3个回答
2
投票

要尝试的一件事是“现实检查”:将已知的正电压连接到A0,将另一端连接到地。一个已知良好的1.5V电池应该没问题...它应该返回大约1024 * 1.5 / 5 = 307的读数。如果是这样,你就知道你的Uno和代码都没问题;如果没有,请再次检查传感器和接线。

另一个简单的测试是使用万用表(他们经常免费赠送的那些Harbor Freight工作之一),并在有和没有火焰的情况下测量传感器输出电压。


1
投票

假设Elegoo Uno R3使用atmega328,这里是ADC的一个示例代码。通常读取传感器涉及将传感器连接到控制器上的模拟通道之一(如果控制器内置ADC)。然后,您需要在控制器中配置ADC。配置完成后,为了读取通道,您需要发出信号以启动转换(基本上在那个时刻什么是模拟值并转换为数字值)并等待转换完成。然后,您可以从控制器的ADC寄存器中读取数字值。以下链接中atmega328的示例

Example code

在您提到的火焰传感器中,您需要连接Adreno板的任何模拟通道的A0模拟信号。 D0是一个数字通道,根据温度是否达到某个阈值,只给你0或1。


0
投票

我拿了你的确切代码,并将其下载到Arduino。

通过插入从A0到GND,3.3V和5V的跳线,您的代码似乎正常工作,因为正确的值出现在电压上。

顺便说一下,你的setup()例程中不需要'pinMode(A0,INPUT)'行。

如果此设置不起作用,则可能意味着通道A0混乱。 Boggyman建议的现实检查是您所需要的,Arduino板可以轻松提供其中三个值。顺便说一句,这些是模拟输入,而不是输出;您的帖子标题在技术上是不正确的。

0.00 volts
-50.00 degrees C
-58.00 degrees F
3.33 volts
282.52 degrees C
540.54 degrees F
5.00 volts
449.51 degrees C
841.12 degrees F
5.00 volts
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.