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
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 1.17 Empty Exercício 1.17

Sex Jun 05, 2020 10:35 am
/*
* 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? Change
* Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3? O pino 2 e 3
* Questão3: Quantos modos de interrupção podem ser configurados no arduino? 4
*/


//DEFINICOES INICIAIS
#define ledPisca 6//foi definido que o pino 6 vai se chamar ledPisca
#define ledInt 7//foi definido que o pino 7 vai se chamar led Interrupção
#define  teclaInt 2//foi definido que o pino 2 vai se chamar tecla Interrupção

//DECLARAcAO DE VARIAVEIS
volatile bool estado = 0;//foi declarada um variavel do tipo bool com o nome estado
byte count;

//FUNÇÕES INTERRUPÇÃO
void sinaliza (){
 estado = !estado;//estado = !estado representa um posiçao inversa
 debug();
 digitalWrite(ledInt, estado);//ledInt foi configurado para ficar apagado, ate que se ative uma funçao de interrupçao, pressionando o botao (depende da funçao)
}
void debug () {
Serial.print("count = "); //comando para enviar o valor a porta serial
Serial.println(count++); // comando para incrementar o valor a cada interrupção
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
 Serial.begin(9600);   //inicia e configura a serial
pinMode(ledPisca, OUTPUT);   //ledPisca foi configurado como saida
pinMode(ledInt, OUTPUT);   //ledInt foi configurado como saida
pinMode(teclaInt,INPUT_PULLUP);   //teclaInt foi configurada como entrada
attachInterrupt(0, sinaliza, FALLING);   //FALLING, LOW, CHANGE, RISING
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(ledPisca, HIGH);  //ledPisca aceso
delay(500);  //pequena pausa do estado aceso
digitalWrite(ledPisca, LOW);  //ledPisca apagado
delay(500);  //pequena pausa do estado apagado
}


Última edição por André Luis Caetano em Qui Jun 11, 2020 7:43 pm, editado 3 vez(es)
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5785
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.17 Empty Re: Exercício 1.17

Ter Jun 09, 2020 9:33 pm
Oi André, Tem uns detalhes nesse programa que precisa revisar:
- As questões respondidas estão corretas, mas faltou a questão1, isso deduz 2 pontos da nota
- No video pedi para fazer a variável count ser enviada para o terminal, esse código não foi incluido, menos 2 pontos
Nota 6.0
avatar
André Luis Caetano
Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão

Exercício 1.17 Empty Exercício 1.17

Qui Jun 11, 2020 10:21 pm
Corrigido.

Última edição por André Luis Caetano em Qui Jun 11, 2020 10:43 pm, editado 3 vez(es)
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5785
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.17 Empty Re: Exercício 1.17

Sex Jun 12, 2020 12:24 am
André, o programa ficou correto, mas a questão 1 está errada. Nota 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