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.8 Empty Diogo Saraiva Exercício 1.8

Qui Mar 21, 2024 3:41 pm
/*
* 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 5 //Definido que o pino 5 vai chamar-se "tecladown"

//DECLARAcAO DE VARIAVEIS
byte tempo = 10;//Variável do tipo byte, chamada tempo e que vale 10

//INICIALIZAÇÃO DO HARDWARE
void setup() {
pinMode(led1, OUTPUT);//Define que o led1 sera saída
pinMode(led2, OUTPUT);//Define que o led2 sera saída
pinMode(teclaup, INPUT_PULLUP);//Define que a teclaup sera entrada, pois e um sensor de pressão
pinMode(tecladown, INPUT_PULLUP);//Define que a tecladown sera entrada, pois e um sensor de pressão
}
//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL
void loop() {
tempo -= !digitalRead(teclaup)*10;//Define que a variável tempo e igual a ela mesmo menos o valor quando a teclaup esta pressionada vezes 10 (tempo = tempo - teclaup * 10), como tempo e igual ao delay, se o tempo for menor, mais os leds vão piscar
tempo += !digitalRead(tecladown)*10;//Define que a variável tempo e igual a ela mesmo mais o valor quando a tecladown esta pressionada vezes 10 (tempo = tempo + teclaup * 10), como tempo e igual ao delay, se o tempo for maior, menos os leds vão piscar
digitalWrite(led1, HIGH);//Liga o led1
digitalWrite(led2, LOW);//desliga o led2
delay(tempo);//Espera o valor da variavel tempo em milissegundos
digitalWrite(led1, LOW);//Desliga o led1
digitalWrite(led2, HIGH);//Liga o led2
delay(tempo);//Espera o valor da variável tempo em milissegundos
}
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.8 Empty Re: Diogo Saraiva Exercício 1.8

Sáb Jun 08, 2024 9:23 am
Muito bom Diogo, esse tem essa parte aritmética associada aos pinos. nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos