Exercício 1.16
Ter Jun 09, 2020 11:52 am
/*
* 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?pressionada
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?low
* 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? de acender o led
*/
//DEFINICOES INICIAIS
#define ledpisca 6 //o pino 6 vai se chamar ledpisca
#define ledint 7 //o pino 7 vai se chamar ledint
#define teclaint 2 //o pino 2 vai se chamar teclaint
//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0; //variavel estado
//FUNÇÕES INTERRUPÇÃO
void sinaliza(){
estado = ! estado; //estado fica negado
digitalWrite(ledint,estado); //acende o led com a variavel estado
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledpisca,OUTPUT); //configurado o ledpisca como saida
pinMode(ledint,OUTPUT); //configurado o leddint como saida
pinMode(teclaint,INPUT_PULLUP); //configurado a teclaint como entrada
attachInterrupt (0,sinaliza,LOW); //interrupção
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledpisca,HIGH); //ledpisca acende
delay(500); //tempo de espera
digitalWrite(ledpisca,LOW); //ledpisca apaga
delay(500); //tempo de espera
}
* 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?pressionada
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?low
* 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? de acender o led
*/
//DEFINICOES INICIAIS
#define ledpisca 6 //o pino 6 vai se chamar ledpisca
#define ledint 7 //o pino 7 vai se chamar ledint
#define teclaint 2 //o pino 2 vai se chamar teclaint
//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0; //variavel estado
//FUNÇÕES INTERRUPÇÃO
void sinaliza(){
estado = ! estado; //estado fica negado
digitalWrite(ledint,estado); //acende o led com a variavel estado
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledpisca,OUTPUT); //configurado o ledpisca como saida
pinMode(ledint,OUTPUT); //configurado o leddint como saida
pinMode(teclaint,INPUT_PULLUP); //configurado a teclaint como entrada
attachInterrupt (0,sinaliza,LOW); //interrupção
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledpisca,HIGH); //ledpisca acende
delay(500); //tempo de espera
digitalWrite(ledpisca,LOW); //ledpisca apaga
delay(500); //tempo de espera
}
Re: Exercício 1.16
Ter Jun 09, 2020 10:10 pm
Daniel,
O programa está correto e espero que tenha testado todos os modos de interrupção, mas faltou responder as questões 1 a 3, e cada uma vale 2.0 pontos.
A nota será 4.0 até responder as questões.
O programa está correto e espero que tenha testado todos os modos de interrupção, mas faltou responder as questões 1 a 3, e cada uma vale 2.0 pontos.
A nota será 4.0 até responder as questões.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|