今日继续我的jetsonnano学习之路,今日学习的是GPIO的上拉下拉,输入输出的读取,文章贴出完整操作步骤过程,贴出源码。
目录
Linux常用文件命令:
ls(list)列表:
man:
cd(change directory):
运行文件夹中的python程序:
1.使用 cd命令导航进入程序所在文件夹:
2.运行python程序:
GPIO输入的设置与读取:
GPIO的输出设置:
GPIO引脚上拉下拉设置:
Linux常用文件命令:
ls(list)列表:
把当前文件夹的所有文件显示出来
ls -a :显示所有文件
ls -l :以详细信息显示
可以:ls -la/-al/-a -l/-l -a 这几种方式表达的意思都是:显示所有文件的详细信息
man:
查询man手册,获得帮助信息
man 1 ls :1表示查询的是linux的命令,这里是查询ls命令的用法
man 2 xx :2表示查询的是linux的api
man 3 xx :3表示查询的是c库函数(譬如man 3 strlen)
cd(change directory):
更改目录,用来切换目录
cd / :表示到根目录去
cd .. :返回上一级目录
cd . :在当前目录(我们可以利用ls -a就可以查看到有. 和 .. 这两个文件夹)
cd - :到前一个目录去(也就是你是从哪个目录跳到当前这个目录的,就返回到那个目录去,注意和cd .. 是有区别的)
cd ~ :到当前用户的宿主目录去
运行文件夹中的python程序:
这里提一下怎么运行文件夹中的py程序,之前笔记中我们都是直接将程序文件拖入home,然后终端不需要指明文件路径就可以运行了,但许多时候我们都将程序文件分类放在文件资源管理器的某些文件夹中,因此需要在原有的基础上加上文件目录:
比如像我这里的俩个程序,它们没有放在home中,而是放在了Home\test 这个目录
这样我们在终端的操作就要分几步了:
1.使用 cd命令导航进入程序所在文件夹:
这里是不断使用cd 命令导航进入文件目录 以及 ls -a 命令查询当前目录文件信息 ,
2.运行python程序:
python3 filename.py
GPIO输入的设置与读取:
以下python代码演示的是设置GPIO 37 为输入引脚,并读取其输入
接高电平会打印1,接低会打印0,注意悬空时输出的是上一个获取到的有效高低电平值
import Jetson.GPIO as GPIO
input_pin = 37
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(input_pin, GPIO.IN)
value=GPIO.input(input_pin)
print(value)
GPIO的输出设置:
GPIO的输出在笔记2中已经讲过这里不多做解释:
import Jetson.GPIO as GPIO
output_pin = 37
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(output_pin, GPIO.OUT,initial=GPIO.HIGH)
while True:
GPIO.output(output_pin, GPIO.HIGH)
time.sleep(1)
GPIO.output(output_pin, GPIO.LOW)
time.sleep(1)
GPIO引脚上拉下拉设置:
每个GPIO内部都有三种状态,分别使上拉、下拉和不拉。如果是输出模式,一般是设置为不拉状态,而上拉电阻和下拉电阻主要设置于输入模式。
上拉电阻的目的是为了保证在无信号输入时,输入端的电平为高电平。而在信号输入为低电平时,输入端的电平应该也为低电平。
如果没有上拉电阻,在没有外界输入的情况下,输入端是悬空的,它的电平是未知的,而设置上拉电阻就是为了保证无信号输入时输入端的电平为高电平。
下拉电阻则是为了保证无信号输入时输入端的电平为低电平。
import Jetson.GPIO as GPIO
input_pin = 37
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(input_pin, GPIO.IN,pull_up_down=GPIO.PUD_UP)
value=GPIO.input(input_pin)
print(value)