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

Ir para baixo
avatar
George
Mensagens : 27
Data de inscrição : 02/08/2022
Escola : Murici

exercício 1.15 Empty exercício 1.15

Sáb Set 17, 2022 9:37 am
/*
* 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 led2 4
#define led3 5
#define led4 6
#define led5 7
#define led6 8
#define trimpot A0
//DECLARAcAO DE VARIAVEIS GLOBAIS
int brilho;

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);

}

//FUNÇÕES COMPLEMENTARES


//PROGRAMA PRINCIPAL

void loop() {


brilho = analogRead(trimpot)/4;
analogWrite(led1,brilho);
Serial.println(led1, brilho);
delay (200);
brilho=analogRead(trimpot)/4;
analogWrite(led2, brilho);
Serial.println(led2, brilho);1
delay (200);
brilho = analogRead(trimpot)/4;
analogWrite(led1,brilho);
Serial.println(led1, brilho);
delay (200);
brilho=analogRead(trimpot)/4; //todos vao: dizer que brilho = (ler o trimpot) dividido por 4
analogWrite(led3, brilho);
Serial.println(led3, brilho);
delay (200);
brilho = analogRead(trimpot)/4;
analogWrite(led4,brilho);
Serial.println(led4, brilho);
delay (200);
brilho=analogRead(trimpot)/4;
analogWrite(led5, brilho);
Serial.println(led5, brilho);
delay (200);
brilho = analogRead(trimpot)/4;
analogWrite(led6,brilho);
Serial.println(led6, brilho);
delay (200);







}
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

Seg Set 19, 2022 9:10 pm
George, o controle da velocidadev do sequencial acontece no delay,(), quanto maior o delay mais lentop e quanto menor o delay mais rápido o sequencial, certo? Então tem que afetar o valor do delay para controlar a velocidade.
Detalhe 2 , não precisa dividir por 4 o valor do trimpot, é para controlar tempo e não pino PWM
Detalhe 3, não precisa ficar lendo o trimpot a cada troca, mas se foi proposital pode deixar que considero.
Detalhe 4 pode fazer comentários no bloco se quiser, desde que detalhe o funcionamento do programa.
Nota 5.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos