1926|2

502

帖子

4

TA的资源

纯净的硅(高级)

楼主
 

【行空板 Python编程学习主控板】LED和光线传感器使用体验-自动灯光控制器实现 [复制链接]

自动灯光控制

 

前言

    前面我们已经了解了Python的开发环境,现在开始我们逐一测试各个传感器和接口模块。

先从最简单的开始,先了解IO的操作,控制LED。另外为了体验到实用性,我们结合光线传感器进行联动,实现LED自动根据环境亮度开关,模拟实现自动灯光控制器。这样一各案例测试两个模块:LED和光线传感器。

 

IO操作LED

参见https://wiki.unihiker.com/pinpong_python_lib#target_6

 

开发板提供了一个蓝色用户LED灯,在背面丝印L

L灯为高低电平控制,接到了行空板的P25接口上,因此控制P25即可控制L灯。

控制输出1则点亮,否则熄灭。

 

控制LED需要从pinpong中导入Pin模块

from pinpong.board import Pin # 从pinpong.board包中导入Board Pin模块

然后创建led实例

led = Pin(Pin.P25, Pin.OUT) #引脚初始化为电平输出模式,P25为L灯的引脚

再控制led输出对应电平

Pin(Pin.P25, Pin.OUT).write_digital(电平信号)

 

光线传感器

参见https://wiki.unihiker.com/pinpong_python_lib#target_8

正面屏幕上方有一颗光线传感器,可以获取环境光线强度,单位为模拟输入值0~4095.

 

使用光线传感器线要导入模块

from pinpong.board import *

from pinpong.extension.unihiker import *

 

读取光线传感器值

Light = light.read() # 读取光线值

光线传感器接到行空板的P29接口上,因此还可以通过ADC输入方法读取。

 

可以按照如下在终端中打印传感器值

print("光线强度:%d"%(Light)) #终端打印信息

 

光线传感器和LED联动

我们设计自动灯光控制,在环境亮度低于一定值时打开LED,环境亮度高于一定值时关闭LED。

逻辑如下

    if(Light < 100):

        led.write_digital(1) 

    else:

        led.write_digital(0) 

 

这里的100需要按照实际情况调整。

 

 

测试

综上,整个代码如下

from pinpong.extension.unihiker import * # 导入pinpong.extension.unihiker包中所有模块

from pinpong.board import Board,Pin # 从pinpong.board包中导入Board Pin模块

import time  # 导入时间库

 

Board('UNIHIKER').begin() # 初始化,选择板型和端口号,不输入则进行自动识别

led = Pin(Pin.P25, Pin.OUT) #引脚初始化为电平输出模式,P25为L灯的引脚

 

while True:  # 循环

    time.sleep(1)  # delay1秒

    Light = light.read() # 读取光线值

    print("光线强度:%d"%(Light)) #终端打印信息

    if(Light < 100):

        led.write_digital(1) 

    else:

        led.write_digital(0) 

 

按照前面开发环境中说明,使用直接代码编辑方式,添加源文件

light_led.py并下载运行

可以看到终端打印了传感器值

正常环境光线较强时,灯不亮,我们用手指挡住光线传感器,模拟环境光变弱,LED亮,

实现了我们设计的逻辑,也就是一个自动控制灯光实现了。如视频:

如果我们用LED对应的引脚去控制继电器,那么就实现了一个实际可用的自动灯光控制器,实现十分简单快速。

 

总结

    我们通过一个自动灯光控制器的设计,测试了LED的控制和光线传感器的使用,用一个具有实用价值的案例,快速体验了基于该开发板进行开发和想法实现的乐趣,所以该开发板作为Python编程学习板,既能学习语言,又能结合实际,能快速原型实现自己的想法,体验学习的乐趣,确实是一个不错的开源硬件平台。

 

 

最新回复

用Python来控制硬件着实很舒服。不知道能不能跑AI。   详情 回复 发表于 2022-10-30 10:07
点赞 关注

回复
举报

6842

帖子

11

TA的资源

版主

沙发
 
6666,这块开发板玩python那是挺牛的!
 
 

回复

6881

帖子

2

TA的资源

版主

板凳
 

用Python来控制硬件着实很舒服。不知道能不能跑AI。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表