树莓派控制GY-30

2023-10-22 04:10
文章标签 控制 树莓 30 gy

本文主要是介绍树莓派控制GY-30,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 学习记录
    • 设备地址
    • GY-30管脚
    • 指令
    • 代码
    • 运行结果
    • 错误原因
    • 附录
    • 求助

学习记录

GY-30是一款数字光模块,通过GY-30的学习,进一步掌握I2C的使用方法。

设备地址

经过查询,设备地址为0x23
在这里插入图片描述

GY-30管脚

在这里插入图片描述
addr管脚一般接低电平,此时,写操作指令为0x46,读操作指令为0x47。

指令

名称操作码作用
BHAddWrite0x46写地址
BHAddRead0x47读地址
BHPowDown0x00关闭模块
BHPowOn0x01打开模块等待指令
BHReset0x07重置数据寄存器(仅在BHpowOn模式下有效)
BHModeH10x10高分辨率 模式1 单位 1lx 测量时间 120ms
BHModeH20x11高分辨率 模式2 单位 0.5lx 测量时间 120ms
BHModeL0x13低分辨率 单位4lx 测量时间16ms
BHSigModeH0x20一次测量 高分辨率 模式1,然后转到powerdown模式
BHSigModeH20x21一次测量 高分辨率 模式2,然后转到powerdown模式
BHSigModeL0x23一次测量 低分辨率,然后转到powerdown模式

代码

/****************************************************************> File Name: i2c_GY_30.c> Author: admin> Mail: > Created Time: 2020年01月01日 星期三 19时43分51秒> Modified Time:2020年01月01日 星期三 21时26分50秒****************************************************************/#include <stdlib.h>
#include <wiringPi.h>
#include <wiringPiI2C.h>
#include <stdio.h>#define BHAddWrite     0x46      //写地址
#define BHAddRead      0x47      //读地址
#define BHPowDown      0x00      //关闭模块
#define BHPowOn        0x01      //打开模块等待指令 
#define BHReset        0x07      //重置数据寄存器仅在BHpowOn模式>
#define BHModeH1       0x10      //高分辨率 模式1 单位 11X 测量时
#define BHModeH2       0x11      //高分辨率 模式2 单位 11X 测量时
#define BHModeL        0x13      //低分辨率 单位4lx 测量时间16ms 
#define BHSigModeH     0x20      //一次测量高分辨率模式1,然后转>
#define BHSigModeH2    0x21      //同上类似
#define BHSigModeL     0x23      //同上类似int main()
{wiringPiSetup();int fd = wiringPiI2CSetup(0x23);if(-1 == fd){printf("wrong\n");exit(0);}wiringPiI2CWriteReg8(fd, BHAddWrite, BHPowOn);wiringPiI2CWriteReg8(fd, BHAddWrite, BHReset);wiringPiI2CWriteReg8(fd, BHAddWrite, BHModeL);delay(180);short int temp = 0xff;temp = wiringPiI2CReadReg16(fd, BHAddRead);printf("temp = %d\n", temp);//conversation(temp);return 0;
}void conversation(int temp)
{}

运行结果

输出为0

错误原因

不知道,调了一晚上没调出来,感觉应该是对的。

附录

在这里插入图片描述
读寄存器内容

求助

有人调出来的话,还望不吝赐教。

这篇关于树莓派控制GY-30的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258983

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

MySQL精准控制Binlog日志数量的三种方案

《MySQL精准控制Binlog日志数量的三种方案》作为数据库管理员,你是否经常为服务器磁盘爆满而抓狂?Binlog就像数据库的“黑匣子”,默默记录着每一次数据变动,但若放任不管,几天内这些日志文件就... 目录 一招修改配置文件:永久生效的控制术1.定位my.cnf文件2.添加核心参数不重启热更新:高手应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构