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.
-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