基于Raspberry Pi Pico的GPIO引脚使用运动传感器

描述

通过设置运动传感器来学习输入和输出的基础知识。

Raspberry Pi Pico具有许多GPIO引脚,我们只需在代码中配置这些引脚即可将其用作输入或输出。在本指南中,我们将学习如何使用输入(在这种情况下为传感器)和以LED形式的输出进行工作。在本指南的最后,我们将在16行MicroPython中提供一个简单的运动检测器。

在本指南中,我们将学习如何使用Raspberry Pi Pico的GPIO引脚作为数字输入和输出,这些输入和输出使用高电平和低电平作为一种简单的控制方法。

建立

该项目的电路增加了一个额外的组件,即一种被动红外(PIR)传感器,该传感器通常用于家庭安全系统中以检测运动。在此项目中,它将执行相同的功能,并且当传感器报告运动时,我们的代码将触发一个LED亮起。

将传感器添加到项目中需要:

• 半尺寸面包板

• LED灯

• 330欧姆电阻

• PIR传感器

• 3 x母对公跳线

1.将Raspberry Pi Pico插入面包板,使其位于中央通道上方。确保Micro USB端口位于面包板的一端。

计算机

2.将一个330 Ohm的电阻器插入面包板,其一脚应与GND串联,该脚为PIN38。另一脚应插入面包板的-导轨。这为我们提供了GND导轨,其中该导轨中的所有引脚都连接到GND。

计算机

3. 插入一个LED,将长脚(阳极)插入面包板的针脚34,并将短脚插入GND导轨。现在已建立电路。

计算机

PIR传感器具有三个引脚。VCC,OUT和GND。VCC引脚用于从Raspberry Pi Pico提供3.3V电源。

计算机

4.使用跳线将VCC从PIR连接到电阻旁边的3.3V引脚(引脚37)。

计算机

5.使用另一根跳线将PIR的OUT引脚连接到Pico的引脚21。

计算机

6.将PIR的GND引脚连接到面包板的GND导轨。

计算机

7.建立电路后,使用微型USB导线将Raspberry Pi Pico连接到计算机。打开Thonny应用程序。

计算机

现在,我们开始对项目进行编码,并在“入门”项目中使用的代码的基础上,包括输入,PIR传感器和条件测试,以检查传感器是否已触发。

计算机

1.从计算机库中导入Pin类,然后导入utime。这些库使我们能够分别与GPIO通信并控制我们的项目进度。

from machine import Pin

import utime

2.创建一个对象“ led”,该对象用于在物理GPIO引脚和我们的代码之间创建链接。在这种情况下,它将设置GPIO 28(映射到板上的物理引脚34)作为输出引脚,其中电流将从Raspberry Pi Pico GPIO流入LED。然后,我们使用该对象指示GPIO引脚拉低。换句话说,这将确保在项目开始时GPIO引脚被关闭。

led = Pin(28, Pin.OUT)

3.创建另一个对象“ pir”。此对象用于在我们的代码和GPIO引脚之间创建连接,该GPIO引脚用于从PIR进行OUT连接。默认情况下,PIR传感器OUT被拉高,并且当检测到移动时,PIR将OUT引脚拉低。为确保传感器正常工作,我们将引脚设置为输入,然后将GPIO引脚拉高。

pir = Pin(16, Pin.IN, Pin.PULL_UP)

4.确保在项目开始时LED熄灭,然后等待三秒钟再继续操作。这两行确保我们不会从LED看到“错误触发”,并给传感器留出一些时间来稳定使用。

led.low()

utime.sleep(3)

5.在while True循环(无尽循环)中,使用打印功能来打印用于PIR传感器的GPIO引脚的当前值。如果没有移动,则返回1,如果没有,则返回0。

while True:

print(pir.value())

6.创建一个条件测试,检查存储在pir.value中的值。如果值为0,则检测到运动,然后将消息打印到Python Shell。然后打开LED(高电平)并暂停五秒钟,同时保持LED点亮。

if pir.value() == 0:

print(“LED On”)

led.high()

utime.sleep(5)

7.没有检测到运动时,将激活条件测试的最后一部分。使用Else条件将消息打印到Python Shell,然后添加一行以关闭LED(低电平),然后暂停0.2秒。然后重复循环,并再次运行条件测试。

else:

print(“Waiting for movement”)

led.low()

utime.sleep(0.2)

8.单击保存,然后选择将代码保存到MicroPython设备(Raspberry Pi Pico)。将文件命名为PIR.py,然后单击“确定”进行保存。您的代码应如下所示。

from machine import Pin

import utime

led = Pin(28, Pin.OUT)

pir = Pin(16, Pin.IN, Pin.PULL_UP)

led.low()

utime.sleep(3)

while True:

print(pir.value())

if pir.value() == 0:

print(“LED On”)

led.high()

utime.sleep(5)

else:

print(“Waiting for movement”)

led.low()

utime.sleep(0.2)

9.要运行代码,请单击绿色播放/箭头按钮,然后Python Shell将更新为“等待移动”和“ LED亮”。PIR传感器非常灵敏,起初您可能会看到一些误触发,但传感器会稳定下来。

计算机

       责任编辑:pj

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分