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
Cadu2005
Mensagens : 26
Data de inscrição : 03/03/2020

Ex 1.17 Contador de interrupção Empty Ex 1.17 Contador de interrupção

Qui Ago 13, 2020 1:21 pm
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 1.17
* Tema: Interrupção
* Atividade: Incrementar um contador e enviar para porta serial usando interrupção
* Descrição: Fazer um pisca com o led vermelho e ligar uma tecla na interrupção. Quando interromper o processador incrementar uma variável e enviar pela porta serial
* 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, inicializar a serial
* 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: A interrupção serve para avisar o processador algum evento externo, pode ser usado para disparar uma rotina de tratamento
* Dica3: Para garantir a nota responda as questões abaixo:
* Questão1: Qual modo de interrupção que aciona o led quando a chave de interrupção muda de estado 0 para 1?
* Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3?
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?
*/


//DEFINICOES INICIAIS
#define Botão A0 //Definido que o pino A0 vai se chamar Botão
#define Led 6//Definido que o pino 3 vai se chamar Led
#define Led1 7//Definido que o pino 5 vai se chamar Led1

//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0;//variavel para guardar o valor do estado

//FUNÇÕES INTERRUPÇÃO
void sinaliza (){
estado = !estado;//Usa negação para reverter o valor de estado
digitalWrite(Led1, estado);//Definido que o Led1 irá ter o valor de estado
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(Botão, INPUT_PULLUP);//Definido Botão como SAIDA
pinMode(Led, OUTPUT);//Define Led como SAIDA
pinMode(Led, OUTPUT);//Define Led1 como SAIDA
attachInterrupt(0,sinaliza, LOW);//Define que após precionar a tecla irá mandar um sinal para o serial
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(Led, HIGH);//Define valor de 5 v assim ligando
delay(300);//Define valor de 30 ms
digitalWrite(Led, LOW);//Define valor de 0v assim desligando
delay(300);//Define valor de 30 ms
}
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

Ex 1.17 Contador de interrupção Empty Re: Ex 1.17 Contador de interrupção

Seg Ago 31, 2020 9:59 pm
Nesse programa precisa dos seguintes ajustes:
- Não use acentos nas variáveis, o compilador não reconhece acentos
- Programou a tecla, que chamou de botao, numa entrada analógica, não tem como fazer input com pullup numa entrada analógica. Na verdade até tem, mas não aprendemos e não é assim.
- No setup() programou o int0 e se revisar a matéria vai ver que está associado ao pino2 , logo vai ter que usar esse.

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