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

Ir para baixo
Ana Clara Leschnhak
Ana Clara Leschnhak
Mensagens : 117
Data de inscrição : 03/03/2023
Idade : 12
Escola : Colégio Estadual Colônia Murici

exercício 1.17 resolvido Empty exercício 1.17 resolvido

Sáb Set 23, 2023 11:23 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?
RISING
* Questão2: Quantos pinos de interrupção podem ser usados no arduino nano3?
2 pinos podem ser configurados como interrupção (D2, D3)
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?
FALLING, RISING,CHANGE e LOW
*/

//DEFINICOES INICIAIS
#define led1 3 // defineled e pino
#define tecla1 4 // define tecla e pino
#define led2 4 // defineled e pino

//DECLARAcAO DE VARIAVEIS
bool estado = 0; // variável para bool nomeada de estado

//FUNÇÕES INTERRUPÇÃO
void sinaliza () {
estado = !estado; // o estado é o inverso de seu valor
digitalWrite (led2, estado); // define se o led vai acionar ou não com base no valor da variável "estado"
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode (led1, OUTPUT); //configura a saids
pinMode (tecla1, INPUT_PULLUP); //configura a saida
pinMode (led2, OUTPUT); // configura a saida
attachInterrupt (0, sinaliza, RISING); //quando liga aciona a funcao e modo interrupcao
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite (led1, HIGH); //acende o led
delay (200); // tempo do led
digitalWrite (led1, LOW); // apaga o led
delay (200); //tempo do led
}
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos