exercicio 2.5
2 participantes
- Lucasbazza
- Mensagens : 68
Data de inscrição : 05/03/2024
Idade : 11
Escola : Escola Estadual Colonia Murici
exercicio 2.5
Ter Ago 06, 2024 9:23 am
/*
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.25
* Tema: Do WHILE
* Atividade: Associar 3 LED a 3 teclas, quando as 3 estiverem acesas e teclar fim apaga todas
* Descrição: Cada tecla acende um led e não apaga até os 3 leds acesos e uma quarta tecla denomidada fim pressionada
* Hardware: Ligar 4 teclas aos pinos digitais configurados como ENTRADA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Do While
* DICA1: A função !(not) deve ser usada antes de cada tecla porque a tecla está com resistor de pullup e ligada ao 0V, logo fica em DOWN quando pressionada
* DICA2: A função DO WHILE executa primeiro os comandos listados e depois compara a igualdade
* DICA3: Usar 3 variáveis para guardar o status dos leds e uma função para escrever os status nos leds, os status são 0 apagado 1 aceso
* DICA4: Reter o fluxo do programa enquanto os 3 leds não estiverem acesos,
* DICA5: Quando os 3 leds estiverem acesos usar um if para testar a quarta tecla e apagar os leds
*/
//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 tecla1 6 //Definido que o pino 2 vai se chamar "tecla1"
#define tecla2 7 //Definido que o pino 13 vai se chamar "tecla2"
#define tecla3 8 //Definido que o pino 10 vai se chamar "tecla3"
#define teclabo 9 //Definido que o pino 11 vai se chamar "tecla4"
//DECLARAcAO DE VARIAVEIS
bool sled1, sled2, sled3 = 0; //variaveis do staus dos leds
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla2,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla3,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(teclabo,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(led1, OUTPUT); //programado o led como saida
pinMode(led2, OUTPUT); //programado o led como saida
pinMode(led3, OUTPUT); //programado o led como saida
}
//PROGRAMA PRINCIPAL
void loop() {
do{//faz o bloco do
if(!digitalRead(tecla1)){//faz bloco se reves tecla1 = 1
sled1 = 1;//decha sled1 em alto
digitalWrite(led1,sled1);//led1 = sled1
}
if(!digitalRead(tecla2)){//faz bloco se reves tecla2 = 1
sled2 = 1;//decha sled2 em alto
digitalWrite(led2,sled2);//led2 = sled2
}
if(!digitalRead(tecla3)){//faz bloco se reves tecla3 = 1
sled3 = 1;//decha sled3 em alto
digitalWrite(led3,sled3);//led3 = sled3
}
}while((sled1 == true && sled2 == true && sled3 == true && !digitalRead(teclabo)) == false);//repete bloco do enquando algum sled ou teclabo = false
sled1 = 0;//sled1 vai em baixo
sled2 = 0;//sled2 vai em baixo
sled3 = 0;//sled3 vai em baixo
digitalWrite(led1,sled1);//led1 = sled1
digitalWrite(led2,sled2);//led2 = sled2
digitalWrite(led3,sled3);//led3 = sled3
}
* CURSO DE ROBOTICA 2020
*
* Exercicio: 2.25
* Tema: Do WHILE
* Atividade: Associar 3 LED a 3 teclas, quando as 3 estiverem acesas e teclar fim apaga todas
* Descrição: Cada tecla acende um led e não apaga até os 3 leds acesos e uma quarta tecla denomidada fim pressionada
* Hardware: Ligar 4 teclas aos pinos digitais configurados como ENTRADA e 3 leds em outros pinos digitais configurado como SAÍDA
* Comandos: pinMode, digitalRead, digitalWrite, PULLUP, !(operador NOT), Do While
* DICA1: A função !(not) deve ser usada antes de cada tecla porque a tecla está com resistor de pullup e ligada ao 0V, logo fica em DOWN quando pressionada
* DICA2: A função DO WHILE executa primeiro os comandos listados e depois compara a igualdade
* DICA3: Usar 3 variáveis para guardar o status dos leds e uma função para escrever os status nos leds, os status são 0 apagado 1 aceso
* DICA4: Reter o fluxo do programa enquanto os 3 leds não estiverem acesos,
* DICA5: Quando os 3 leds estiverem acesos usar um if para testar a quarta tecla e apagar os leds
*/
//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 tecla1 6 //Definido que o pino 2 vai se chamar "tecla1"
#define tecla2 7 //Definido que o pino 13 vai se chamar "tecla2"
#define tecla3 8 //Definido que o pino 10 vai se chamar "tecla3"
#define teclabo 9 //Definido que o pino 11 vai se chamar "tecla4"
//DECLARAcAO DE VARIAVEIS
bool sled1, sled2, sled3 = 0; //variaveis do staus dos leds
//FUNÇÕES COMPLEMENTARES
//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(tecla1,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla2,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(tecla3,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(teclabo,INPUT_PULLUP); //programado a tecla como entrada e usando resistor de pull up
pinMode(led1, OUTPUT); //programado o led como saida
pinMode(led2, OUTPUT); //programado o led como saida
pinMode(led3, OUTPUT); //programado o led como saida
}
//PROGRAMA PRINCIPAL
void loop() {
do{//faz o bloco do
if(!digitalRead(tecla1)){//faz bloco se reves tecla1 = 1
sled1 = 1;//decha sled1 em alto
digitalWrite(led1,sled1);//led1 = sled1
}
if(!digitalRead(tecla2)){//faz bloco se reves tecla2 = 1
sled2 = 1;//decha sled2 em alto
digitalWrite(led2,sled2);//led2 = sled2
}
if(!digitalRead(tecla3)){//faz bloco se reves tecla3 = 1
sled3 = 1;//decha sled3 em alto
digitalWrite(led3,sled3);//led3 = sled3
}
}while((sled1 == true && sled2 == true && sled3 == true && !digitalRead(teclabo)) == false);//repete bloco do enquando algum sled ou teclabo = false
sled1 = 0;//sled1 vai em baixo
sled2 = 0;//sled2 vai em baixo
sled3 = 0;//sled3 vai em baixo
digitalWrite(led1,sled1);//led1 = sled1
digitalWrite(led2,sled2);//led2 = sled2
digitalWrite(led3,sled3);//led3 = sled3
}
Permissões neste sub-fórum
Não podes responder a tópicos