Robótica Livre
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
Diogo Penha Marques
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 Empty 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
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 2.20 Empty 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
Diogo Penha Marques
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 Empty Re: Diogo Saraiva Exercício 2.20

Qui Set 12, 2024 2:25 pm
Paulo 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
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 mude
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 2.20 Empty 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.
Conteúdo patrocinado

Diogo Saraiva Exercício 2.20 Empty Re: Diogo Saraiva Exercício 2.20

Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos