1.4. 板载LED控制

视频连接

点亮led是嵌入式工程师的“hello world”。

Micropython操作lO口使用machine模块下的Pin模块

笔者手中的led接到esp32的pin2口。

1.4.1. 确认板载led的IO口

拿到一款新的单片机板后,如果没有技术资料,如有板载led,那如何确认板载LED的IO呢?

思路:扫描1~n(如n=10)号IO口,打印当前IO口,并点亮,演示1s,如果打印和led亮灯同步(肉眼观察),则可判断led的IO口。

注:不知道什么原因,i=2/6时会引起单片机复位(WDT复位)。

1.4. 板载LED控制

本文中用到的单片机板,打印2时led点亮,故可判断led的控制IO为2。此时按下“ctrl+c”退出当前程序,进入命令行等待命令状态“就绪状态1”。

1.4.2. 命令行测试

Micropython应用程序的开发可分为两步:1.在命令行中测试;2.将测试成功的代码存入到文件中(包括boot.py、main.py及其他模块文件)。

例程描述:要求Led按1Hz的频率闪烁,亮、灭时间各占一半;

需求分析:与“每秒打印一次‘hell world’”主体类似,区别是打印“hello world”部分改为操作led;

代码实现:

1.4. 板载LED控制

命令行操作实验如下,可以观察到蓝色Led按1Hz频率闪烁。

这里,首次涉及到Pin(IO口)模式设置,Pin模式如何选择?什么时候用Pin.OUT?什么时候用Pin.IN?

原则:单片机掌握主动权时用Pin.OUT,单片机不掌握主动权时用Pin.IN。如控制Led时命令是由单片机发出,单片机掌握主动权,所以用Pin.OUT。而在驱动开关时,开关状态的切换是有外界发出的,不由单片机控制,单片机只能读取IO口的电平值,所有用Pin.IN。

备注:在命令行模式下,可以通过help(?)简单查询模块的信息,如下所示:

1.4. 板载LED控制

1.4.3. 保存为文件

将上节命令行的代码复制,粘贴到文件中。确认无误后,ctl+s保存,选择保存到“micropython设备”,文件名“main.py”。重启单片机,可以看到Led按1Hz的频率闪烁。

上一篇:WPF在MainWindow中初始化菜单


下一篇:1.3. 硬件篇之IO口(视频连接)