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

Ir para baixo
Diogo Penha Marques
Diogo Penha Marques
Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici

Diogo Saraiva Exercício 1.17 Empty Diogo Saraiva Exercício 1.17

Qui Abr 18, 2024 4:28 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?2, eles sao: D2, D3
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?4, eles sao: LOW, CHANGE, RISING, FALLING
*/

//DEFINICOES INICIAIS
#define teclaInt 2
#define led 3
#define ledInt 4


//DECLARAcAO DE VARIAVEIS
int soma = 0;

//FUNÇÕES INTERRUPÇÃO
void contador() {
digitalWrite(ledInt, HIGH);
soma++;
debug();
delay(500);
digitalWrite(ledInt, LOW);
}
//FUNÇOES
void debug() {
Serial.print("Contador = ");
Serial.println(soma);
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(teclaInt, INPUT_PULLUP);
pinMode(led, OUTPUT);
pinMode(ledInt, OUTPUT);
attachInterrupt(0, contador, FALLING);
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
Monica Moreno
Monica Moreno
Mensagens : 744
Data de inscrição : 03/03/2020
Idade : 15
Escola : Colegio Lindaura Ribeiro Lucas

Diogo Saraiva Exercício 1.17 Empty Re: Diogo Saraiva Exercício 1.17

Seg Jun 24, 2024 3:51 pm
Boa Tarde
Nota 40.0
 Falta Comentar
Diogo Penha Marques
Diogo Penha Marques
Mensagens : 107
Data de inscrição : 29/02/2024
Idade : 14
Escola : Colégio Estadual da Colônia Murici

Diogo Saraiva Exercício 1.17 Empty Re: Diogo Saraiva Exercício 1.17

Qui Jun 27, 2024 2:10 pm
Monica Moreno escreveu:Boa Tarde
Nota 40.0
 Falta Comentar
/*
* 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, eles sao: D2, D3
* Questão3: Quantos modos de interrupção podem ser configurados no arduino?4, eles sao: LOW, CHANGE, RISING, FALLING
*/

//DEFINICOES INICIAIS
#define teclaInt 2//Nomeia o pino 2 de "teclaInt"
#define led 3//Nomeia o pino 3 de "led"
#define ledInt 4//Nomeia o pino 4 de "ledInt"


//DECLARAcAO DE VARIAVEIS
int soma = 0;//Variável do tipo int nomeado de "soma"

//FUNÇÕES INTERRUPÇÃO
void contador() {//Função chamada contador
digitalWrite(ledInt, HIGH);//Liga o ledInt
soma++;//Adiciona 1 a soma
debug();//Ativa a função debug
delay(500);//Tempo de espera de 500 ms
digitalWrite(ledInt, LOW);//Desliga o ledInt
}
//FUNÇOES
void debug() {//Função que mostra o valor de soma no monitor
Serial.print("Contador = ");//Mostra no monitor "Contador = "
Serial.println(soma);//Mostra no monitor o valor de soma
}

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//Inicia a porta serial
pinMode(teclaInt, INPUT_PULLUP);//Define teclaInt como entrada pressionável
pinMode(led, OUTPUT);//Define led como saída
pinMode(ledInt, OUTPUT);//Define ledInt como saída
attachInterrupt(0, contador, FALLING);//Se a tecla 0(pino 2/ teclaInt) for pressionada inicie a função interrupção contador
}

//PROGRAMA PRINCIPAL
void loop() {
digitalWrite(led, HIGH);//Liga led
delay(500);//Tempo de espera de 500 ms
digitalWrite(led, LOW);//Desliga led
delay(500);//Tempo de espera de 500 ms
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5798
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Diogo Saraiva Exercício 1.17 Empty Re: Diogo Saraiva Exercício 1.17

Qua Set 11, 2024 7:25 pm
comentado, nota 10.0
Conteúdo patrocinado

Diogo Saraiva Exercício 1.17 Empty Re: Diogo Saraiva Exercício 1.17

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