terça-feira, 18 de junho de 2013

Raspberry PI - Trabalhando com a biblioteca  GPIO wiringpi - Fazendo um LED piscar


Boa noite pessoal, 

Neste tutorial vou mostrar como acessar as portas GPIO em C usando a biblioteca "wiringpi" e fazer um LED piscar em uma simples placa extensora.

Primeiramente vejam na imagem abaixo de todos os componentes envolvidos nesse exemplo:



O circuito da placa extensora é bastante simples, veja abaixo:





Vejam a pinagem do conector GPIO:



Levando em consideração que a biblioteca "wiringpi" já esteja instalada (Postagem anterior), vamos digitar o seguinte comando para ver a situação das portas GPIO do Raspberry. Não se esqueçam de estar como usuário root (sudo -i).

gpio readall

Aparecerá a seguinte tabela:



Veja que a GPIO 17 (primeira linha da tabela) está em modo OUT, ou seja, é possível enviar comandos através dela. Caso a porta esteja em modo IN, deve-se mudar sua configuração para OUT, da seguinte forma:

gpio mode 0 out

Veja que o valor dessa porta está como LOW. Para mudar o valor podemos digitar o seguinte comando:

gpio write [wiringpi port] [0/1] ou seja gpio write 0 1 

Nesse caso o valor dessa porta passará a ser HIGH. Mas o que queremos é mudar o valor (0/1) dessa porta através de um código C para acender o LED. Então vamos!!!! Você pode criar uma pasta para o seu projeto dentro do diretório /home. 

Segue abaixo o código em C (main.c) para fazer o LED piscar 10 vezes a cada 1 segundo:

#include <stdio.h>
#include <wiringPi.h>

#define LED_0 0

int main (void)
{
int i;

printf("Pisca LED Raspberry PI\n");

wiringPiSetup () ;

  for(i=0; i<=10;i++){
printf("Índice: %i\n",i);

digitalWrite(LED_0,HIGH); //Acende o LED
delay(1000); //Aguarda 1 segundo

digitalWrite(LED_0,LOW); //Apaga o LED
delay(1000); //Aguarda um segundo
}

printf("Terminou a execução...\n");
return(0);

}

Para compilar o código, devemos digitar a seguinte linha de comando:

gcc -o main main.c -lwiringPi

Para executar, 

./main

Espero que seja útil para seus estudos. Em breve mais postagens a respeito!!!

Abraço

Rafael Adami
pivotoadami@gmail.com


Nenhum comentário:

Postar um comentário