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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 1.16 Empty Exercício 1.16

Qui maio 05, 2022 3:23 pm

/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.16
* Atividade: Testar as 4 formas de interrupção e seus comportamentos
* Descrição: Montar um pisca e quando pressionar uma tecla, interromper o arduino e acender outro led
* Hardware: Ligar uma tecla em D2 configurado como ENTRADA PULLUP e programa-la como interrupção, em outro pino digital um led configurado como SAÍDA e noutro pino o segundo LED
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, attachInterrupt
* Dica1: Use no modo de interrupção as opções LOW, CHANGE, RISING, FALLING e disserte sobre o comportamento de cada uma delas.
* Dica2: Para garantir a nota responda as questões abaixo:
* Questão1: Quando o pino de interrupção está configurado como FALLING, o buzzer é acionado quando a tecla2 for pressionada ou depressionada? *Depressionada*
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado? *Tanto pressionada quanto depressionada*
* Questão3: Caso em determinado trecho do programa não seja mais necessário tratar as interrupções qual o comando deve ser usado no programa? *detachInterrupt*
*/

//DEFINICOES INICIAIS

#define Tecla_Interrupt 3 //Define a Tecla de Interrupção como pino 3,
#define LED 4 //Define o LED como pino 4,
#define LED_Interrupt 5 //Define o LED de Interrupção como pino 5.

//DECLARAcAO DE VARIAVEIS
byte Valor_LED = 1;

//FUNÇÕES INTERRUPÇÃO
void churros(){ //Função para interrupção.
digitalWrite(LED_Interrupt,HIGH); //Liga o LED de Interrupção
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(Tecla_Interrupt, INPUT_PULLUP); //Define a Tecla de Interrupção como INPUT_PULLUP,
pinMode(LED, OUTPUT); //Define o LED como OUTPUT,
pinMode(LED_Interrupt, OUTPUT); //Define o LED de Interrupção como OUTPUT,
attachInterrupt(digitalPinToInterrupt(3), churros, FALLING); //Define o pino 3/Tecla de Interrupção como um Interruptor no modo FALLING e roda o código da função de interrupção,
//RISING = de estado lógico 0 para 1, FALLING = de 1 para 0, CHANGE = de 0 a 1 ou 1 a 0, LOW = Apenas 0.
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(LED,HIGH); //Liga o LED,
delay(1000); //Delay de 1000 milissegundos,
digitalWrite(LED,LOW); //Desliga o LED,
delay(1000); //Delay de 1000 milissegundos.
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5115
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.16 Empty Re: Exercício 1.16

Ter Jul 26, 2022 9:17 pm
Muito bom, nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos