Olá tudo bem!
Não tem coisa pior que fazer uma placa e descobrir que aquele pino de IO não funciona como esperado e então ter que recorrer a outro pino para fazer funcionar nossa aplicação, visando saber quais pinos realmente podem ser usado como entrada ou saída fiz o código fonte que esta no final do post.
Neste código para testar os pinos são acionados todos os pinos por um tempo de modo sequencial, para o modo entrada é mostrado no terminal do compilador Geany(padrão do rasp) o estado atual de cada pino. o resultado é colocado na figura a seguir, onde as células em amarelo exigem atenção:
É preciso ter em mente que no raspberry PI4 (versão que usei) cada pino pode ter ate 6 função, então devemos estar atentos as suas funções secundarias.
Vídeo demonstrando o funcionamento do algoritmo:
O código fonte :
#include <stdio.h>
#include <wiringPi.h>
int aux=0;
void teste_de_saida(void)
{
while(aux<30)
{
pinMode (aux, OUTPUT) ;
aux++;
}
aux = 0;
while(aux<31)
{//limpa tudo
digitalWrite (aux, LOW) ;
aux++;
}
for (;;)
{
aux = 0;
while(aux<31)
{
digitalWrite (aux, HIGH) ;
delay (100);
digitalWrite (aux, LOW) ;
delay (100);
aux++;
}
}
}
void teste_entradas(void)
{
while(aux<31)
{
pinMode (aux,INPUT) ; // como entrada
pullUpDnControl(aux,PUD_OFF); //hailita pullups (PUD_OFF/PUD_DOWN/PUD_UP)
aux++;
}
for (;;)
{
aux = 0;
//printf("estado dos pinos 0 1 2 3...29 : \n\r");
while(aux<31)
{
if(digitalRead(aux) == 0)
{
//printf("%d-0 ",aux);
printf("0");
}
else
{
printf("1");
}
delay (00);
aux++;
}
printf(" \n\r");
}
}
int main (void)
{
wiringPiSetup () ;
/////////////////// para testar saidas/////////
//teste_de_saida();
/////////////////// para testar entradas /////////
teste_entradas();
return 0;
}
formatado em http://hilite.me/ acessado em 19_05_2023.
Nenhum comentário :
Postar um comentário
olá,digite aqui seu comentário!