分类目录试试传感器

轻触开关传感器实验

实验目的:通过点击传感器,然后程序获取状态;从而得到不同的状态提示。
#接线效果如图
接线的例子
接线示例
#实验代码

#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

touchPin = 18   ##设置传感器走18口

GPIO.setmode(GPIO.BCM)  ##此处采用的BCM编码 因为T型扩展板也是BCM编码 方便统一
GPIO.setup(touchPin, GPIO.IN)  ##设置BCM编码下18号引脚为读取状态

#隔一秒读取一次状态  然后判断输出
try:
    while True:
        status = GPIO.input(touchPin)  ##读取数据
        if status == 1:
            print '正常';
        elif status == 0:
            print '不好 被踩到了';

        time.sleep(1)

except KeyboardInterrupt:
    pass

GPIO.cleanup()
#实验效果
1、点击执行 Python jiujiang.py
2、传感器没有触动则提示 ”正常“;
3、点击传感器则提示 ”不好 被踩到了“;
#视频效果如下:

倾斜传感器实验

实验目的:通过操作倾斜传感器,实现对物体倾斜产生的感知。
#接线效果如图:
接线示例
#实验代码
检测小车状态

#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

CarPin = 18  ##定义小车读取18口信息

GPIO.setmode(GPIO.BCM)
GPIO.setup(CarPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) ##设置为接收模式 同时拉高电阻 减少杂声干扰

#隔一秒读取一次状态  然后判断输出
try:
    while True:
        status = GPIO.input(CarPin)  ##读取数据
        if status == 0:
            print '小车正常';
        elif status == 1:
            print '不好了 小车要翻车了';

        time.sleep(1)

except KeyboardInterrupt:
    pass

GPIO.cleanup()
#实验效果
1、执行Python jiujiang.py;
2、小车正常状态下屏幕显示 “小车正常”;
3、小车发生倾斜时屏幕显示 ”不好了 小车要翻车了“。
4、每隔一秒检测一次状态,可调节时间。
#视频效果如下:

RGB三色LED灯实验

如题顾名思义,R(Red)红色,G(Green)绿色,B(Blue)蓝色。
实验目的,通过程序操作RGB三色,实现不同颜色的展示和切换。
#接线效果如图:
接线示例
#实验代码:

#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO
import time

R = 18  ##Red采用18口
G = 19  ##Green采用19口
B = 20  ##Blue采用20口

GPIO.setmode(GPIO.BCM) ##采用BCM编码

#设置输出模式
GPIO.setup(R, GPIO.OUT)
GPIO.setup(G, GPIO.OUT)
GPIO.setup(B, GPIO.OUT)

#实例化PWM
rPwm = GPIO.PWM(R, 50)
gPwm = GPIO.PWM(G, 50)
bPwm = GPIO.PWM(B, 50)

#启动PWM
rPwm.start(0)
gPwm.start(0)
bPwm.start(0)

#接收用户选择
color = raw_input('选择颜色:')
color = color.lower() ##转化为小写

#根据用户选择展示不同的颜色
if color == 'red':
    rPwm.ChangeDutyCycle(100)
    gPwm.ChangeDutyCycle(0)
    bPwm.ChangeDutyCycle(0)
elif color == 'green':
    rPwm.ChangeDutyCycle(0)
    gPwm.ChangeDutyCycle(100)
    bPwm.ChangeDutyCycle(0)
elif color == 'blue':
    rPwm.ChangeDutyCycle(0)
    gPwm.ChangeDutyCycle(0)
    bPwm.ChangeDutyCycle(100)
else:
    print '不支持的颜色'

#点亮持续时间
time.sleep(2)

#点亮结束
rPwm.stop()
gPwm.stop()
bPwm.stop()

#清除端口占用
GPIO.cleanup()
#执行如上代码可见效果为:
1、执行Python jiujiang.py
2、提示输入要选择的颜色;
3、输入如red,可见led灯红色灯亮起,并持续两秒;
4、两秒后灯熄灭,等待下次调用。
#视频效果如下:

双色LED变化实验

#实验材料如图
材料准备
#实验流程
1、通过跳线和面包板连接LED灯;
2、ssh方式登录pi,然后编写Python程序,执行程序看到LED灯变化效果。
#开始操作
接线示例
2、登录系统
ssh pi@192.168.0.119  #设置了静态ip 然后通过ssh方式登录


#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码 因为T型扩展板也是BCM编码 方便统一
GPIO.setup(18, GPIO.OUT) ##设置BCM编码下18号引脚为输出状态

p = GPIO.PWM(18, 50)  ##初始化18号引脚 并设置输出频率为50Hz
p.start(0)            ##启动PWM 并设置频率为0 目的是为下面的渐变为铺垫

try:
    while True:
        for dy in range(0, 100, 5):  ##以5为单位从0到100递加
            p.ChangeDutyCycle(dy)    ##更改占空比 更改高电平的占比 也就是通电时间 看到的效果是逐渐变亮
            time.sleep(0.075)        ##保持时间
        for dy in range(100, 0, -5): ##以-5为单位从100到0递减
            p.ChangeDutyCycle(dy)    ##同上 通电时间由大变小 看到的效果是逐渐变暗
            time.sleep(0.075)
except KeyboardInterrupt:            ##如果遇到Ctrl+C 则跳出循环
    pass

p.stop()        ##停止实例
GPIO.cleanup()  ##清理引脚输出 去掉引脚占用
代码执行 Python led.py 可见LED灯由暗逐渐变亮,然后再变暗;如此反复。Ctrl+C停止效果。
#视频效果如下: