新闻中心

EEPW首页 > 物联网与传感器 > 设计应用 > 基于Raspberry Pi Pico的GPIO引脚使用运动传感器

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

作者:时间:2021-04-28来源:电路城收藏

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

本文引用地址:http://www.eepw.com.cn/article/202104/424991.htm

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

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

建立

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

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

• 半尺寸面包板

• LED灯

• 330欧姆电阻

• PIR传感器

• 3 x母对公跳线

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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传感器非常灵敏,起初您可能会看到一些误触发,但传感器会稳定下来。

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




关键词: Raspberry 传感器

评论


相关推荐

技术专区

关闭