本帖最后由 lou 于 2020-5-9 15:37 编辑
基于Arduino开发板使用电压检测模块
产品介绍
电压检测模块基于电阻分压原理所设计,能使端子接口输入的电压缩小5倍,Arduino模拟输入电压最大为5V,那么电压检测模块的输入电压则不能大于5V×5=25V(如果用到3.3V系统,输入电压不能大于3.3V×5=16.5V),因为Arduino所用AVR芯片为10位AD,所以此模块的模拟分辨率为0.00489V(5V/1023),故电压检测模块检测输入最小电压为0.00489V×5=0.02445V。
接线方式
电压检测模块 Arduino Nano + <------> 5V/3V3 - <------> GND S <------> A0
电压检测模块 外部电池电源 GND <------> 正极 VCC <------> 负极
(电压检测模块)
产品参数
小板PCB尺寸:28mm*15mm*13mm(长*宽*高) 电压输入范围:DC0-25V 电压检测范围:DC0.02445V-25V 电压模拟分辨率:0.00489V DC输入接口:端子正极接VCC,负极接GND 输出接口:“+”接5/3.3V, “-”接GND,”S”接Arduino的AD引脚
电压检测模块基础小案例
结合Arduino Nano、电压检测模块、OLED显示屏、一个外部6V电池电源,实现对输入电压的检测显示。
OLED显示屏和Arduino Nano接线方式
OLED显示屏 Arduino Nano VCC <------> 3V3/5V GND <------> GND SCL <------> D13 SDA <------> D11 RES <------> D8 DC <------> D9 CS <------> D10
(OLED显示屏 12864液晶显示屏模块 II/SPI接口)
OLED显示屏使用方法
GND:电源地VCC:电源正3-5VD0:SPI接口时为SPI时钟线,IIC接口时为IIC时钟线D1:SPI接口时为SPI时钟线,IIC接口时为IIC时钟线RES:ILED复位,OLED在上电后需要一次复位DC:SPI数据/命令选择脚,IIC接口时用来设IIC地址CS:OLEDSPI片选,低电平有效,如不想用必须接地
1、串口打印读取输入电压
Mixly 图形化编程程序
(图形化程序)
备注:40.90是个校准系数,需要自己校准
(串口数值显示)
程序实现代码
- volatile float item;
- void setup(){
- item = 0;
- Serial.begin(9600);
- }
- void loop(){
- item = analogRead(A0) / 40.90;
- Serial.println(String(item, 1));
- delay(1000);
- }
复制代码
2、OLED显示屏显示输入电压
Mixly 图形化编程程序
(图形化程序)
(显示输入电压)
程序实现代码
- #include <U8g2lib.h>
- #include <SPI.h>
- volatile float item;
- U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 8);
- void page1() {
- u8g2.setFont(u8g2_font_timR24_tf);
- u8g2.setFontPosTop();
- u8g2.setCursor(50,30);
- u8g2.print(String(item, 1));
- }
- void setup(){
- item = 0;
- u8g2.begin();
- Serial.begin(9600);
- u8g2.enableUTF8Print();
- }
- void loop(){
- u8g2.firstPage();
- do
- {
- page1();
- }while(u8g2.nextPage());
- item = analogRead(A0) / 40.90;
- Serial.println(String(item, 1));
- delay(1000);
- }
复制代码
|