利用arduino nano开发板配合oled、温度传感器、光照传感器、湿度传感器设计一个花盆

完整项目地址:
https://github.com/linxinloningg/arduino_chip_core.git

前言:

本示例采用的开发板:arduino nano;

​ oled:0.96英寸oled(iic接口);

​ 温度传感器:ds18b20;

​ 湿度传感器:

​ 光照传感器:

示例将不分析代码的如何编写,只分析编写思路,因为我也只是才学了一天arduino就写这个程序,很多代码都是沿用之前51单片机中的代码,只不过51单片机采用的是位带操作,换到arduino就要采用相关语句才能操作其中的io口。

iic配置:

由于oled是采用iic接口通信的,万年不变定律,iic相关操作函数贴上:

起始信号:void I2cStart(void);

终止信号:void I2cStop(void);

发送字节数据函数:unsigned char I2cSendByte(unsigned char dat);

oled配置:

有了iic操作函数,接着根据oled命令表封装相关操作函数,不知道oled操作命令的可以翻我之前的文章,在oled配置那里有详细介绍,搬过来用即可

oled写命令函数:void oled_Write_cmd(unsigned char cmd);

oled写数据函数:void oled_Write_data(unsigned char dat);

oled清屏函数:void oled_clear(void);

oled初始化函数:void oled_initial(void);

oled显示函数,这个函数是确定将要显示的位置,以及数据采样的格式:void oled_put_char_16x16(unsigned char x,unsigned char y,unsigned char t);
//设置显示坐标函数,t为0时,字符为8x16t为1时,字符为16x16

然后通过oled_Write_data(),将采样到的字符数据写入即可显示。

ds18b20配置(在之前文章也有讲过ds18b20如何驱动及运用):

根据ds18b20操作手册:

检测是否有ds18b20:unsigned char DS18B20_Check(void);

ds18b20初始化:void DS18B20_Init(void);

复位信号:void Rest_sign(void);

读一位数据:unsigned char DS18B20_Read_Bit(void);

读一字节数据:unsigned char DS18B20_Read_Byte(void);

写一字节数据:void DS18B20_Write_Byte(unsigned char dat);

开始信号:void DS18B20_Start(void);

获取温度函数:void get_Temperature(void);

光照、土壤湿度传感器配置:

光照和土壤湿度传感器类似,都有DO和AO;

DO是当测量值高于设定的阈值时会输出高电平,可以通过nano的模拟输入引脚或者数字输入输出引脚捕获,设定的阈值是通过旋转传感器上的电位计设定的,顺时针旋转会变大,反之变小。

AO是通过测量值的大小转而输出不同的电压,nano模拟输入(ADC)的采样精度是01024,所以当我们采样AO上的电压时将会显示01024之间某个值value,通过用value/1024*100,即可得到光照和土壤湿润的程度,我只能说是程度,而不是真正的光照强度和土壤湿度,因为光照强度和土壤湿度的计算相对复杂,我并不知道只有一个电压值怎样才能换算出。

DO判断,看是否超过阈值:void scan_DO(void);

获取光照程度:void get_Light_level(void);值存放在全局变量Light_level,调用即可。

获取湿润程度:void get_Humidity_level(void);值存放在全局Humidity_level,调用即可。

setup()和loop():

最后附上效果图,和源码地址:

利用arduino nano开发板配合oled、温度传感器、光照传感器、湿度传感器设计一个花盆相关推荐

  1. Arduino nano开发板选购

    介绍两块Arduino nano开发板,串口芯片都是ch340g,黑色的采用Atmega168p,粉色的采用Atmega328p.板子挺厚的而且都是type c接口,有黑色和粉色可选. 除了主控芯片不 ...

  2. 利用Arduino Nano 对于另外的Arduino控制板下载Bootloader

    简 介: 测试了利用Nano板对于基于MEGA328的Arduino的Bootloader下载,在此基础之上,利用了FT232TL的USB-TTL UART模块对测试MEGA328下载执行程序. 关键 ...

  3. Arduino IDE安装UNO和NANO开发板驱动教程(CH341SER.EXE)

    Arduino IDE安装UNO和NANO开发板驱动教程(CH341SER.EXE) win10系统最方便的地方之一就是可以自动安装驱动,这个功能对于使用Arduino进行硬件编程的人而言可谓无比欢乐 ...

  4. STM32F103RB 实作笔记(六)- HC-05 蓝牙模组与手机 APP(正点原子 STM32F103 nano开发板)程式解析

    这一篇文章是为后面的实验做的一个准备工作 我们在做开发板扩展时,最不喜欢遇到的就是"不知道发生了什么事"!所以, 会用一些输出显示装备来告诉我们,现在已经在哪里了. 譬如,前一个实 ...

  5. 【媒体控制器】开源项目学习笔记(基于Arduino Micro开发板)

    ☑️ 首先说明:本项目基于Arduino Micro 开发板开发的,外设只用到了EC11E1534408无定位旋转编码器. 项目来源:[DIY]自制PC外设-媒体控制器,在英国_哔哩哔哩_bilibi ...

  6. 基于Arduino Uno开发板制作音乐播放器

    基于Arduino Uno开发板制作音乐播放器 本文将基于Arduino开发板实现一个音乐播放器. 利用Arduino Uno读取sd卡模块中内存卡的音乐,传输信号到扬声器进行播放. 一.项目软硬件简 ...

  7. Arduino UNO开发板开箱体验

    Arduino UNO开发板开箱体验 1.Arduino简述 1.1什么是Arduino  Arduino是一个开源的电子设计平台,包括软件和硬件.其中硬件部分就是一块开发板了,软件部分就是对这块板子 ...

  8. micropython stm32f429_[MicroPython]STM32F407开发板驱动OLED液晶屏

    1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法. 2.进一步学习编制数据输出程序的设计方法. 3.学习 F407 Micropython开发板控制OLED显示字符. 2.所需元器件 F ...

  9. micropython 驱动oled0.91_[MicroPython]STM32F407开发板驱动OLED液晶屏

    1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法. 2.进一步学习编制数据输出程序的设计方法. 3.学习 F407 Micropython开发板控制OLED显示字符. 2.所需元器件 F ...

最新文章

  1. WebLogic集群案例分析
  2. [认证授权] 1.OAuth2授权
  3. 【深度学习】重新思考BatchNorm中的 “Batch”
  4. 常见问题_数组索引越界异常
  5. 9.数据库中的子查询
  6. codeforce No to Palindromes!(枚举)
  7. JVM 的三色标记算法详解
  8. mongodb指南(翻译)(十六) - developer zone - 何时使用GridFS
  9. Linux下Python3对Docker进行基本的管理(包含显示端口,显示IP,一键启动,一键关闭)
  10. 浅谈SSD应用和发展趋势
  11. jsp定义java方法_jsp教程上:jsp的定义和使用方法
  12. python详细教程#2下载python
  13. 【2021最新】各大公司招聘官网链接汇总(持续更新中)
  14. P2905 [USACO08OPEN]农场危机Crisis on the Farm
  15. 苹果手机怎么备份所有数据_ORICO手机备份宝,数据备份更轻松
  16. K8S中使用显卡GPU(N卡) —— 筑梦之路
  17. 【资源】重磅!清华大学网上课程面向全国免费开放!无需登录、注册!在家上清华!...
  18. SpringBoot2+Netty+WebSocket(netty实现websocket,支持URL参数)
  19. (转)使用Vernam(维尔南/弗纳姆)算法实现文件加密解密[C#]
  20. STM32普中F103抢答器与抢答器的延时控制

热门文章

  1. html语言link,HTML中link是什么意思?
  2. (转)你为什么不分享
  3. VM Design(1)
  4. Gophers如何准备面试?
  5. MindManager使用说明
  6. 【图像处理中的数学修炼(第1版)】一书之代码
  7. 物流快递单号查询接口种类及对接方法
  8. 论文笔记 | 中国区域文化地图:“大一统” 抑或“多元化”?
  9. 6230实现调频收音机录音设置为手机铃声
  10. 入坑 Flutter 前你需要知道的一些 XXX