树莓派实验一:控制LED灯

来源:互联网 发布:新浪微博广告推广mac 编辑:程序博客网 时间:2024/04/30 13:46
  1. 输出,控制LED灯。
    这里写图片描述
    这是一个简单的电路,如图,如果Pin是高电平,发光二极管会亮,如果是低电平,则不亮。注意,Pin和Gnd之间除了发光二极管以后,还有一个电阻R1,这是防止短路烧电子板的。
    Gnd是地线的意思,相当于电池的负极。GPIO的9号,14号口等标识为0v(有些图直接标Gnd)即为地线接口。GPIO正常的高电平为3.3v,一般加电阻为1000欧,则最高电流为3.3/1000=0.00033A=3.3mA,这是树莓派的安全电流。
    这里写图片描述
    我们把这个电路接到9口和13口上,运行如下程序:
// blink.c//// Example program for bcm2835 library// Blinks a pin on an off every 0.5 secs//// After installing bcm2835, you can build this // with something like:// make or gcc -o led led.c -lbcm2835// sudo ./led/*             define from bcm2835.h                       define from Board DVK511                 3.3V | | 5V               ->                 3.3V | | 5V    RPI_V2_GPIO_P1_03 | | 5V               ->                  SDA | | 5V    RPI_V2_GPIO_P1_05 | | GND              ->                  SCL | | GND       RPI_GPIO_P1_07 | | RPI_GPIO_P1_08   ->                  IO7 | | TX                  GND | | RPI_GPIO_P1_10   ->                  GND | | RX       RPI_GPIO_P1_11 | | RPI_GPIO_P1_12   ->                  IO0 | | IO1    RPI_V2_GPIO_P1_13 | | GND              ->                  IO2 | | GND       RPI_GPIO_P1_15 | | RPI_GPIO_P1_16   ->                  IO3 | | IO4                  VCC | | RPI_GPIO_P1_18   ->                  VCC | | IO5       RPI_GPIO_P1_19 | | GND              ->                 MOSI | | GND       RPI_GPIO_P1_21 | | RPI_GPIO_P1_22   ->                 MISO | | IO6       RPI_GPIO_P1_23 | | RPI_GPIO_P1_24   ->                  SCK | | CE0                  GND | | RPI_GPIO_P1_26   ->                  GND | | CE1::if your raspberry Pi is version 1 or rev 1 or rev ARPI_V2_GPIO_P1_03->RPI_GPIO_P1_03RPI_V2_GPIO_P1_05->RPI_GPIO_P1_05RPI_V2_GPIO_P1_13->RPI_GPIO_P1_13::*/#include <bcm2835.h>#define LED0 RPI_GPIO_P1_11#define LED1 RPI_GPIO_P1_12#define LED2 RPI_V2_GPIO_P1_13#define LED3 RPI_GPIO_P1_15#define LED4 RPI_GPIO_P1_16#define LED5 RPI_GPIO_P1_18#define LED6 RPI_GPIO_P1_22#define LED7 RPI_GPIO_P1_07char LED[8]={LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7};int main(int argc, char **argv){    if (!bcm2835_init())        return 1;    // Blink    char i;    while (1)    {    //for(i=0;i<8;i++)    {           i=2;        bcm2835_gpio_fsel(LED[i], BCM2835_GPIO_FSEL_OUTP);                bcm2835_gpio_write(LED[i],HIGH);                bcm2835_delay(500);                bcm2835_gpio_write(LED[i],LOW);                bcm2835_delay(500);    }    }    bcm2835_close();    return 0;}

这个程序取自树莓派实验板的例子,原例子是控制8个灯的,现在改为只控制一个。

0 0
原创粉丝点击