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

Ir para baixo
gabriel hoepers
gabriel hoepers
Mensagens : 121
Data de inscrição : 02/07/2022
Idade : 12
Escola : lindaura

exercicio 1.16 Empty exercicio 1.16

Ter Set 13, 2022 11:17 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?
* depressionado
* Questáo2: Quando o pino de interrupção está configurado como CHANGE, em que condição o buzzer é acionado?
* quando ele vai de 0 a 1
* 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?
* no attacInterrupt
*/  

//DEFINICOES INICIAIS
#define ledpisca 6  //programado que o pino6 se chamará ledpisca
#define ledInt 7  //programado que o pino7 se chamará ledInt
#define teclaInt 2  //programado que o pino2 se chamará teclaInt

//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0; //variavel bool com o valor de 0

//FUNÇÕES INTERRUPÇÃO
void sinaliza(){
estado = !estado; //estado = estado negativo
digitalWrite(ledInt, HIGH); //ledInt aceso
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(ledpisca, OUTPUT);  //ledpisca programado como saída
pinMode(ledInt, OUTPUT);  //ledInt programado como saída
pinMode(teclaInt,INPUT_PULLUP);  //teclaInt programado como entrada
attachInterrupt(0,sinaliza,LOW);  //funcão de interrupcão com a funcão LOW
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledpisca, HIGH); //ledpisca ligado
delay(200); //tempo de 200 milicegundos
digitalWrite(ledpisca, LOW);  //ledpisca desligado
delay(200); //tempo de 200 milicegundos
}


Última edição por gabriel hoepers em Sáb Abr 20, 2024 8:57 am, editado 1 vez(es)
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

exercicio 1.16 Empty Re: exercicio 1.16

Qua Set 14, 2022 12:18 am
Gabriel, tenho quase certeza que exercício foi copiado, minha pergunta é se pelo menos testou esse programa, e pergunto o que aprendeu sobre a interrupção e que nota voce quer?

_________________
Paulo Augusto Batista
Tecnologia a Favor do Ensino, Educação para nossas crianças, Evolução para Nossa Sociedade
exercicio 1.16 Evoluc10
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos