发生的事情是,无论我在Arduino Elegoo R3板上放置什么类型的传感器,我的值都读错了。
发生了什么:
模拟温度传感器-读取400+摄氏度
火焰检测传感器-根据火焰距离读取0,1023 (dig)或0,1(模拟) no。
详情: 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/
我或本教程遗漏了哪些会导致传感器读数错误的内容?
发布于 2017-12-16 23:15:17
可以尝试的一件事是“现实检查”:将一个已知的正电压连接到A0,另一端连接到地。已知良好的1.5V电池应该没问题...它应该返回大约1024 * 1.5 /5= 307的读数。如果是这样,您知道您的Uno和代码是正常的;如果不是,请再次检查您的传感器和布线。
另一个简单的测试是使用万用表(他们经常免费提供的港口货运工作之一是很好的),并测量有无火焰的传感器输出电压。
发布于 2017-12-16 06:07:29
假设Elegoo Uno R3使用atmega328,下面是一个ADC示例代码。通常,读取传感器包括将传感器连接到控制器上的一个模拟通道(如果控制器内置了ADC)。然后,您需要在控制器中配置ADC。配置完成后,为了读取通道,您需要发出信号以开始转换(基本上在该时刻,什么是模拟值并转换为数字值),然后等待转换完成。然后,您可以从控制器的ADC寄存器中读取数字值。以下链接中的atmega328示例
在您提到的火焰传感器中,A0模拟信号指示您需要连接ADRENO板的任何模拟通道。D0是一个数字通道,根据温度是否达到一定的阈值,它只会给你0或1。
发布于 2017-12-17 05:46:01
我把你的代码下载到了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 voltshttps://stackoverflow.com/questions/47831428
复制相似问题