Esta é uma forma simples de você fazer um servo motor seguir a luz, usando alguns simples componentes!
O vídeo original é feito com um ArduinoMEGA, o qual tem mais I/O (entradas e saídas). Todavia pode ser construído com qualquer base “Arduinana”.
Componentes:
1 x Servo motor (Parabólica serve também)
2 x Fotoresistores
2 x Resistor 470ohms
Faça as ligações como descrito no esquema do FRITIZING acima.
Lembre-se que a gambiarra aqui é colocar de alguma forma uma pequena protoboard em cima do servo! Ou fica a vontade para usar a imaginação! (veja vídeo topo pagina)
#include <Servo.h>Qualquer dúvida por favor comente, seu feedback é muito importante!
Servo myservo;
int pos = 0; // Variavel para guardar posicao servo.
int inputPhotoLeft = 1; // Facil de ler, instante 1 ou 0.
int inputPhotoRight = 0;
int Left = 0; // Guarda valor fotoresistor.
int Right = 0; // Guarda valor fotoresistor.
void setup()
{
myservo.attach(9); // Conecta servo ao pino digital 9.
}
void loop()
{
// Le os valores dos fotoresistores e guarda nas variaveis
Left = analogRead(inputPhotoLeft);
Right = analogRead(inputPhotoRight);
// Checa se a esquerda é maior que direita, se sim move p/ direita.
if (Left > (Right +20))
// +20 é uma zona morta, sem isso causa interferencia.
{
if (pos < 179)
pos++;
myservo.write(pos);
}
// Checa se a esquerda é menor que a direita, se sim move esquerda.
if (Right > (Left +20))
// +20 é uma zona morta, sem isso causa interferencia.
{
if (pos > 1)
pos -= 1;
myservo.write(pos);
}
// Adicionando delay ou não o servo corre mais devagar
delay(10);
}
Créditos, http://stigern.net/blog/?cat=35
Nenhum comentário:
Postar um comentário