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

Ir para baixo
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.16 Interrupção LED Empty Exercício 1.16 Interrupção LED

Qui Jul 09, 2020 6:40 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.
* FALLING:Quando a tecla for pressionada o evento será ativado e só será desativado após a tecla ser pressionada pela segunda vez
* RISING:Quando a tecla for pressionada não haverá a ativação do evento, quando a tecla for despressionada o evento será ativado e só irá ser desativado após a tecla ser pressionada e despressionada pela segunda vez
* CHANGE:O evento só irá se manter ativado se a tecla manter-se pressionada
* LOW:Quando a tecla for pressionada o evento LOW ficará num loop infinito entre alta e baixa, quando a a tecla for pressionada pela segunda vez irá ficar em alta, e só após a tecla ser pressionada pela terceira vez o evento será dedsativado
* 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?
* O buzzer já começa ativado ao iniciar o simulador, e quando a tecla for pressionada ele se manterá ativo
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?
* O buzzer já começa ativado ao iniciar o simulador, e quando a tecla for pressionada ele se manterá ativo
* 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?
*
*/

//DEFINICOES INICIAIS
#define ledPisca 4 //Definido que o pino 4 irá se chamar ledPisca
#define ledInter 5 //Definido que o pino 5 irá se chamar ledInter
#define teclaInter 2 //Definido que o pino 2 irá se chamar teclaInter

//DECLARAcAO DE VARIAVEIS
bool estado=0;//Variável para ser atribuído o valor do estado

//FUNÇÕES INTERRUPÇÃO
void sinalizar(){
estado=!estado;//O estado irá negar o valor do estado, ou seja, como é uma função bool o valor do estado será invertido
digitalWrite(ledInter,estado); //Quando a função for ativada o ledInter irá acender
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledPisca,OUTPUT);//Configurado o pino 4 como saída
pinMode(ledInter,OUTPUT);//Configurado o pino 5 como saída
pinMode(teclaInter,INPUT_PULLUP);//Configurado o pino 2 como entrada com um resistor de polarização
attachInterrupt(0,sinalizar,FALLING-RISING-CHANGE-LOW);//Quando a tecla for pressionada o evento de interrupção será ativado
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca,HIGH);//Quando o programa iniciar o ledPisca irá acender
delay(200); //O intervalo de tempo irá durar 0,2 segundos
digitalWrite(ledPisca,LOW);//Quando o intervalo de tempo acabar o ledPisca irá apagar
delay(200); //O intervalo de tempo irá durar 0,2 segundos
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.16 Interrupção LED Empty Re: Exercício 1.16 Interrupção LED

Sex Jul 10, 2020 1:29 am
Oi Thiago, achei incrivel que esse programa tenha funcionado, quando programa a interrupção,

attachInterrupt(0,sinalizar,FALLING-RISING-CHANGE-LOW);//Quando a tecla for pressionada o evento de interrupção será ativado

deve escolher um mode de interrupção, e voce colocou os 4 e o compilador aceitou, e não deveria.

Vou dar nota 9.0 porque funcionou, mas não está correto.
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.16 Interrupção LED Empty Re: Exercício 1.16 Interrupção LED

Ter Jul 14, 2020 6: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.
* FALLING:Quando a tecla for pressionada o evento será ativado e só será desativado após a tecla ser pressionada pela segunda vez
* RISING:Quando a tecla for pressionada não haverá a ativação do evento, quando a tecla for despressionada o evento será ativado e só irá ser desativado após a tecla ser pressionada e despressionada pela segunda vez
* CHANGE:O evento só irá se manter ativado se a tecla manter-se pressionada
* LOW:Quando a tecla for pressionada o evento LOW ficará num loop infinito entre alta e baixa, quando a a tecla for pressionada pela segunda vez irá ficar em alta, e só após a tecla ser pressionada pela terceira vez o evento será dedsativado
* 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?
* O buzzer já começa ativado ao iniciar o simulador, e quando a tecla for pressionada ele se manterá ativo
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?
* O buzzer já começa ativado ao iniciar o simulador, e quando a tecla for pressionada ele se manterá ativo
* 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 ledPisca 4 //Definido que o pino 4 irá se chamar ledPisca
#define ledInter 5 //Definido que o pino 5 irá se chamar ledInter
#define teclaInter 2 //Definido que o pino 2 irá se chamar teclaInter

//DECLARAcAO DE VARIAVEIS
bool estado=0;//Variável para ser atribuído o valor do estado

//FUNÇÕES INTERRUPÇÃO
void sinalizar(){
estado=!estado;//O estado irá negar o valor do estado, ou seja, como é uma função bool o valor do estado será invertido
digitalWrite(ledInter,estado); //Quando a função for ativada o ledInter irá acender
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledPisca,OUTPUT);//Configurado o pino 4 como saída
pinMode(ledInter,OUTPUT);//Configurado o pino 5 como saída
pinMode(teclaInter,INPUT_PULLUP);//Configurado o pino 2 como entrada com um resistor de polarização
attachInterrupt(0,sinalizar,FALLING);//Quando a tecla for pressionada o evento de interrupção será ativado
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca,HIGH);//Quando o programa iniciar o ledPisca irá acender
delay(200); //O intervalo de tempo irá durar 0,2 segundos
digitalWrite(ledPisca,LOW);//Quando o intervalo de tempo acabar o ledPisca irá apagar
delay(200); //O intervalo de tempo irá durar 0,2 segundos
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.16 Interrupção LED Empty Re: Exercício 1.16 Interrupção LED

Qui Jul 23, 2020 9:49 pm
Muito bom Thiago, nota 10.0
Conteúdo patrocinado

Exercício 1.16 Interrupção LED Empty Re: Exercício 1.16 Interrupção LED

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