- André Luis Caetano
- Mensagens : 41
Data de inscrição : 10/03/2020
Escola : São Critóvão
Exercício 1.8
Seg maio 04, 2020 11:56 am
/*
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/
//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 teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 12 vai chamar-se "tecladown"
//DECLARAcAO DE VARIAVEIS
byte tempo= 10; //foi declarada uma variável de tempo
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);//foi programado led1 como saída
pinMode(led2, OUTPUT);//foi programado led2 como saída
pinMode(teclaup, INPUT_PULLUP);//foi programado teclaup como entrada
pinMode(tecladown, INPUT_PULLUP);//foi programado tecladown como entrada
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() { //os leds ficarão piscando alternadamente
tempo = (tempo - !digitalRead(teclaup)*10);//quando teclaup for precionado adicionará 10ms
tempo = (tempo + !digitalRead(tecladown)*10);//quando tecladown for precionado diminuirá 10ms
digitalWrite(led1, HIGH);//led1 foi aceso
digitalWrite(led2, LOW);//led2 foi apagado
delay(tempo);//foi dada uma pausa entre um led aceso e outro apagado
digitalWrite(led1, LOW);//led1 foi apagado
digitalWrite(led2,HIGH);//led2 foi aceso
delay(tempo);//foi dada uma pausa entre um led aceso e outro apagado
}
//By André Luis Caetano
* Exercicio: 1.8
* Tema: Pinos Digitais
* Atividade: Fazer um pisca-pisca com 2 leds alternando entre um aceso e outro apagado com a velocidade controlada pelas teclas UP(aumenta a velocidade) e DOWN (diminui a velocidade)
* Descrição: Usar a leitura das teclas e multiplicar por uma constante para fazer o incremento e decremento da velocidade
* Hardware: Ligar os leds em dois pinos digital configurado como SAÍDA e as teclas em outros pinos digitais
* Comandos: pinMode, digitalWrite, delay, PULLUP
* Dica1: Usar os operadores matemáticos para aumentar e diminuir o tempo do pisca
* Dica2: A tecla quando não está pressionada fica em HIGH (1) e quando pressiona o pino é aterrado e vem para nível lógico LOW (0)
* Dica3: Todo numero multiplicado por zero 0 é igual a zero, e todo numero somado com zero é igual a ele mesmo
* Dica4: Para incrementar o tempo quando a tecla UP for pressionada, o valor fica 1, deve ser multiplicado por um numero e somado ao valor do tempo
* Dica5: Usar uma variável tipo Byte para o tempo, essa quando chega em 255 e incrementada volta a zero.
* Dica6: Multiplicar 255 por um valor para chegar ao tempo desejado,
*/
//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 teclaup 2 //Definido que o pino 2 vai chamar-se "teclaup"
#define tecladown 13 //Definido que o pino 12 vai chamar-se "tecladown"
//DECLARAcAO DE VARIAVEIS
byte tempo= 10; //foi declarada uma variável de tempo
//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);//foi programado led1 como saída
pinMode(led2, OUTPUT);//foi programado led2 como saída
pinMode(teclaup, INPUT_PULLUP);//foi programado teclaup como entrada
pinMode(tecladown, INPUT_PULLUP);//foi programado tecladown como entrada
}
//FUNÇÕES COMPLEMENTARES
//PROGRAMA PRINCIPAL
void loop() { //os leds ficarão piscando alternadamente
tempo = (tempo - !digitalRead(teclaup)*10);//quando teclaup for precionado adicionará 10ms
tempo = (tempo + !digitalRead(tecladown)*10);//quando tecladown for precionado diminuirá 10ms
digitalWrite(led1, HIGH);//led1 foi aceso
digitalWrite(led2, LOW);//led2 foi apagado
delay(tempo);//foi dada uma pausa entre um led aceso e outro apagado
digitalWrite(led1, LOW);//led1 foi apagado
digitalWrite(led2,HIGH);//led2 foi aceso
delay(tempo);//foi dada uma pausa entre um led aceso e outro apagado
}
//By André Luis Caetano
Re: Exercício 1.8
Qua maio 06, 2020 8:56 pm
Oi André, Está correto, nota 10.0
É comum os programadores usarem os operadores de soma e atribuição += ou -= para essas contas, mas da forma que fez fica mais fácil de entender, e está correto.
É comum os programadores usarem os operadores de soma e atribuição += ou -= para essas contas, mas da forma que fez fica mais fácil de entender, e está correto.
Permissões neste sub-fórum
Não podes responder a tópicos
|
|