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
mateus martins kunz
Mensagens : 45
Data de inscrição : 17/09/2021
Escola : escola estadual lindaura ribeiro lucas

exercicio 1.15 Empty exercicio 1.15

Ter Set 13, 2022 2:25 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 que o pino 3 vai se chamar led1
#define led2 4 //define que o pino 4 vai se chamar led2
#define led3 5 //define que o pino 5 vai se chamar led3
#define led4 6 //define que o pino 6 vai se chamar led4
#define led5 7 //define que o pino 7 vai se chamar led5
#define led6 8 //define que o pino 8 vai se chamar led6
#define trimpot A0//define que o pino A0 vai se chamar trimpot

//DECLARAcAO DE VARIAVEIS GLOBAIS
int bola;//variavel do tipo int

//INICIALIZAÇÃO DO HARDWARE
void setup() {
Serial.begin(9600);//vai encaminhar para o terminal
pinMode(led1, OUTPUT);//led1 definido como saida
pinMode(led2, OUTPUT);//led2 definido como saida
pinMode(led3, OUTPUT);//led3 definido como saida
pinMode(led4, OUTPUT);//led4 definido como saida
pinMode(led5, OUTPUT);//led5 definido como saida
pinMode(led6, OUTPUT);//led6 definido como saida
}

//FUNÇÕES COMPLEMENTARES
void debug(){
Serial.print("bola = ");//imprime o resultado
Serial.println(bola);//faz com que os resultados saiam na mesma linha
}

//PROGRAMA PRINCIPAL
void loop() {
bola = map(analogRead(trimpot), 279, 930, 255, 0);//conclui a leitura do trimpot e ajusta a escala calibrando a mesma
debug();
digitalWrite(led1,HIGH);//liga o led1
delay(bola);//espaço de tempo definido pela ''bola''
digitalWrite(led1,LOW);//desloiga o led1
digitalWrite(led2,HIGH);//ligao led2
delay(bola);//espaço de tempo definido por bola
digitalWrite(led2,LOW);//desliga o led2
digitalWrite(led3,HIGH);//liga o led3
delay(bola);//espaço de tempo definido por bola
digitalWrite(led3,LOW); //desliga o led3
digitalWrite(led4,HIGH);//liga o led4
delay(bola);//espaço de tempo definido por bola
digitalWrite(led4,LOW);//desliga o led4
digitalWrite(led5,HIGH);//liga o led5
delay(bola);//espaço de tempo definido po bola
digitalWrite(led5,LOW);//desliga o led5
digitalWrite(led6,HIGH);//liga o led6
delay(bola);//espaço de tempo
digitalWrite(led6,LOW);//desliga o led1
}
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

exercicio 1.15 Empty Re: exercicio 1.15

Qua Set 14, 2022 8:16 pm
Mateus, o programa está com a lógica correta mas o entendimento da função map() e as calibrações da forma que usou não está correta. Vou dar nota 8.0 e passar umas orientações.
1 - Quando usa o map() precisa calibrar o sensor que está usando o procedimento é assim:
- Liga o trimpot na porta analógica, configura o debug para esse pino.
- Depois liga a placa e vira o trimpot todo para o inicio e anota o valor, depois vira todo até o fim e anota o valor.
- Os valores anotados vai usar na entrada da função map()
- Na saída da função map() vai usqar os valores que quer usar para o tempo. os valores de 0 a 255 são usados em pinos PWM e não são mais adequados para o tempo.

_________________
Paulo Augusto Batista
Tecnologia a Favor do Ensino, Educação para nossas crianças, Evolução para Nossa Sociedade
exercicio 1.15 Evoluc10
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos