找回密码
 立即注册

QQ登录

只需一步,快速开始

基础模块资料库

本帖最后由 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           <------>        负极

20.png
(电压检测模块)

产品参数

小板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

21.jpg
(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 图形化编程程序

22.png
(图形化程序)

备注:40.90是个校准系数,需要自己校准

23.png
(串口数值显示)

程序实现代码

  1. volatile float item;

  2. void setup(){

  3.   item = 0;

  4.   Serial.begin(9600);

  5. }

  6. void loop(){

  7.   item = analogRead(A0) / 40.90;

  8.   Serial.println(String(item, 1));

  9.   delay(1000);

  10. }
复制代码

2、OLED显示屏显示输入电压

Mixly 图形化编程程序

24.png
(图形化程序)

25.jpg
(显示输入电压)

程序实现代码

  1. #include <U8g2lib.h>

  2. #include <SPI.h>

  3. volatile float item;

  4. U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, 10, 9, 8);

  5. void page1() {

  6.   u8g2.setFont(u8g2_font_timR24_tf);

  7.   u8g2.setFontPosTop();

  8.   u8g2.setCursor(50,30);

  9.   u8g2.print(String(item, 1));

  10. }

  11. void setup(){

  12.   item = 0;

  13.   u8g2.begin();

  14.   Serial.begin(9600);

  15.   u8g2.enableUTF8Print();

  16. }

  17. void loop(){

  18.   u8g2.firstPage();

  19.   do

  20.   {

  21.     page1();

  22.   }while(u8g2.nextPage());

  23.   item = analogRead(A0) / 40.90;

  24.   Serial.println(String(item, 1));

  25.   delay(1000);

  26. }

复制代码


分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册