Exercício 1.17
3 participantes
- Gigio
- Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas
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.
}
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
- Mensagens : 331
Data de inscrição : 09/03/2020
Idade : 17
Escola : Lindaura Ribeiro Lucas
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
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
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
Permissões neste sub-fórum
Não podes responder a tópicos
|
|