Social Icons

4.3) Lendo Botões



Ao fazer a leitura de um botão com uma das portas do Arduino é importante estabelecer como a porta deve ler o valor. Por exemplo:
1° Caso: Porta do Arduino inicialmente em nivel lógico baixo(0V) e ao pressionar um botão ter uma entrada em nivel lógico alto(5V).
2° Caso: Porta do Arduino inicialmente em nível logico alto(5V) e pressinoarmos um botão e ter uma entrada de nivel lógico baixo(0V).
Bem... O que fazer e em que condições isso acontece? Como programar para interpretar cada situção?

Passo à Passo:

Monte o circuito na sua matriz de contato:
 Clicar na imagem para ampliar




A1-Execute o programa abaixo:



int BotaoPino = 7; // pino a ser lido
int val= 0;
int i=0; //Variavel para incremento


void setup() {

pinMode(BotaoPino, INPUT);
Serial.begin(9600);
}


void loop()
{
val= digitalRead(BotaoPino);
delay(100);

  if(val!=0){
   Serial.print(i++);
   Serial.print("-Valor:");
   Serial.println(val);
   }
}



Agora clicar no icone: Serial Monitor:


Você verá essa tela:


Ao pressionar o botão acontecerá isso:



Comentário sobre o Programa e o Circuito:
O programa faz a leitura constantemente do botão e somente em nível lógico alto(5V) mostra na tela que detectou algo. 
Temos então um caso de Resistor em Pull-Down pois mantém em nível baixo a porta quando o botão não é pressionado.


-Vamos fazer algumas modificações?

Monte o circuito na sua matriz de contato:
-Atenção: Os fios amarelo e verde estão em posições contrárias ao circuito anterior.


 Clicar na imagem para ampliar




A2-Execute o programa abaixo:



int BotaoPino = 7; // pino a ser lido
int val= 0;
int i=0; //Variavel para incremento


void setup() {

pinMode(BotaoPino, INPUT);
Serial.begin(9600);
}


void loop()
{
val= digitalRead(BotaoPino);
delay(100);

if(val!=1){
Serial.print(i++);
Serial.print("-Valor:");
Serial.println(val);
}
}



Agora clicar no icone: Serial Monitor:


Você verá essa tela:



Ao pressionar o botão acontecerá isso:




Comentário sobre o Programa e o Circuito:
O programa faz a leitura constantemente do botão e somente em nível lógico baixo(0V) mostra na tela que detectou algo. 
Temos então um caso de Resistor em Pull-up pois mantém em nível alto a porta quando o botão não é pressionado.

Nenhum comentário:

Postar um comentário