Exercício 1.16 Interrupção LED
2 participantes
- Thiaguin
- Mensagens : 177
Data de inscrição : 03/03/2020
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
}
* 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
}
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.
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
- Mensagens : 177
Data de inscrição : 03/03/2020
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
}
* 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
}
Permissões neste sub-fórum
Não podes responder a tópicos
|
|