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

Ir para baixo
gustavocruz
gustavocruz
Mensagens : 255
Data de inscrição : 12/05/2019
Idade : 16

exercicio 5.1.4 Empty exercicio 5.1.4

Seg Out 09, 2023 3:45 pm
/*
* CURSO DE ROBOTICA 2023
*
* Exercicio: 5.1.4
* Tema: Controle do Servo pelo Teclado e Trimpot
* Atividade: Usar o teclado para movimentar o servo para direita e Esquerda e o Trimpot para controlar a Velocidade
* Descrição: Quando pressionar as teclas o servo devera se movimentar na velocidade ajustada pelo trimpot
* Hardware: Conectar o servo na placa, ligar as teclas no Arduino e o trimpot na entrada analógica
* Comandos: if(), digitalRead(), servo.write(), while(), analogRead()
* Dica1: Pode usar o while() para detectar a tecla pressionada e incrementar a variável de posição do servo
* Dica2: Quando o valor da variável chegar ao valor máximo usar um if() para cessar o incremento
* Dica3: Usar o trimpot para controlar o valor do delay() para ajustar a velocidade.
* Dica4: Calcular o tempo de delay mínimo para a velocidade angular do servo informado no datasheet e comprovar os dados
*/
#include
#define trimpot A1


#define tecla 8
#define tecla1 9
int rimpot;

Servo servo; //nomeia o serrvo
byte posiçao = 0;//variavel para a posiçao


void setup() {
// put your setup code here, to run once:
pinMode(tecla, INPUT_PULLUP);
pinMode(tecla1, INPUT_PULLUP);
pinMode(trimpot, INPUT);

servo.attach(7);//indica o pino do servo
}

void loop() {
while(!digitalRead(tecla)){//enquanto o batao estiver precionado
if(posiçao == 180) posiçao = 179;//se for igual a 180 volta uma casinha
posiçao ++;//aumenta uma posiçao
rimpot = map(analogRead(trimpot), 0, 1023, 1, 100);//faz a conversao do valor do trimpot para o valor de tempo
servo.write(posiçao);//muda a posiçao
delay(rimpot);//delay usando o trimpo
}
while(!digitalRead(tecla1)){//se for igual a 180 volta uma casinha
if(posiçao == 0) posiçao = 1;//se for igual a 0 volta uma pra 1
posiçao --;//diminui uma posiçao
rimpot = map(analogRead(trimpot), 0, 1023, 1, 100);//faz a conversao do valor do trimpot para o valor de tempo
servo.write(posiçao);//muda a posiçao
delay(rimpot);//delay delay usando o trimpot
}
}
Paulo Augusto Batista
Paulo Augusto Batista
Admin
Mensagens : 5715
Data de inscrição : 11/02/2019
Idade : 53
Escola : Colegio Lindaura
https://roboticalivre.forumeiros.com

exercicio 5.1.4 Empty Re: exercicio 5.1.4

Dom Dez 03, 2023 3:26 pm
Muito bom Gustavo, isso mesmo que esperava. Controlando o tempo vai mudar a velocidade que ele se movimenta. Nota 10.0
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos