- Diogo Penha Marques
- Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici
Diogo Saraiva Exercício 2.20
Qui Jun 06, 2024 3:10 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.20
* Tema: Função IF WHILE
* Atividade: Associar um LED a uma tecla
* Descrição: Quando pressionar uma tecla um led deve acender e ao pressionar novamente o LED apaga
* Hardware: Ligar uma tecla a um pino digital configurado como ENTRADA e um led em outro pino digital configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), WHILE
* DICA1: Usar a função if() para checar se a tecla foi pressionada
* DICA2: Com a função while() reter o programa enquanto a tecla estiver pressionada
* DICA2: Usar a função while() dentro da função if()
*/
//DEFINICOES INICIAIS
#define led 3 //Definido que o pino 3 vai se chamar "led"
#define tecla 2//Definidoque o pino 2 vai se chamar "tecla"
//DECLARAcAO DE VARIAVEIS
bool estado;
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(led, OUTPUT); //programado o led como saida
}
//PROGRAMA PRINCIPAL
void loop() {
if(!digitalRead(tecla))estado = !estado;//Se tecla pressionada troque o valor de estado(se for 1 vira 0 e vice versa)
while(estado == 1)//Enquanto estado for 1 executa:
{
digitalWrite(led, HIGH);//Liga o led
if(!digitalRead(tecla))estado = !estado;//Se tecla pressionada troque o valor de estado(se for 1 vira 0 e vice versa)
}
digitalWrite(led, LOW);//Desliga o led
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.20
* Tema: Função IF WHILE
* Atividade: Associar um LED a uma tecla
* Descrição: Quando pressionar uma tecla um led deve acender e ao pressionar novamente o LED apaga
* Hardware: Ligar uma tecla a um pino digital configurado como ENTRADA e um led em outro pino digital configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), WHILE
* DICA1: Usar a função if() para checar se a tecla foi pressionada
* DICA2: Com a função while() reter o programa enquanto a tecla estiver pressionada
* DICA2: Usar a função while() dentro da função if()
*/
//DEFINICOES INICIAIS
#define led 3 //Definido que o pino 3 vai se chamar "led"
#define tecla 2//Definidoque o pino 2 vai se chamar "tecla"
//DECLARAcAO DE VARIAVEIS
bool estado;
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(led, OUTPUT); //programado o led como saida
}
//PROGRAMA PRINCIPAL
void loop() {
if(!digitalRead(tecla))estado = !estado;//Se tecla pressionada troque o valor de estado(se for 1 vira 0 e vice versa)
while(estado == 1)//Enquanto estado for 1 executa:
{
digitalWrite(led, HIGH);//Liga o led
if(!digitalRead(tecla))estado = !estado;//Se tecla pressionada troque o valor de estado(se for 1 vira 0 e vice versa)
}
digitalWrite(led, LOW);//Desliga o led
}
Re: Diogo Saraiva Exercício 2.20
Qui Set 05, 2024 9:12 pm
Diogo, nesse exercício precisa usar o while() para aguardar a tecla ser depressionada e não para aguardar a variável chegar no valor 1
precisa pressionar e o led acender e ao pressionar novamente apagar
precisa pressionar e o led acender e ao pressionar novamente apagar
- Diogo Penha Marques
- Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici
Re: Diogo Saraiva Exercício 2.20
Qui Set 12, 2024 2:25 pm
A variável estado guarda o estado do led, no caso se a tecla for pressionada irá mudar o estado e ficará executando o while() até que a condição de tecla pressionada seja verdadeira e o estado mudePaulo Augusto Batista escreveu:Diogo, nesse exercício precisa usar o while() para aguardar a tecla ser depressionada e não para aguardar a variável chegar no valor 1
precisa pressionar e o led acender e ao pressionar novamente apagar
Re: Diogo Saraiva Exercício 2.20
Ter Out 08, 2024 9:32 pm
Preciso que revise, não está funcionando. Para resolver faz assim, se a tecla for pressionada altera o estado do led e escreve no led, daí entra num while() que segura o fluxo do programa até que a tecla seja depressionada.
Permissões neste sub-fórum
Não podes responder a tópicos