GY-30数字光强传感器通过I²C通信协议接入Arduino过程中的一些问题和解决方案:
网上流行着两个版本:
我用版本一的代码,发现并不对,串口打印一直显示光照强度为 0 ,很奇怪,也研究了很久,去 Wire 这个库文件看了函数实现,后来发现
Wire.requestFrom(ADDR, 2); // 2byte every time
这一行代码出现了问题。
这个 requestFrom
网上对它的描述都是:
Wire.requestFrom()
描述:
主设备请求从设备一个字节,这个字节可以被主设备用 read()或available()接受。
Wire.requrstFrom(addtess,quantity)
Wire.requrstFrom(addtess,quantity,stop)
参数 :
addtess : 7位的器件地址
quantity : 请求得到的数量 stop :布尔形,‘1’
则在请求结束后发送一个停止命令,并释放总线。‘0’则继续发送请求保持连接。
返回:
字节形 ,从从机接受到的字节数目。
然而并没有提,要用 requestFrom 前后必须要加:
Wire.beginTransmission(ADDR);
Wire.endTransmission();
这两句,分别为开始一次传输数据,和结束一次传输。
也就是将 requestFrom 这行代码改为以下,即可完成从设备向主设备发送数据
在这里也就是 gy30(从设备) 向 arduino 板(主设备)传输光强度的采集量
Wire.beginTransmission(ADDR);
Wire.requestFrom(ADDR, 2);
Wire.endTransmission();
函数发生器、信号发生器和波形发生器的区别
时间:2026-06-06
电子元器件的常见封装 各种封装类型的特点介...
时间:2026-06-06
普通光敏二极管的检测
时间:2026-06-06
详细介绍8种常用的排序算法
时间:2026-06-06
s9013三级管引脚图及参数
时间:2026-06-06
电压跟随器有什么作用?
时间:2026-06-06
VRRP是什么?VRRP的作用和工作原理
时间:2026-06-05
32768晶振封装尺寸详解
时间:2026-06-05
静态路由是什么?静态路由如何配置?
时间:2026-06-05
一文详解光耦的作用与分类、使用技巧
时间:2026-06-05
电阻的单位
时间:2026-03-05
NVIDIA CPU+GPU超级芯片大升级!
时间:2026-03-09
贴片电阻怎么看阻值
时间:2026-03-05
电阻的原理和作用 电阻色环识别图 电路中电...
时间:2026-03-09
什么是硅片或者晶圆?一文了解半导体硅晶圆
时间:2026-03-09
什么是室温超导?半导体时代将走向结束?芯...
时间:2026-03-09
半导体光刻工艺 光刻—半导体电路的绘制
时间:2026-03-09
HTCC:半导体封装的理想方式
时间:2026-03-06
一文详解MOS管驱动电路拓扑的设计
时间:2026-03-09
石英灯电子变压器电路原理
时间:2026-03-06