lou 发表于 2020-5-9 15:33:40

基于Arduino开发板使用电压检测模块

本帖最后由 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.00489VDC输入接口:端子正极接VCC,负极接GND输出接口:“+”接5/3.3V, “-”接GND,”S”接Arduino的AD引脚
电压检测模块基础小案例
结合Arduino Nano、电压检测模块、OLED显示屏、一个外部6V电池电源,实现对输入电压的检测显示。
OLED显示屏和Arduino Nano接线方式
OLED显示屏                     Arduino NanoVCC         <------>       3V3/5V GND          <------>         GNDSCL             <------>          D13SDA            <------>         D11 RES             <------>          D8 DC            <------>          D9CS            <------>         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);

}



页: [1]
查看完整版本: 基于Arduino开发板使用电压检测模块