2024-4-6 21:22:51 [显示全部楼层]
525浏览
查看: 525|回复: 0

[ESP8266/ESP32] FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;

[复制链接]
有幸收到FireBeetle 2 ESP32 C6 板子,先体验下相关性能;


先测试I2C 接口功能:
FireBeetle 2 ESP32 C6 引脚分别可以知道,I2C 默认是19,20;
      FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图1

再看GY-30 的硬件;
     总共有5个引脚,其中ADDR 接到GND则Address 为0x23;
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图2

GY-30 板载芯片为BH1750FVI 数字环境光感应芯片,内置16bit 的ADC 进行采样, 可以直接输出lx 的数字,内部框图如图所示;
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图3
GY-30 的模组原理图:
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图4
将GY-30 与FireBeetle 2 ESP32 C6 通过杜邦线连接起来;(主要ADDRESS 需要与GND连在一起);
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图5

软件编写:
     软件采用Arduino IDE 和C6 的库,代码如下:
  1. #include "Wire.h"
  2. #include "math.h"
  3. int BH1750address = 0x23;
  4. byte buff[2];
  5. uint16_t val=0;
  6. void setup() {
  7. pinMode(15,OUT_PUT);
  8.         Serial.begin(115200); //Debug UART
  9.   Serial1.begin(115200); //UART Print
  10.   
  11.   Wire.begin(); //I2C Init
  12.   BH1750_Init(BH1750address);
  13. }
  14. void loop() {
  15.         int i=0;
  16.   if(2 == BH1750_Read(BH1750address))
  17.   {
  18.       if(buff[0]==255 && buff[1]==255)
  19.       {
  20.         val=65535;
  21.       }else{
  22.         val = (buff[0]<<8 | buff[1])/1.2;
  23.         Serial1.print(val,DEC);
  24.         Serial1.println("[lx]");
  25.       }
  26.       
  27.   }
  28. delay(500);
  29.   for (int i=0; i <= 255; i++){
  30.       analogWrite(15, i);
  31.       delay(10);
  32.    }
  33.   Serial.print("helloWorld");
  34.         Serial1.print("123");
  35. }
  36. int BH1750_Read(int address)
  37. {
  38.     int i=0;
  39.     Wire.beginTransmission(address);
  40.     Wire.requestFrom(address,2);
  41.     while(Wire.available())
  42.     {
  43.       buff[i] = Wire.read();
  44.       i++;
  45.     }
  46.     Wire.endTransmission();
  47.     return i;
  48. }
  49. void BH1750_Init(int address)
  50. {
  51.     Wire.beginTransmission(address);
  52.     Wire.write(0x10);
  53.     Wire.endTransmission();
  54.     //delay(500);
  55. }
复制代码


最终显示采用串口1 通过串口工具显示;
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图6

FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图7

最终所得数据:
FireBeetle 2 ESP32 C6-I2C 驱动GY-30 光强度传感器;图8
SatApril-202404067487..png
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail