实验准备
硬件设备准备
-
-
USB数据线一根(C口的)
-
I/O转版一块
-
软排线
-
面包板一块
-
双色LED灯一个
-
继电器一个
其他准备
-
MpbaXterm
-
Ubuntu20.04系统环境
-
python3.8.10环境
-
jupyterlab环境
-
笔记本电脑一台
实验开始
双色灯实现控制
介绍
双色LED发光二极管,就是一个LED发光二极管可以发出两种颜色的灯。本次实验三脚双色LED。这种灯有三个脚,中间脚是共极,两边的脚一个是直脚,一个是斜脚,分别对应一个颜色。举个红绿双色共阳的例子。一般直脚对应红色,斜脚对应绿色,当电流从中间脚流向直脚时,红灯工作;当电流从中间脚流向斜脚时,绿灯工作;当电流从中间脚同时向直脚及斜脚流过时,红灯和绿灯同时工作,混合成颜色。一般的电路会选择此种双色LED的红色和绿色以指示电路的两种工作状态。特殊一点的还会要到第三种混合色,但是这种混合色的一致性比较难把握。
实验原理
接线:-负引脚接GND,R引脚接G17,S引脚接G18如下图所示
接上电源打开MobaXterm进行ssh连接,在命令行输入如下代码
jupyter lab --ip=0.0.0.0 --port=8888 --allow-root
打开浏览器,输入显示的ip地址,点击新建,选择notebook--python3
写入代码,并运行
# 导入旭日x3派内置接口库
import Hobot.GPIO as GPIO
import time
pin_R = 11 # 定义红色LED灯PIN
pin_G = 12 # 定义绿色LED灯PIN
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setwarnings(False) # 忽略GPIO警告
GPIO.setup(pin_R,GPIO.OUT)
GPIO.setup(pin_G,GPIO.OUT) #初始化引脚
def Color(): # 设置颜色
GPIO.output(pin_R,GPIO.HIGH) #修改输出引脚
GPIO.output(pin_G,GPIO.LOW)
time.sleep(1)
GPIO.output(pin_R,GPIO.LOW)
GPIO.output(pin_G,GPIO.HIGH)
time.sleep(1)
def Loop():
while True:
Color()
def Release_pin():#清除引脚
GPIO.output(pin_R,GPIO.LOW)
GPIO.output(pin_G,GPIO.LOW)
GPIO.cleanup()
# 程序入口
if __name__ == "__main__":
try:
Loop()
except KeyboardInterrupt:
Release_pin()
会发现红绿灯闪烁,间隔为一秒,点击结束按钮释放引脚。
介绍
继电器(英文名称:relay)是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。
实验原理
继电器说明
工作原理
继电器的工作原理很简单。当继电器供电时,电流开始流经控制线圈; 结果,电磁体开始通电。然后衔铁被吸引到线圈上,将动触点向下拉,从而与常开触点连接。所以带负载的电路通电。然后断开电路会出现类似的情况,因为在弹簧的作用下,动触头将被拉到常触点。这样,继电器的接通和断开可以控制负载电路的状态。
接线
将继电器DC+接到5v,DC-接到GND,IN接G18,COM接5V,双色LED灯的G脚接NC,R引脚接NO,GND接地,如下图所示
运行代码,双色LED灯闪烁,并发出嘀嗒声。
#导入所需库
import Hobot.GPIO as GPIO
import time
#定义引脚
RelayPin = 11
def X3pi_setup():
GPIO.setmode(GPIO.BOARD) # 采用实际的物理管脚给GPIO口
GPIO.setwarnings(False) # 忽略警告
GPIO.setup(RelayPin, GPIO.OUT) # 设置Pin模式为输出模式
GPIO.output(RelayPin, GPIO.LOW) # 关闭继电器
def loop():
while True:
GPIO.output(RelayPin, GPIO.HIGH) #高电平时打开继电器
time.sleep(1) # 时间间隔
GPIO.output(RelayPin, GPIO.LOW) #低电平时关闭
time.sleep(1)
def destroy(): # 释放资源
GPIO.output(RelayPin, GPIO.LOW) #关闭继电器
GPIO.cleanup()
# 程序入口
if __name__ == '__main__':
X3pi_setup() 运行程序
try:
loop()
except KeyboardInterrupt: #结束释放接口
destroy()
评论(0)
您还未登录,请登录后发表或查看评论