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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 1.17 Empty Exercício 1.17

Qui maio 05, 2022 4:13 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?
* *Rising*
  Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3?
  NANO: *2, o 2 e o 3
  Questão3: Quantos modos de interrupção podem ser configurados no arduino?
  4: *RISING, FALLING, CHANGING e LOW, porém no DUE, ZERO e MKR1000, há também o HIGH
*/

//DEFINICOES INICIAIS

#define Tecla_Interrupt 3 //Define a Tecla de Interrupção como pino 3,
#define LED 4 //Define o LED como pino 4

//DECLARAcAO DE VARIAVEIS
int Variavel_Normal; //Variável INT que controla o contador.

//FUNÇÕES INTERRUPÇÃO
void cavalo() { //Função de interrupção.
 Serial.print("Contador: "); //Manda para o console a descrição "Contador: ",
 Serial.println(Variavel_Normal); //Manda para o console a variável que controla o contador,
 Variavel_Normal ++; //Aumenta o contador.
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
 Serial.begin(9600); //Inicia o monitor serial,
 pinMode(Tecla_Interrupt, INPUT_PULLUP); //Define a Tecla de Interrupção como INPUT_PULLUP,
 pinMode(LED, OUTPUT); //Define o LED como OUTPUT,
 attachInterrupt(digitalPinToInterrupt(3), cavalo, FALLING); //Define o pino 3 como interruptor usando a função cavalo e o modo FALLING.
}

//PROGRAMA PRINCIPAL
void loop() {
 digitalWrite(LED, HIGH); //Liga o LED,
 delay(1000); //Delay de 1000 milissegundos,
 digitalWrite(LED, LOW); //Desliga o LED,
 delay(1000); //Delay de 1000 milissegundos.
}
lucca senn dallagassa
lucca senn dallagassa
Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas

Exercício 1.17 Empty Re: Exercício 1.17

Sáb maio 07, 2022 9:13 am
Por favor revise seu programa a um erro nas funçoes de interupçao
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

Exercício 1.17 Empty Re: Exercício 1.17

Ter Jul 26, 2022 12:28 am
Gioivani, excelente programa. Usou a criatividade, fez algo diferente e funcionou direitinho.
Faltou somente responder as 3 questões do enunciado para eu te dar a nota máxima.
Por enquanto vai ficar com um 8.0
Conteúdo patrocinado

Exercício 1.17 Empty Re: Exercício 1.17

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