micropython stm32f407 以太网_[MicroPython]STM32F407开发板DIY声光控开关

1.实验目的

1. 学习在PC机系统中扩展简单I/O 接口的方法。

2. 进一步学习编制数据输出程序的设计方法。

3. 学习光敏模块的工作原理。

4. 学习声音的工作原理。

5. 学习F40 7Micropython开发板与声音传感器与光敏传感器的接线方法以及利用声音与光控制发光二极管亮灭。

2.所需元器件

F407 Micropython开发板板子一块

声音传感器一个

光敏传感器一个

面包板一块

发光二极管若干

数据线一条

杜邦线若干

3.光敏传感器模块工作原理

1.光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度,触发单片机或继电器模块等;

2.模块在环境光线亮度达不到设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平;

3.DO输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的光线亮度改变;

4.DO输出端可以直接驱动本店继电器模块,由此可以组成一个光控开关。

光敏传感器

4.声音传感器模块工作原理

1.声音模块对环境声音强度最敏感,一般用来检测周围环境的声音强度。

2.模块在环境声音强度达不到设定阈值时,OUT输出高电平,当外界环境声音强度超过设定阈值时,模块OUT输出低电平;

3.小板数字量输出OUT可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的声音;

4.小板数字量输出OUT可以直接驱动本店继电器模块,由此可以组成一个声控开关;

声音传感器

硬件接线方法

上面我们已经知道光敏传感器跟声音传感器的工作原理,以及三根针脚的作用,那么我们只需讲电源正极与电源负极跟我们F407Micropython开发板的3.3V跟GND连接起来,然后将光敏传感器与声音传感器的信号输出针脚连接到我们F407 Micropython开发板,本人声音传感器信号输出引脚连接的是F407 Micropython开发板的Y1针脚,光敏传感器信号输出引脚连接TOYBoard的Y2针脚,这样传感器就连接完毕,然后我们将发光数码管的正极插入面包板正极上,负极插入面包板的纵向插孔里(a,b,c,d,e,f,g,h,i,j),然后用杜邦线将负极连接到F407 Micropython开发板的GND上,灯的正极连接到我们TOYBoard的X1针脚,然后我们声音大小以及光亮强度来控制X1针脚输出高电平或者低电平来控制发光二极管的亮灭,接线ok后,编写main.py,这样我们的DIY声光电控开关就完成了。

5.源代码

# main.py -- put your code here!

import pyb

from pyb import Pin

voice = Pin('Y1',Pin.IN)

light = Pin('Y2',Pin.IN)

led = pyb.Pin("X1",pyb.Pin.OUT_PP)

while 1:

if light.value()==1:

if voice.value()==1:

led.value(0)

pyb.LED(2).off()

pyb.LED(3).off()

pyb.LED(4).on()

else:

pyb.LED(3).off()

pyb.LED(4).off()

led.value(1)

pyb.LED(2).on()

pyb.delay(5000)

else:

pyb.LED(3).on()

pyb.LED(2).off()

pyb.LED(4).off()

led.value(0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427135.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux mysql数据库备份并删除前一分钟的数据

linux 中mysql数据库定时备份并删除前一分钟的所有数据 #!/bin/bash #mysqldump -uroot -ppassword01! imaginebase > /home/backup/imaginebase_KaTeX parse error: Expected EOF, got # at position 27: …%d_%H%M%S).sql #̲mysqldump -uroo…(date %Y%m%d_%H%M%S).sql.g…

打开 igv java_必备可视化Integrative Genomic Viewer(IGV)

你会用到的网站:写在前面:之前mac不小心升级了一下java,然后igv就不能用了,要写教程必须降级java首先,看官方说明,需要安装Java -8,9以上版本不支持。我的mac不知道什么时候更新到了java 10&…

机器学习项目笔记

项目清单: 1. 商业目标2. 划定问题               监督或非监督,还是强化学习。3. 选择什么算法             回归还是分类, 数据量小可使用单机内存的 批量计算, 数据量大使用分布式的MapReduce 线上计算。4. 评估模型…

sublime配置python环境变量_Sublime Python环境配置

文章主要说明了能让Python的编程者使用更方便的一些设置和调整。Sublime Text简介Sublime Text是一个很棒的编辑器,支持跨平台,有着强大的插件子系统。对于Python开发,有不少插件可以让你开发起来更流畅、更有乐趣。我现在仍然在不同的项目之…

linux mysql主从配置

1准备两台服务器 一台是192.168.118.128 一台是192.168.118.129 2主服务器配置 192.168.118.128 修改my.cnf文件 server-id1 log-binmysql-bin #启动MySQL二进制日志系统, binlog-do-dbourneeddb #需要同步的数据库 binlog-ignore-dbmysql #不同步mysql系统数据库&…

java web.xml 监听器_【JAVA 核心技术】java web 中的监听器

为什么要有监听器?监听器是用来处理一系列事件的java类,可被配置在java web项目中。既然如此,为什么不用代码直接调用监听器?这可能是因为J2EE规范规定的项目工程标准,用web.xml指定监听器,然后服务器中间件如weblogic可以以遵照标…

分布式和集群区别以及分布式事务

集群就是同一个代码部署了很多服务器是集群,分布式就是把项目拆成若干个工程,每个工程负责一部分内容,需要多个工程配合完成业务流程 使用的MQ数据一致性解决的分布式事务问题 转载于:https://www.cnblogs.com/fengnan/p/9482980.html

python变量生命周期_python 变量定义及变量生命周期

第一部分最近在写Python的时候发现一个好玩的现象,就是在if else重定义的变量,没有声明全局,在外部也可以使用,这里涉及到一个python变量生命周期的问题。python能够改变变量作用域的代码段是def、class、lamda.if/elif/else、try…

svn新建仓库

1昨天需要在服务器上新建一个仓库,解决方法是把已有的仓库拷贝出来,库删除在放进去 2然后今天想看看有没有命令的方法 find / -name project 首先查看一下项目的位置 3创建仓库 svnadmin create /mnt/raid1/huge/project/test 4cd test Ls 5vi authz…

java gb13000 ucs2_采用GB 13000的UCS-2进行存储的文件怎么转换

不是sql中的数据吧你那个是单个文件吗?假设文件头采用标准UCS2格式的两个字节,每个字段的数据是通过\t分隔的,每行文字是一条记录,如果有不同,需要对程序进行调整。FILE *f _wfopen(L"d:\\文件名.txt",L"rb"…

MySql数据库索引原理

写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进…

python3 unicode字符串_【已解决】Python3中如何声明字符串是unicode类型以避免log日志打印出错...

Python3中代码:CreateTableSqlTemplate """CREATE TABLE IF NOT EXISTS %s (id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘自增,主键’,cityDealerPrice int(11) unsigned NOT NULL DEFAULT ‘0’ COMMENT ‘经销商参考价’,…

linux awstats搭建

1安装lnmp模式 2安装awstats 2# tar xf awstats-6.5.tar.gz 解压下载到/root下的压缩包 mkdir /var/lib/awstats chmod 755 /usr/local/awstats #cp -R awstats-6.5/ /usr/local/awstats cd /usr/local/awstats/ 进入到解压目录下 ls docs README.TXT tools wwwroot cd tool…

java实现坐标图进行拖拉拽放_js实现限定区域范围拖拉拽效果

本文实例为大家分享了js实现限定区域范围拖拉拽的具体代码,供大家参考,具体内容如下需要在范围内拖拉拽,之前看来许多资料觉得都不是特别满足要求,今天自己写了一个,通过监听鼠标按下、鼠标抬起、鼠标移动事件来控制代…

上拉加载更多后台数据_微信小程序端操作云数据库

一、分清几个概念1、云开发,简言之就是可以直接用微信小程序开发者工具完成一个从前台到后台的小程序项目。2、小程序端,使用云开发的时候,miniprogram中写的代码可以叫做小程序端(真实是我不知道可以不可以这么认为)。…

关于springMVC传参问题

今天写项目,碰到一个以前灭有注意到的问题,一般情况下使用springMVC Controller注解之后,被此注解标记的方法的参数名只需要跟页面表单的标签的name的值相同即可拿到页面的值,但是如果标签加了disabled"disabled" 属性…

mysql + keepalived高可用

1上次说过了mysql的主从配置 tar zxf keepalived-1.2.7.tar.gz cd keepalived-1.2.7 yum install gcc gcc-c yum install kernel-devel -y 2报错 configure: error: Popt libraries is required yum install popt-devel 3继续执行 ./configure --with-kernel-dir/usr/src/kerne…

java+向前进一_Java 线程基础

前言线程并发系列文章:熟练掌握线程原理与使用是程序员进阶的必经之路,网上很多关于Java线程的知识,比如多线程之间变量的可见性、操作的原子性,进而扩展出的Volatile、锁(CAS/Synchronized/Lock)、信号量等知识。有些文章只说笼统…

python如何给定取值范围_python怎么限定函数自变量取值范围

匿名用户1级2017-11-20 回答Python中函数参数的定义主要有四种方式:1. F(arg1,arg2,…)这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提…

tp5无刷新分页

控制器 <?phpnamespace app\index\controller; use think\Db; class Index{ public function userlist() { $listDb::name(users)->paginate(10,false, [ type > Bootstrap, var_page > page, //使用jqery 无刷新分页 path>javascript:AjaxPage([PAGE]); ]); r…