上节我们学习了按键的识别,这是一种纯数字信号0,1的应用。本章讲解利用Arduino读取模拟信号,通过引脚可以读取外部的电压值;具体的AD转换原理大家可以百度查找,我们教程的宗旨是,只发干货!!! 原理大放送: UNO PLUS开发板主芯片采用ATMEGA38P-AU,该芯片供电电压范围广,适应3.3V及5V供电,内置10位AD转换模块,所以可提供2^10 = 1024级模数转换。当系统的供电为3.3V时,对应的分辨率可以达到3300mv / 1024 = 3.22mv,即每个AD值代表3.22mv;若5V供电,分辨率为5000mv / 1024 = 4.88mv,每个AD采样值代表4.88mv。 Accessory Shield板载的10k可调电位器采用3.3V供电,即最大可调节输出的电压值为3.3V。若开发板供电电压配置为3.3V,输出AD值的范围是0-1023;若开发板供电电压配置为5V,此时ADC的分辨率为4.88mv,电位器最大输出电压3.3V对应的AD值为3300 / 4.88 = 676,即输出AD值的范围是0-676。 代码示例: const int analog_pin = 0; int adcvalue; void setup(void) { Serial.begin(9600); } void loop(void) { adcvalue = analogRead(analog_pin); Serial.print("The current ADC value is: "); Serial.println(adcvalue); delay(500); } 附件: |