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
Renata Pinheiro B
Mensagens : 54
Data de inscrição : 31/07/2021
Idade : 16
Escola : Lindaura Ribeiro Lucas

Exercício 1.16 resolvido Empty Exercício 1.16 resolvido

Sáb Out 09, 2021 10:31 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?
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?
* 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 6//define que o pino 6 vai se chamar ledPisca
#define ledInt 7//define que o pino 7 vai se chamar ledInt
#define teclaInt 2//define que o pino 2 vai se chamar teclaInt

//DECLARAcAO DE VARIAVEIS
boolean estado = 0;//variável boolean definida como estado

//FUNÇÕES INTERRUPÇÃO
void sinaliza() {
estado = !estado;//inverte o estado da tecla
digitalWrite(ledInt, estado);//o valor do led vai ficar igual ao estado
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledPisca, OUTPUT);//define o ledPisca como saída
pinMode(ledInt, OUTPUT);//define o ledInt como saída
pinMode(teclaInt, INPUT_PULLUP);//define o teclaInt como entrada
attachInterrupt(0,sinaliza,CHANGE);//vai interromper o void sinaliza
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca, HIGH);//liga o ledPisca
delay(500);//pausa de 500ms
digitalWrite(ledPisca, LOW );//desliga o ledPisca
delay(500);//pausa de 500ms
}
alvaro 123456
alvaro 123456
Mensagens : 481
Data de inscrição : 27/04/2019
Idade : 18

Exercício 1.16 resolvido Empty Re: Exercício 1.16 resolvido

Dom Out 31, 2021 4:58 pm
Oi
Renata
Faltou responder a perguntas
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.16 resolvido Empty Re: Exercício 1.16 resolvido

Ter Nov 23, 2021 12:27 am
Aguardo as respostas ,
avatar
Renata Pinheiro B
Mensagens : 54
Data de inscrição : 31/07/2021
Idade : 16
Escola : Lindaura Ribeiro Lucas

Exercício 1.16 resolvido Empty Re: Exercício 1.16 resolvido

Sáb Mar 12, 2022 11:40 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?

* Resposta: o buzzer é acionado| quando o valor do pino muda de 1 para 0, ou seja, pressionada

* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?

* Resposta: o buzzer é acionado quando o pino muda de estado de 0 para 1 ou de 1 para 0

* 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?

* Resposta: noInterrupts()

*/

//DEFINICOES INICIAIS
#define ledPisca 6//define que o pino 6 vai se chamar ledPisca
#define ledInt 7//define que o pino 7 vai se chamar ledInt
#define teclaInt 2//define que o pino 2 vai se chamar teclaInt

//DECLARAcAO DE VARIAVEIS
boolean estado = 0;//variável boolean definida como estado

//FUNÇÕES INTERRUPÇÃO
void sinaliza() {
estado = !estado;//inverte o estado da tecla
digitalWrite(ledInt, estado);//o valor do led vai ficar igual ao estado
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledPisca, OUTPUT);//define o ledPisca como saída
pinMode(ledInt, OUTPUT);//define o ledInt como saída
pinMode(teclaInt, INPUT_PULLUP);//define o teclaInt como entrada
attachInterrupt(0,sinaliza,CHANGE);//vai interromper o void sinaliza
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca, HIGH);//liga o ledPisca
delay(500);//pausa de 500ms
digitalWrite(ledPisca, LOW );//desliga o ledPisca
delay(500);//pausa de 500ms
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.16 resolvido Empty Re: Exercício 1.16 resolvido

Dom Abr 24, 2022 10:04 pm
Parabéns Renata, muito bom. Nota 10.0
Conteúdo patrocinado

Exercício 1.16 resolvido Empty Re: Exercício 1.16 resolvido

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