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

Ir para baixo
Gigio
Gigio
Mensagens : 68
Data de inscrição : 09/03/2022
Idade : 16
Escola : Colegio Estadual Professor Lindaura Ribeiro Lucas

Exercício 1.15 Empty Exercício 1.15

Seg maio 02, 2022 3:32 pm

/*
CURSO DE ROBOTICA 2019

Exercicio: 1.15
Tema: Pinos Analógicos
Atividade: Controlar a velocidade do sequencial conforme a posição do trimpot
Descrição: Usar uma entrada analógica para medir a iposição do trimpot e usar esse valor para ajustar a velocidade
Requisito1: A cada troca de estado deve ser atualizado o tempo confoeme posição do trimpot
Requisito2: A variação de tempo deve ser inversamente proporcional ao valor do trimpot, ou seja, quanto maior o valor do trimpot menos rápido o sequencial
Hardware: Ligar os leds nos pino digitais configurado como SAÍDA DIGITAL e o TRIMPOT em uma entrada analógica
Comandos: pinMode(), analogRead(), digitalWrite(),delay(), map()
Dica1:A o conversor analógico possui 10 bits ou seja de 0 até 1024
Dica2: Usar a função debug() para checar as variações de valor do trimpot no pino analógico
Dica3:Pode usar a função map() para converter a variação dos valores lidos no trimpot para as variações de tempo desejadas
Dica4: Pode usar uma função para fazer a leitura do trimpot e temporização do sequencial
*/

//DEFINICOES INICIAIS
#define led1 3 //Define o LED 1 como pino 3,
#define led2 5 //Define o LED 2 como pino 5,
#define led3 6 //Define o LED 3 como pino 6,
#define led4 9 //Define o LED 4 como pino 9,
#define led5 10 //Define o LED 5 como pino 10,
#define led6 11 //Define o LED 6 como pino 11,
#define trimpot A1 //Define o trimpot como pino Analógico 1.

//DECLARAcAO DE VARIAVEIS GLOBAIS
int lights; //Ah yes, now i'm speaking english, well its just a variable with a normal english name, don't worry.

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600); //Inicia o monitor serial,
pinMode(led1, OUTPUT); //Define o LED 1 como OUTPUT,
pinMode(led2, OUTPUT); //Define o LED 2 como OUTPUT,
pinMode(led3, OUTPUT); //Define o LED 3 como OUTPUT,
pinMode(led4, OUTPUT); //Define o LED 4 como OUTPUT,
pinMode(led5, OUTPUT); //Define o LED 5 como OUTPUT,
pinMode(led6, OUTPUT); //Define o LED 6 como OUTPUT.
}

//FUNÇÕES COMPLEMENTARES

void LeitorTrimpot() { //Função para ler o trimpot.
lights = map(analogRead(trimpot),0,1023,0,600); //Defines the definitely fine "lights" variable as the trimpot's value, using MAP to re-scale it to a more pleasant value.
}

void debuggers() { //Sim, debugar novamente.
Serial.println(lights); //Just printing the totally normal lights variable, definitely do not worry.
Serial.print("Tempo :"); //Descreve a variável lights como Tempo: antes de mandar ela.
}

void luzinhas() { //Oh ma gawd função pra luzinhas.
digitalWrite(led1, HIGH); //Liga o LED 1,
digitalWrite(led6, LOW); //Desliga o LED 6,
delay(lights); //Delay using the totally normal "Lights" variable,
digitalWrite(led1, LOW); //Desliga o LED 1,
digitalWrite(led2, HIGH); //Liga o LED 2,
delay(lights); //Delay using the totally normal "Lights" variable,
digitalWrite(led2, LOW); //Desliga o LED 2,
digitalWrite(led3, HIGH); //Liga o LED 3,
delay(lights); //Delay using the totally normal "Lights" variable,
digitalWrite(led3, LOW); //Desliga o LED 3,
digitalWrite(led4, HIGH); //Liga o LED 4,
delay(lights); //Delay using the totally normal "Lights" variable,
digitalWrite(led4, LOW); //Desliga o LED 4,
digitalWrite(led5, HIGH); //Liga o LED 5,
delay(lights); //Delay using the totally normal "Lights" variable,
digitalWrite(led5, LOW); //Desliga o LED 5,
digitalWrite(led6, HIGH); //Liga o LED 6,
delay(lights); //Delay using the totally normal "Lights" variable.
}

//PROGRAMA PRINCIPAL
void loop() {
LeitorTrimpot(); //Invoca o LeitorTrimpot();
debuggers(); //Invoca o debuggers();
luzinhas(); //Invoca as luzinhas();
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5039
Data de inscrição : 11/02/2019
Idade : 52
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

Exercício 1.15 Empty Re: Exercício 1.15

Sáb maio 07, 2022 12:01 am
Oi Giovani, Esse exercício deu certo. Porque o trimpot tem de um lado da escala 0V e no outro lado 5V, então a variação vai de 0 a 1023. E o programa ficou correto na parte lógica e na calibração.
Nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos