Neste projeto vamos controlar um servo utilizando um potenciômetro (projeto 25 do livro Arduino Básico de Michael McRoberts), porém, adicionei um lcd que ira mostrar a posição em graus do servo.
Materiais:
- Arduino Uno
- Servo motor (micro ou pequeno)
- 2 potenciômetros (100k para controlar o servo e 10k para ajustar o cursorlight do lcd)
- resistor limitador de corrente 220 ohm
- Display lcd 16x2 (verifique o datasheet do display para conectalo)
Código:
#include <Servo.h> // inclui a biblioteca servo
#include <LiquidCrystal.h> // inclui a biblioteca LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pinos conectados ao lcd
Servo servo1; //cria um servo
void setup() {
servo1.attach(8); // Anexa o servo (físico), no pino 5, ao objeto servo (lógico)
lcd.begin(16,2); // declara um lcd com 16 colunas e 2 linhas
}
void loop() {
int angle = analogRead(0); // Lê o valor do potenciômetro
angle=map(angle, 0, 1023, 0, 179); // Mapeia os valores de 0 a 180 graus
servo1.write(angle); // Escreve o ângulo para o servo
delay(15); // Espera de 15ms, para permitir que o servo atinja a posição
lcd.setCursor(0,0); /* define a posição do cursor */
lcd.print("Angulo: "); // printa Angulo
lcd.setCursor(7,1);
lcd.print(angle); /* printa a leitura do angulo de 0 a 180 */
if(angle < 10) { // se for menor que 10 apaga os digitos "sobrando"
lcd.setCursor(8,1);
lcd.print(" ");
}
if(angle < 100){
lcd.setCursor(9,1);
lcd.print(" ");
}
}
E sempre que você alterar o potenciômetro a posição do servo ira aparecer no lcd.
Excelentes tópicos, muita informações consegui aqui! estou construindo um braço robotico, esta quase pronto! quero mostrar as posições dos servo em display lcd 20x4 mas o lcd mostra alguns caracteres estranhos(parece letras japonesas).
ResponderExcluirex:
if (results.value == 16761405 || results.value == 2400 || results.value == 352)
if(pos1 < 179)
pos1 = pos1 + 1;
delay(35);
Serial.println("Posicao J1");
Serial.println(pos1);
lcd.setCursor(0,1);
lcd.print(pos1);
j1.write(pos1);
o que pode estar errado ? Obrigado e Excelente trabalho!
Obrigado Leandro, desculpa a demora pra responder, o blog esta meio parado pq a facul ta puxando rsrs
Excluirbom quando eu tive esse problema dos caracteres, era mal contado com o display LCD
Tem a necessidade de utilizar o potenciômetro para o LCD? Se sim qual a sua função?
ResponderExcluir