树莓派控制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

相关文章

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Python实现局域网远程控制电脑

《Python实现局域网远程控制电脑》这篇文章主要为大家详细介绍了如何利用Python编写一个工具,可以实现远程控制局域网电脑关机,重启,注销等功能,感兴趣的小伙伴可以参考一下... 目录1.简介2. 运行效果3. 1.0版本相关源码服务端server.py客户端client.py4. 2.0版本相关源码1

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

树莓派5_opencv笔记27:Opencv录制视频(无声音)

今日继续学习树莓派5 8G:(Raspberry Pi,简称RPi或RasPi)  本人所用树莓派5 装载的系统与版本如下:  版本可用命令 (lsb_release -a) 查询: Opencv 与 python 版本如下: 今天就水一篇文章,用树莓派摄像头,Opencv录制一段视频保存在指定目录... 文章提供测试代码讲解,整体代码贴出、测试效果图 目录 阶段一:录制一段

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、