Material Utilizado:
Código
//Projeto Servo motor e LCD 16x2
//EduArduino
#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(12,11,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 = 8;
//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);
}