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

Ir para baixo
avatar
Daniel Lukas
Mensagens : 62
Data de inscrição : 06/03/2020
Idade : 17
Escola : Rua Aníbal Silva
https://sayajin-gamers-store.myshopify.com/

Exercício 1.16 Empty 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
}


Última edição por Daniel Lukas em Ter Jun 16, 2020 4:26 pm, editado 2 vez(es)
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5021
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 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.
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos