Uma das diferenças de um robô para um aparelho eletrônico comum é que o robô se movimenta para realizar tarefas. Para se movimentar um robô usa motores de diversos tipos, como motores de passo, motores de corrente contínua e servomotores. E no projeto arduino com servomotor robótico e display lcd faremos um servomotor se movimentar e também trataremos este movimentos exibindo as direções do braço do servomotor no display lcd. Como um dos nossos objetivo com os projetos em arduino, aqui do site ComoFazerAsCoisas, é chegar a construção de robôs de diversos tipos, estamos apresentando os princípios básicos, que quando unidos permitirão a construção de um robô completo.
O projeto arduino com servomotor e display lcd, permite que você controle os movimentos de um servomotor através de um potenciômetro giratório. Quando você gira o potenciômetro para um lado ou para o outro o braço do servomotor acompanha estes movimentos e ainda é mostrado no display lcd em tempo real em que direção o braço do servomotor está, no final deste post tem o vídeo que mostra este projeto em funcionamento.
Aplicando o princípio deste projeto você poderia por exemplo construir, por exemplo, um guincho robótico, ou um braço robótico.
Para desenvolver o projeto arduino com servomotor robótico e display lcd você vai precisar de:
O servomotor que usamos neste projeto é um microservo TG9E da Turnigy, que é um dos melhores custo/benefício do mercado. Ele é um servo bem pequeno e leve, tem um preço camarada, quando comparado a outros servos, e pode ser usado em muitos projetos de robótica. Este microservo também é muito usado em aeromodelos e carrinhos controle remoto. Nos potenciômetros desse projeto usei knobs para facilitar na hora de girá-los.
Então vamos começar! Segue abaixo o esquema do projeto, que servirá de base para a ligação entre todos os componentes e o arduino, e será nossa referência durante o desenvolvimento do projeto físico.
Segue abaixo o datasheet, detalhando a funcionalidade de cada pino, do display LCD JHD 162A que foi usado neste projeto.
Segue abaixo o detalhamento de como ligar o display LCD ao arduino.
Segue abaixo o detalhamento da ligação do servomotor e do potenciômetro que irá controlar o servomotor.
Lembrando que você poderá verificar o esquema de montagem do projeto no início deste post, que mostra com detalhes como foram feitas as ligações entre os componentes.
Bem, então depois de fazer todas as ligações entre os componentes, concluindo o projeto físico, chegou a hora de programar o arduino para que ele faça o controle do servomotor e também informe a posição do mesmo no display ldc. Então conecte o seu arduino ao computador, usando o cabo usb, e execute a IDE do arduino. Segue abaixo o código fonte completo e comentado deste projeto.
/* Projeto Arduino - servomotor com display lcd. Por Jota ---------------------------------------- --=<| www.ComoFazerAsCoisas.com.br |>=-- ---------------------------------------- */ #include "LiquidCrystal.h" //biblioteca para controle de telas LDCs #include "Servo.h" //biblioteca para controle de servomotores //Criando um objeto da classe LiquidCrystal e //inicializando com os pinos da interface. LiquidCrystal lcd(9, 8, 5, 4, 3, 2); Servo servoMotorObj; //Criando um objeto da classe Servo //pino analógico onde o potenciômetro está conectado int const potenciometroPin = 0; //pino digital associado ao controle do servomotor int const servoMotorPin = 12; //usada para armazenar o valor lido no potenciômetro int valPotenciometro; void setup() { //Inicializando o LCD e informando o tamanho de 16 colunas e 2 linhas //que é o tamanho do LCD JHD 162A usado neste projeto. lcd.begin(16, 2); //associando o pino digital ao objeto da classe Servo servoMotorObj.attach(servoMotorPin); } void loop() { //lendo o valor do potenciômetro (intervalo entre 0 e 1023) valPotenciometro = analogRead(potenciometroPin); //mapeando o valor do potenciômetro para a escala do servo (0 e 180) valPotenciometro = map(valPotenciometro, 0, 1023, 0, 180); //definindo o valor/posição do servomotor servoMotorObj.write(valPotenciometro); lcd.clear(); //limpa o display do LCD. lcd.print("Servomotor"); //imprime a string no display do LCD. lcd.setCursor(0,1); //posiciona o cursor na coluna 0 linha 1 do LCD. //Mostrando no lcd a posição do braço do servomotor if (valPotenciometro < 90) { lcd.print("Lado direito"); } if (valPotenciometro == 90) { lcd.print("Centro"); } if (valPotenciometro > 90) { lcd.print("Lado esquerdo"); } delay(30); }
Depois de copiar o código fonte na IDE compile e faça o upload para o arduino. Agora pronto, seu projeto está totalmente concluído, se você chegou até aqui parabéns! agora gire o potenciômetro para um lado e para o outro e veja que o braço do servomotor "segue" estes movimentos.
Para concluir e matar a curiosidade segue abaixo o vídeo do projeto arduino com servomotor e display lcd em funcionamento.
E se você gostou, curta, compartilhe, dê um gostei no vídeo e inscreva-se no nosso canal do YouTube para nos ajudar e sempre estar por dentro e acompanhar os novos projetos. Um grande abraço e valeu!