lo口控制led灯如何发光

lo口控制led灯如何发光,第1张

lo口控制led灯发光的方法如下。单片机的一个GPIO只能输出0和1两种状态,控制一个LED。可以实现LED的亮灭控制。两个LED具有四个状态:1)同时亮。2)同时含派灭。3)一个亮一个灭。4)一个灭一个亮。只用一个GPIO,无法输出四种状态,谈缺贺所以要分情况讨论。

1、2、两只LED不同是亮/灭的情况。这时需要考虑将两只LED同向串联,将单片机的GPIO口接在两只LED的公共端。其典型的示意电路图如扮弯下图所示。两只LED同向串联后串在电源电路中,单片机的GPIO控制两个LED的公共端。当单片机输出高电平1时LED1熄灭,而LED2被点亮(拉电流的方式)。当单片机输出低电平0时LED1

系统软硬件说明:树莓派4B,安装系统为适用树莓派的ubuntu18.04,64位系统。

用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件禅昌碧工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。

1.使用c语言编程时

wiringPi,使用时需要安装库。

因为本树莓派使用的是ubuntu64位系统,而wiringpi是在32位上使用的,所以安装步骤不同于网上大多数的教程,使用以下方法可以将其安装到64位系统。

Install 安装过程

1.Download from the last Releases. 从Releases下载最新的构建文件。

https://gitee.com/guation/WiringPi-arm64/releases

2.Enable 32-bit support. 开启32位迅春支持。

If you are using Rspberry PI OS, please skip this step.如果你使用Raspberry Pi OS请跳过此步骤。

sudo dpkg --add-architecture armhf

sudo apt update

3.Install the DEB file.安装deb文件。

sudo apt install -f ./wiringpi-*-g.deb(或者直接双击deb文件即可安装)

登录后复制

安装后贺举,查看版本

gpio -v

登录后复制

查看引脚

gpio readall

登录后复制

 

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

示例代码:led.c

#include <stdio.h>

#include <wiringPi.h>

#define LED0  1   // 设置GPIO1为控制LED的引脚,11pin

int main()

{

    printf("Hello world\n")

    wiringPiSetup()       // 初始化gpio

    pinMode(LED0, OUTPUT) // 设置gpio0为输出模式

    while (1) {

        // 设置GPIO0为高电平

        printf("Set GPIO0 : H\n")

        digitalWrite(LED0, HIGH)

        delay(4000)

        // 设置GPIO0为低电平

        printf("Set GPIO0 : L\n")

        digitalWrite(LED0, LOW)

        delay(4000)

    return 0

}

登录后复制

2.使用Python编程时

使用RPi.GPIO模块,需要安装,安装过程简单,自行百度。

在RPi.GPIO中,同时支持树莓派上的两种GPIO引脚编号。第一种编号是BOARD编号,这和树莓派电路板上的物理引脚编号相对应。使用这种编号的好处是,你的硬件将是一直可以使用的,不用担心树莓派的版本问题。因此,在电路板升级后,你不需要重写连接器或代码。

第二种编号是BCM规则,是更底层的工作方式,它和Broadcom的片上系统中信道编号相对应。在使用一个引脚时,你需要查找信道号和物理引脚编号之间的对应规则。对于不同的树莓派版本,编写的脚本文件也可能是无法通用的。

但是 python GPIO 库还没有支持 SPI、I2C 或者 1-wire 等总线接口。

示例:led.py

#python

#*coding:utf-8*

#GPIO控制LED灯程序

import RPi.GPIO as GPIO#引入函数库

import time

pin = 12

GPIO.setmode(GPIO.BOARD)#设置引脚编号规则

GPIO.setup(pin, GPIO.OUT)#将11号引脚设置成输出模式

#while True:

GPIO.output(pin, GPIO.HIGH)

time.sleep(5)

GPIO.output(pin, GPIO.LOW)

time.sleep(2)

GPIO.cleanup()

登录后复制

 


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12558602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存