1.16 EXERcICIO
2 participantes
- Lucasbazza
- Mensagens : 68
Data de inscrição : 05/03/2024
Idade : 11
Escola : Escola Estadual Colonia Murici
1.16 EXERcICIO
Sáb maio 18, 2024 8:56 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?
*R:presionada
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição a interrupção é acionada?
*R:quado presiona e novamente quando depresiona
* 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?
*R:detachinterrupt
attachInterrupt // eterompe
*/
//DEFINICOES INICIAIS
#define ledP 5//define como ledP
#define ledI 6//define como ledI
#define tacla 2//define como tacla
//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0;//variavel bool nomea estado
//FUNÇÕES INTERRUPÇÃO
void sinaliza(){
estado =!estado;//valor etado=estado contrario
digitalWrite(ledI, estado);//led= valor estado
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledP, OUTPUT);//programa como saida
pinMode(ledI, OUTPUT);//programa como saida
pinMode(tacla, INPUT_PULLUP);//programa como entrada
attachInterrupt(0,sinaliza,LOW);//interonpe com causa LOW
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledP, HIGH);//açende
delay(599);//temporia
digitalWrite(ledP, LOW);//apaga
delay(599);//temporiza
}
* 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?
*R:presionada
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição a interrupção é acionada?
*R:quado presiona e novamente quando depresiona
* 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?
*R:detachinterrupt
attachInterrupt // eterompe
*/
//DEFINICOES INICIAIS
#define ledP 5//define como ledP
#define ledI 6//define como ledI
#define tacla 2//define como tacla
//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0;//variavel bool nomea estado
//FUNÇÕES INTERRUPÇÃO
void sinaliza(){
estado =!estado;//valor etado=estado contrario
digitalWrite(ledI, estado);//led= valor estado
}
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledP, OUTPUT);//programa como saida
pinMode(ledI, OUTPUT);//programa como saida
pinMode(tacla, INPUT_PULLUP);//programa como entrada
attachInterrupt(0,sinaliza,LOW);//interonpe com causa LOW
}
//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledP, HIGH);//açende
delay(599);//temporia
digitalWrite(ledP, LOW);//apaga
delay(599);//temporiza
}
Re: 1.16 EXERcICIO
Seg Set 02, 2024 8:45 pm
Muito bom Lucas, exercício funcionou e as respostas corretas, nota 10.0
Permissões neste sub-fórum
Não podes responder a tópicos