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

Ir para baixo
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Exercício 1.17 Interrupção Contador

Seg Jul 13, 2020 5:48 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?
* O modo LOW
* Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3?
* 2 pinos , o D2 e o D3
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?
* 4 modos ,o LOW,o CHANGE,o RISING e o FALLING
*/

//DEFINICOES INICIAIS
#define led1 4 //Definido que o pino 4 irá se chamar led1
#define teclaInter 2 //Definido que o pino 2 irá se chamar teclaInter

//DECLARAcAO DE VARIAVEIS
bool estado=0;//Variável para ser atribuído o valor do estado

//FUNÇÕES INTERRUPÇÃO
void sinalizar(){
Serial.print("estado=");//Quando a função for ativada ele ir´pa colocar o valor da linha de baixo
estado=!estado;//O estado irá negar o valor do estado, ou seja, como é uma função bool o valor do estado será invertido
Serial.println(estado);//Valor atribuído ao estado
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Porta serial inicializada
pinMode(led1,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaInter,INPUT_PULLUP);//Configurado o pino 2 como entrada com um resistor de polarização
attachInterrupt(0,sinalizar,FALLING);//Quando a tecla for pressionada o evento de interrupção será ativado
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
delay(200);//O intervalo de tempo será de 0,2 segundos
digitalWrite(led1,LOW);//Quando o intervalo de tempo acabar o led1 irá apagar
delay(200);//O intervalo de tempo será de 0,2 segundos
}
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 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Seg Jul 13, 2020 10:45 pm
Thiago, esse exercício pede o incremento da variável e enviar para serial. A nota será 6.0 e vai uma dica e uma questão.
A dica é que pode fazer o incremento de varias formas,
1 - usando o operador ++
2 - usando soma ex num = num +1;
3 - usando soma e atribuição ex num += 1;

A questão para avaliar o entendimento das interrupções e a abaixo:
Para acionar a interrupção quando aperta a tecla e também quando solta a tecla, qual comando deve ser alterado? Escreva o comando para essa condição.
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Ter Jul 14, 2020 5:50 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?
* O modo LOW
* Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3?
* 2 pinos , o D2 e o D3
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?
* 4 modos ,o LOW,o CHANGE,o RISING e o FALLING
*/

//DEFINICOES INICIAIS
#define led1 4 //Definido que o pino 4 irá se chamar led1
#define teclaInter 2 //Definido que o pino 2 irá se chamar teclaInter

//DECLARAcAO DE VARIAVEIS
bool estado=0;//Variável para ser atribuído o valor do estado

//FUNÇÕES INTERRUPÇÃO
void sinalizar(){
Serial.print("estado=");//Quando a função for ativada ele ir´pa colocar o valor da linha de baixo
estado=estado+1;//O valor do estado será somado a 1
Serial.println(estado);//Valor atribuído ao estado
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Porta serial inicializada
pinMode(led1,OUTPUT);//Configurado o pino 4 como saída
pinMode(teclaInter,INPUT_PULLUP);//Configurado o pino 2 como entrada com um resistor de polarização
attachInterrupt(0,sinalizar,FALLING);//Quando a tecla for pressionada o evento de interrupção será ativado
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led1,HIGH);//Quando o programa iniciar o led1 irá acender
delay(200);//O intervalo de tempo será de 0,2 segundos
digitalWrite(led1,LOW);//Quando o intervalo de tempo acabar o led1 irá apagar
delay(200);//O intervalo de tempo será de 0,2 segundos
}
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Ter Jul 14, 2020 5:55 pm
Quando a tecla for pressionada a função é :
attachInterrupt()
Quando a tecla for despressionada a fução é :
detachInterrupt()
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Ter Jul 14, 2020 5:57 pm
Só uma pergunta :
Eu terei que impor a função do desativamento da interrupção no meu programa ?
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 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Qui Jul 23, 2020 9:41 pm
Oi Thiago, não precisa desativar a interrupção .
A pergunta que fiz na mensagem anterior é sobre o acionamento da interrupção. Veja a interrupção está ativada e quero saber como aciona. Qual a condição que faz com que a interrupção aconteça.
Vai mais uma dica, os modos estão listados na Dica1:
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Seg Jul 27, 2020 4:27 pm
a condição é o pressionamento da tecla
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Seg Jul 27, 2020 4:27 pm
Obs : cada modo tem um comportamento
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 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Seg Ago 03, 2020 9:51 pm
Oi Thiago, isso mesmo cada modo tem um comportamento, e o que eu quero saber é qual modo tem o comportamento da pergunta, que vou repetir abaixo:

A questão para avaliar o entendimento das interrupções e a abaixo:
Para acionar a interrupção quando aperta a tecla e também quando solta a tecla, qual comando deve ser alterado? Escreva o comando para essa condição.

Nota 9.0

Voce acaba de ser condecorado com o a conclusão do capítulo 1. PARABÉNS cheers sunny bounce king
Thiaguin
Thiaguin
Mensagens : 176
Data de inscrição : 03/03/2020

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Ter Ago 04, 2020 4:36 pm
Resposta: CHANGE
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 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

Ter Ago 11, 2020 11:09 pm
Agora sim, nota 10.0. Com essa gabaritou o capítulo 1 . Parabéns.
Conteúdo patrocinado

Exercício 1.17 Interrupção Contador Empty Re: Exercício 1.17 Interrupção Contador

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