查看: 4253|回复: 2
收起左侧

[新手必看] 【入门】点亮一个LED灯

901
2020-4-22 09:35:38 | 显示全部楼层 |阅读模式
本帖最后由 901 于 2020-4-22 13:44 编辑

树莓派内核中已经编译自带了gpio的驱动,比较常见的操作库函数有:Python GPIO

Python GPIO已经集成到了树莓派内核,为树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPII2C或者1-wire等总线接口。

常见C语言库有:wiringPi (http://wiringpi.com/)
wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPiAPI函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。


更新列表:
pi@raspberrypi:~ $sudo apt-get update

更新软件:
pi@raspberrypi:~ $sudo apt-get upgrade

安装:
pi@raspberrypi:~ $sudo apt-get install wiringpi

wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。
pi@raspberrypi:~ $ gpio -v
查看GPIO图
pi@raspberrypi:~ $ gpio readall

硬件连接
LED的正极串联一个1KΩ电阻接树莓派的GPIO18(pin12),负极接地。

代码:
#include <wiringPi.h>
int main (void)
{
    wiringPiSetup () ; // 初始化 这个必须写在最前面
    pinMode (1, OUTPUT) ; // 设置GPIO.1 为输出
    for (;;) // 无限循环
    {
       digitalWrite (1, HIGH);  // GPIO.1 输出高
       delay (500);  // 延时500毫秒
       digitalWrite (1, LOW); // GPIO.0 输出低
       delay (500);
    }
    return 0 ;
}


【终端操作】
Vim led.c i】进入插入模式,然后使用【ctrl + shift + v】组合键粘贴复制的代码,最后按【Esc】然后输入【:wq】回车保存。


编译
pi@raspberrypi:~ $ gcc led.c -o led -l wiringPi
-l wiringPi表示动态加载wiringPi共享库。


运行
pi@raspberrypi:~ $ sudo ./led
Ctrl+C 来中断循环。

Python脚本控制GPIO
Python控制GPIO,最便捷的方法就是使用python类库,比如树莓派系统本身集成的RPi.GPIO
pi@raspberrypi:~ $ python  //进入python交互界面
import RPi.GPIO as GPIO    //导入python类库RPi.GPIO,命名为别名为GPIO
GPIO.setmode(GPIO.BCM)  //设置BOARD编码方式,基于BCM
GPIO.setup(18,GPIO.OUT)  //GPIO18输出高电平,LED点亮
GPIO.output(18,GPIO.HIGH)
GPIO.output(18,GPIO.LOW)  //GPIO18输出低电平,LED熄灭
GPIO.cleanup()  //用完后进行清理
Ctrl+D  //退出python交互界面


新建一个名为blinky.py的脚本
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setup(18,GPIO.OUT)

while True:
     GPIO.output(18,GPIO.HIGH)
     time.sleep(1)
     GPIO.output(18,GPIO.LOW)
     time.sleep(1)

GPIO.cleanup()


blinky.py添加可执行权限
pi@raspberrypi:~ $ sudo chmod +x blinky.py

运行Python脚本
pi@raspberrypi:~ $ sudo python blinky.py

LED闪烁。

停止运行
Ctrl+C 来中断循环。

图片1.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

楼主其他主题

热点推荐

关注我们,了解更多

官方微信

服务时间:10:00-16:00

13714503811

公司地址:深圳市龙岗区南湾街道东门头路8号

Copyright © 2012-2020 Powered by 树莓派论坛 2019.4  粤ICP备15075382号-1
快速回复 返回列表 返回顶部