Exercício 2.19
2 participantes
- Gigio
- Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 17
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas
Exercício 2.19
Seg Jul 04, 2022 3:01 pm
/*
CURSO DE ROBOTICA 2020
Exercicio: 2.19
Tema: Função WHILE()
Atividade: Tecla controlando o sequencial de 6 LEDS
Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial enquanto uma tecla estiver pressionada
Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
Comandos: pinMode, digitalWrite, delay,for(), while()
Dica1: Usar uma variavel para armazenar o tempo de espera entre as trocas de estado
Dica2: Configurar os leds nos pinos em ordem sequencial, usar os pinos 3,4,5,6,7,8 e o contador do for rodando esses pinos
Dica3: usar a função while para testar a tecla e controlar a execução do programa
Dica3: Colocar o sequencial usando a função for dentro de uma estrutura while
*/
//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 4 //Definido que o pino 4 vai se chamar "led2"
#define led3 5 //Definido que o pino 5 vai se chamar "led3"
#define led4 6 //Definido que o pino 6 vai se chamar "led4"
#define led5 7 //Definido que o pino 7 vai se chamar "led5"
#define led6 8 //Definido que o pino 8 vai se chamar "led6"
#define tecla 2 //Pino 2 ligado na tecla
//DECLARAcAO DE VARIAVEIS
int tempo = 100; // variavel para controlar o tempo
bool Teclado; //Variável bool para controlar o valor do Teclado,
byte i ; // contador usado na função for()
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1, OUTPUT); //programado o led1 como saida
pinMode(led2, OUTPUT); //programado o led2 como saida
pinMode(led3, OUTPUT); //programado o led3 como saida
pinMode(led4, OUTPUT); //programado o led4 como saida
pinMode(led5, OUTPUT); //programado o led5 como saida
pinMode(led6, OUTPUT); //programado o led6 como saida
pinMode(tecla, INPUT_PULLUP); //Programa a tecla como entrada pullup
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
Teclado = !digitalRead(tecla); //Teclado é igual a leitura inversa da tecla,
while (Teclado == 1) { //Enquanto o valor de Teclado ser igual a 1:
for (i = 3; i < 9; i ++) { //"i" será igual a 3, "i" deverá ser menor que 9, "i" irá acrescentar a cada loop,
Serial.println(Teclado); //Manda o valor de Teclado ao monitor serial,
digitalWrite(i, HIGH); //Liga o LED com o pino com o valor de "i",
delay(tempo); //Delay usando o valor da variável Tempo,
digitalWrite(i, LOW); //Desliga o LED com o pino com o valor de "i"
delay(tempo); //Delay usando o valor da variável Tempo,
Teclado = !digitalRead(tecla); //Teclado é igual a leitura inversa da tecla,
if (Teclado == 0) { //Se o valor de Teclado ser igual a 0, então:
break; //Quebra o loop do for e do while.
}
}
}
}
CURSO DE ROBOTICA 2020
Exercicio: 2.19
Tema: Função WHILE()
Atividade: Tecla controlando o sequencial de 6 LEDS
Descrição: fazer os 3 leds mais o led RGB piscarem de forma sequencial enquanto uma tecla estiver pressionada
Hardware: Ligar os 6 leds em seis pinos digital configurados como SAÍDA
Comandos: pinMode, digitalWrite, delay,for(), while()
Dica1: Usar uma variavel para armazenar o tempo de espera entre as trocas de estado
Dica2: Configurar os leds nos pinos em ordem sequencial, usar os pinos 3,4,5,6,7,8 e o contador do for rodando esses pinos
Dica3: usar a função while para testar a tecla e controlar a execução do programa
Dica3: Colocar o sequencial usando a função for dentro de uma estrutura while
*/
//DEFINICOES INICIAIS
#define led1 3 //Definido que o pino 3 vai se chamar "led1"
#define led2 4 //Definido que o pino 4 vai se chamar "led2"
#define led3 5 //Definido que o pino 5 vai se chamar "led3"
#define led4 6 //Definido que o pino 6 vai se chamar "led4"
#define led5 7 //Definido que o pino 7 vai se chamar "led5"
#define led6 8 //Definido que o pino 8 vai se chamar "led6"
#define tecla 2 //Pino 2 ligado na tecla
//DECLARAcAO DE VARIAVEIS
int tempo = 100; // variavel para controlar o tempo
bool Teclado; //Variável bool para controlar o valor do Teclado,
byte i ; // contador usado na função for()
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1, OUTPUT); //programado o led1 como saida
pinMode(led2, OUTPUT); //programado o led2 como saida
pinMode(led3, OUTPUT); //programado o led3 como saida
pinMode(led4, OUTPUT); //programado o led4 como saida
pinMode(led5, OUTPUT); //programado o led5 como saida
pinMode(led6, OUTPUT); //programado o led6 como saida
pinMode(tecla, INPUT_PULLUP); //Programa a tecla como entrada pullup
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() {
Teclado = !digitalRead(tecla); //Teclado é igual a leitura inversa da tecla,
while (Teclado == 1) { //Enquanto o valor de Teclado ser igual a 1:
for (i = 3; i < 9; i ++) { //"i" será igual a 3, "i" deverá ser menor que 9, "i" irá acrescentar a cada loop,
Serial.println(Teclado); //Manda o valor de Teclado ao monitor serial,
digitalWrite(i, HIGH); //Liga o LED com o pino com o valor de "i",
delay(tempo); //Delay usando o valor da variável Tempo,
digitalWrite(i, LOW); //Desliga o LED com o pino com o valor de "i"
delay(tempo); //Delay usando o valor da variável Tempo,
Teclado = !digitalRead(tecla); //Teclado é igual a leitura inversa da tecla,
if (Teclado == 0) { //Se o valor de Teclado ser igual a 0, então:
break; //Quebra o loop do for e do while.
}
}
}
}
Permissões neste sub-fórum
Não podes responder a tópicos