- João Paulo
- Mensagens : 61
Data de inscrição : 02/08/2023
Escola : Lindaura
EXERCÌCIO 2.05 RESOLVIDO
Qua Nov 29, 2023 9:29 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.5
* Tema: Função IF
* Atividade: Tecla LED acende apaga
* Descrição: Quando pressionar uma tecla um led deve acender e ao pressionar novamente o LED apaga
* Hardware: Ligar uma tecla a uma das pino digital configurado como ENTRADA e um led em outro pino digital configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), IF, operador Lógico &&
* DICA1: Usar uma variável para guardar o estado anterior da tecla e evitar multiplas leituras
* DICA2: Usar o operador lógico && para controlar as leituras, de forma seja interpretada a tecla única vez a cada acionamento
* DICA3: Utilizar uma variável para controlar o estado do led e inverter o estado a cada ciclo de leitura da tecla.
*/
//DEFINICOES INICIAIS
#define led1 3 //define que o led sera ligado no pino 3
#define tecla 2 //define que a tecla sera ligada no pino 2
//DECLARAcAO DE VARIAVEIS
bool estadoled = 0;//renomiei a variavel
bool teclapressionada = 0 ;//renomiei a variavel
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla, INPUT_PULLUP);//define a tecla como entrada analogica
pinMode(led1, OUTPUT);//define o led 1 como saida analogica
}
//PROGRAMA PRINCIPAL
void loop() {
if(digitalRead(tecla) == LOW && teclapressionada == 0){ //0 && 0 = falso, 0 && 1 = falso,1 && 1 = verdadeiro
teclapressionada = 1;//a variavel tacla pressiponada ficara com o valor 1
estadoled = !estadoled ;//a nagaço da variavel estado do led
digitalWrite(led1, estadoled);//vai colocar o valor do led na variavel
}
if(digitalRead(tecla) == HIGH && teclapressionada ==1) { //se a tecla estiver com o valor 0 vai passar para o valor 1
teclapressionada = 0;//quando o valor do led estiver em 1 e a tecla for pressionada vai voltar para 1
}
}
Permissões neste sub-fórum
Não podes responder a tópicos
|
|