最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

RPI with IR Receiver  树莓派之红外接收器

Raspberry Pi 少儿编程 2475浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

玩遥控当然少不了IR Receiver。

Introduction

红外接收器是接收红外信号的组件,可以独立接收红外线和输出信号,与TTL水平兼容。它与普通的塑料封装晶体管的尺寸相似,适用于各种红外遥控和红外传输。

RPI with IR Receiver   树莓派之红外接收器

What you will need

  • 树莓派
  • 网线
  • 红外传感器模块
  • 杜邦线

What you will do

1:构建电路

将树莓派的11,12号脚分别接入传感器的信号脚及led引脚

RPI with IR Receiver   树莓派之红外接收器

2:编辑并测试代码

在这里你可以看到,当接收到红外信号时,模块上的LED灯会亮起来。与此同时,屏幕将提示‘led on…’。

#!/usr/bin/env python
import RPi.GPIO as GPIO

IrPin  = 11
LedPin = 12

Led_status = 1

def setup():
    GPIO.setmode(GPIO.BOARD)       # Numbers GPIOs by physical location
    GPIO.setup(LedPin, GPIO.OUT)   # Set LedPin's mode is output
    GPIO.setup(IrPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
    GPIO.output(LedPin, GPIO.LOW) # Set LedPin high(+3.3V) to off led

def swLed(ev=None):
    global Led_status
    Led_status = not Led_status
    GPIO.output(LedPin, Led_status)  # switch led status(on-->off; off-->on)
    if Led_status == 1:
        print 'led on...'
    else:
        print '...led off'

def loop():
    GPIO.add_event_detect(IrPin, GPIO.FALLING, callback=swLed) # wait for falling
    while True:
        pass   # Don't do anything

def destroy():
    GPIO.output(LedPin, GPIO.LOW)     # led off
    GPIO.cleanup()                     # Release resource

if __name__ == '__main__':     # Program start from here
    setup()
    try:
        loop()
    except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.
        destroy()

您必须 登录 才能发表评论!