Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Nesta lição, usaremos um servo motor, um fotorresistor e um resistor pull-down para montar um sistema de fonte de luz de rastreamento automático.
Etapa 1: Componentes:
- Placa Arduino Uno * 1
- Cabo USB * 1
- Servo motor * 1
- fotorresistor * 1
- Resistor (10k) * 1
- Breadboard * 1
- Fios de ligação
Etapa 2: Princípio
O servo motor e o fotorresistor fazem a varredura e procuram a fonte de luz em 180 graus e registram a localização da fonte de luz. Após terminar a digitalização, o servo motor e o fotorresistor param na direção da fonte de luz.
Etapa 3: Procedimentos:
Passo 1:
Construa o circuito.
Passo 2:
Baixe o código em
Etapa 3:
Faça upload do esboço para a placa Arduino Uno
Clique no ícone Upload para fazer upload do código para o painel de controle.
Se "Upload concluído" aparecer na parte inferior da janela, significa que o esboço foi carregado com sucesso.
Agora, se você usar uma lanterna para iluminar o fotorresistor, verá o servo motor e o fotorresistor girando e, finalmente, parar na direção da fonte de luz.
Etapa 4: Diagrama Esquemático
Etapa 5: Código
/********************************************************************
* nome:
Rastreando Automaticamente a Fonte de Luz
* função
: se você usar uma lanterna para iluminar o fotorresistor, * você verá
o servo motor e o fotorresistor giram, * e finalmente
pare na direção da fonte de luz.
***********************************************************************
/ Email: [email protected]
// Site: www.primerobotics.in
#incluir
const int photocellPin = A0;
/************************************************/
Servo myservo; // cria objeto servo para controlar um servo
int outputValue = 0;
ângulo interno = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160, 170, 180};
int maxVal = 0;
int maxPos = 0;
/*************************************************/
void setup ()
{
Serial.begin (9600);
myservo.attach (9); // anexa o servo no pino 9 ao objeto servo
}
/*************************************************/
void loop ()
{
para (int i = 0;
i <19; i ++)
{
myservo.write (angle ); // escreve o ângulo para servo
outputValue
= analogRead (photocellPin); // ler o valor de A0
Serial.println (outputValue); // imprima
if (outputValue> maxVal) // se o valor atual de A0 for maior que o anterior
{
maxVal = outputValue; // anote o valor
maxPos
= i; //
}
atraso (200);
}
myservo.write (angle [maxPos]); // escreve o ângulo para o servo que A0 tem maior valor
enquanto (1);
}