0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

51单片机驱动VEML6075测量紫外线强度

jf_88434166 来源:jf_88434166 作者:jf_88434166 2025-11-30 15:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

VEML6075简介

VEML6075是一种紫外线(UV)光传感器,它可以测量紫外线强度。它通常用于各种应用,包括环境监测、皮肤防护和生物医学应用,在紫外线中,UVA是最常见的紫外线,它的波长范围是320-400纳米。它可以穿过玻璃,因此它可以通过窗户进入室内。UVA对皮肤的影响不如UVB严重,但它可以加速皮肤衰老并使皮肤暗淡。UVB是一种更强的紫外线,其波长范围为290-320纳米。它不能穿过玻璃,因此只能在户外被暴露。UVB可以导致皮肤晒伤,并且过度暴露可能会导致皮肤癌,我们可以通过Veml6075实现对UVA和UVB值的读取。

VM.jpg

VEML6075相关参数

在这里插入图片描述
参数中得出的重要参数有工作电压和IIC的电平都是3.3V的,在使用的时候,5V的51单片机记得加一个电平转换模块通讯会稳定一些,不然可能出现不正常现象,本人在调试代码过程中就因为5V的通讯电平不稳定导致的通讯异常。

VEML6075IIC读写相关时序

在这里插入图片描述
抛开具体的IIC的基本时序需求,因为Veml6075的寄存器都是16位寄存器,所以在这个地方需要注意,发送相关指令和读取相关寄存器数据的时候严格按照手册中给出的时序流程进行通信,否则会出现异常情况,记得严格按照手册进行不要凭借经验去写。

VEML6075IIC读写驱动代码

// 初始化 VEML6075
bit VEML6075Init()
{
	Start_I2c(); // 启动 I2C 传输
	SendByte(IIC_Add_W); // 写入 VEML6075 设备地址
	if(ack == 0) return 0;
	SendByte(VEML6075_CONF); // 写入 VEML6075 配置寄存器地址
	if(ack == 0) return 0;
	SendByte(0x10); // 写入 VEML6075 配置寄存器的值,使用默认设置
	if(ack == 0) return 0;
	Stop_I2c(); // 停止 I2C 传输
	return 1;
}

进行初始化操作可以在主函数中使用返回的Bit值进行判断模块是否成功初始化来进行下一步操作

// 读取 VEML6075 的 UVA 数据
unsigned int VEML6075ReadUVA()
{
	unsigned char dataH, dataL;

	Start_I2c(); // 启动 I2C 传输
	SendByte(IIC_Add_W); // 写入 VEML6075 设备地址
	SendByte(VEML6075_UVA); // 写入 VEML6075 UVA 数据寄存器地址
	Start_I2c(); // 启动 I2C 传输
	SendByte(IIC_Add_R); // 写入 VEML6075 设备地址,同时设置读取位
	dataH = RcvByte(); // 读取 UVA 数据的高字节
	Ack_I2c(0);
	dataL = RcvByte(); // 读取 UVB 数据的低字节
	Ack_I2c(1);
	Stop_I2c(); // 停止 I2C 传输

	return (dataH < < 8) | dataL; // 将读取到的数据组合成 16 位数据并返回
}


// 读取 VEML6075 的 UVB 数据
unsigned int VEML6075ReadUVB()
{
	unsigned char dataH, dataL;

	Start_I2c(); // 启动 I2C 传输
	SendByte(IIC_Add_W); // 写入 VEML6075 设备地址
	SendByte(VEML6075_UVB); // 写入 VEML6075 UVB 数据寄存器地址
	Start_I2c(); // 启动 I2C 传输
	SendByte(IIC_Add_R); // 写入 VEML6075 设备地址,同时设置读取位
	dataH = RcvByte(); // 读取 UVB 数据的高字节
	Ack_I2c(0);
	dataL = RcvByte(); // 读取 UVB 数据的低字节
	Ack_I2c(1);
	Stop_I2c(); // 停止 I2C 传输
	return (dataH < < 8) | dataL; // 将读取到的数据组合成 16 位数据并返回
}

上述代码中严格按照手册中的读写时序操作进行,可以读取出UVA和UVB的数值。

VEML6075IIC读写串口打印

在这里插入图片描述
上图读出的为原始的传感器输出的UVA和UVB的数值现象。

总结

使用VEML可以自己制作个人或者或者其他的一些DIY的小物品,进行夏日的紫外线的数据进行检测,本驱动程序给出的数据是原始数值,如果需要做一些小作品的话需要自己找当地气象局或者环境检测机构了解下计算因子进行数据解析调用从而得到紫外线的UV指数值,相关程序和Veml6075的应用手册和校准计算都会放在资料中打包,有需要的小伙伴可留言邮箱获取。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2577

    文章

    55499

    浏览量

    793913
  • 51单片机
    +关注

    关注

    278

    文章

    5716

    浏览量

    135096
  • 紫外线
    +关注

    关注

    1

    文章

    381

    浏览量

    22145
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Vishay VELM6075紫外线检测开发套件免费试用

    世平集团推出基于 Vishay VEML6075紫外线检测方案,可以通过检测紫外线强度,为广大需要紫外线数据的人提供实时数据,贴心提醒。
    发表于 03-09 11:33

    VEML6075紫外线检测试用申请】基于VEML6075的户外紫外线检测反馈系统

    VEML6040使用同一款MCU,除了紫外线传感器外大部分外设程序代码通用,因此我申请了VEML6075后能够更快地完成项目。 项目描述:年轻女性,户外工作人员和老年人对户外紫外线
    发表于 04-10 17:58

    VEML6075紫外线检测试用体验】+ 读取VEML6075寄存器并计算

    1 VEML6075应用流程分析1.1 紫外线及其检测介绍紫外线主要包括365nm波长(320-400nm,3dB带宽为350--375nm)的UVA区域和330nm波长(280--4430nm
    发表于 04-15 15:28

    VEML6075紫外线检测试用体验】开箱鉴赏

    VEML6075紫外线检测开发板不但能检测身边的紫外线强度,灵敏的传感器还能检测室内微弱的紫外线强度
    发表于 04-16 11:58

    VEML6075紫外线检测试用体验】外形尺寸与参数

    今天,我们来分析大联大VEML6075紫外线检测套件的外形尺寸与参数VEML6075的外部由优质的屏蔽材料包裹封装用刻刀沿热塑封的熔接线轻轻割开,取出内部装载的板卡这手感,是多层板,做工很扎实轴二
    发表于 04-17 11:41

    VEML6075紫外线检测试用体验】+4.读取紫外线传感器VEML6075的器件ID

    ` 本帖最后由 wamcncn 于 2017-4-17 14:02 编辑 紫外线传感器VEML6075的通讯接口是I2C。结构框图如下:SDAT和SCLK是I2C串行总线的两根信号线,在手册里
    发表于 04-17 14:02

    VEML6075紫外线检测试用体验】+开箱上电&工程环境搭建&资料分享

    的UV射线强度的,但是我发现了一个跟VEML6040差不多的现象:灯光下UVA和UVB读数均变大,难道灯光下也有强烈的紫外线?好可怕。。。 上传一份大联大官方的开发板资料附件。
    发表于 04-23 23:27

    VEML6075紫外线检测板子上OLED的资料

    谁有VEML6075 紫外线检测板卡上的LCM的资料。或者知道什么型号。谢谢。 补充内容 (2017-4-27 12:29): 不是OLED,是LCD
    发表于 04-25 10:36

    VEML6075紫外线检测试用体验】+工程整理&界面美化&场地实测

    VEML6075驱动的例程花不了多少时间。VEML6075VEML6040一样都是IIC通信的总线,初始化步骤大致相同,需要分别发送两个字节的数据到0x00号寄存器和0x01号寄存器
    发表于 04-30 15:17

    VEML6075紫外线检测试用体验】大棚紫外智控系统初测版

    强大的兼容性,能兼容大多数各种各样的屏幕然后是实测视频,MP4不知道为什么成为不允许上传的格式,现在压成rar传上来了总体来说,veml6075的反应速度很快,测量数值很准,串口传输也控制得很好,随便哪个上位都能稳定捕捉到数据
    发表于 05-07 16:29

    VEML6075紫外线检测试用体验】结项报告:基于VEML6075的户外紫外线检测反馈系统

    硬件准备:VEML6075开发板、两个配对好的HC05模块、CH340 USB转TTL模块、5V充电宝、蜂鸣器模块 项目背景:年轻女性,户外工作人员和老年人对户外紫外线强度变化非常敏感,若
    发表于 05-14 13:50

    VEML6075紫外线检测试用体验】结项报告:基于VEML6075的大棚控制系统

    /jishu_1127861_1_1.html,因为VEML6075不但能准确检测紫外线,还具备相当快的处理能力,所以用的依然是VEML6075的处理能力,完全用不到上位,既然这是检
    发表于 05-21 17:37

    VEML6075紫外线检测试用体验】使用手机BLE连接VEML6075的可穿戴平台紫外检测功能开发

    VEML6075的可穿戴平台紫外检测功能开发进行说明Mars4zhu目 录1 总述 12 紫外线检测及其传感器VEML6075介绍 12.1 紫外线
    发表于 07-01 09:50

    VEML6075紫外线检测试用体验】 VEML6075紫外线检测试用总结

    VEML6075紫外线检测试用总结有幸得到VEML6075的使用,过程很丰富,同时中间也有很多曲折。原计划:对评估板的外形、资源、例程进行学习,并撰写学习报告。采用UVA和UVB在不同程度下的检测值
    发表于 07-01 10:04

    VEML6075紫外线检测试用体验】 VEML6075紫外线检测试用总结

    VEML6075紫外线检测试用总结有幸得到VEML6075的使用,过程很丰富,同时中间也有很多曲折。原计划:对评估板的外形、资源、例程进行学习,并撰写学习报告。采用UVA和UVB在不同程度下的检测值
    发表于 07-11 09:58