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

Ir para baixo
NicolasToledo
NicolasToledo
Mensagens : 76
Data de inscrição : 02/03/2020
Idade : 17

Exercício 1.8 Empty Exercício 1.8

Seg Jun 22, 2020 9:51 pm
Código:
 /*
* 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;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(teclaup, INPUT_PULLUP);
pinMode(tecladown, INPUT_PULLUP);
}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
 tempo -= !digitalRead(teclaup)*10; //Quando precionada a teclaup diminúira o tempo do pisca
 tempo += !digitalRead(tecladown)*10; //Quando precionada a tecladown diminúira o tempo do pisca
digitalWrite(led1, HIGH); //liga o led1
digitalWrite(led2, LOW); //desliga o led2
delay(tempo);
digitalWrite(led1, LOW); //desliga o led1
digitalWrite(led2, HIGH); //liga o led2
delay(tempo);
}


Última edição por NicolasToledo em Qua Jul 08, 2020 12:10 pm, editado 1 vez(es)
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5785
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.8 Empty Re: Exercício 1.8

Ter Jun 23, 2020 11:59 pm
Nicolas,

Quando usar o operador de soma e atribuição não precisa o igual na frente do operador, usa somente -= ou +=
Interpreta através de comentário esse comando de soma e atribuição, ele é o mais importante desse programa.
O restante parece que está correto, faça o teste do programa para comprovar.

Por enquanto vou dar nota 4.0 e aguardo a correção para melhorar a nota.
NicolasToledo
NicolasToledo
Mensagens : 76
Data de inscrição : 02/03/2020
Idade : 17

Exercício 1.8 Empty Re: Exercício 1.8

Seg Jul 27, 2020 2:01 pm
Corrigi, agora está certo, não?
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5785
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.8 Empty Re: Exercício 1.8

Qui Jul 30, 2020 9:42 pm
Nicolas, Está quase certo e veja porque,
O código está correto, fez todos os comandos de forma correta e colocou os comentários
No tempo que usou para temporizar colocou 10ms, esse tempo é muito pequeno e o pisca fica tão rápido que não consegue perceber que está piscando.
A retina humana tem uma latência que nos impede de perceber variações de imagem em uma frequencia acima de 20HZ (50ms), graças a isso temos a sensação de movimento na tv e cinema,
Então apesar do programa estar correto a calibração está errada, e não percebe-se o pisca-pisca.
Nota 9.0
Conteúdo patrocinado

Exercício 1.8 Empty Re: Exercício 1.8

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