Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
En esta lección, usaremos un servomotor, un fotorresistor y un resistor desplegable para ensamblar un sistema de fuente de luz de seguimiento automático.
Paso 1: Componentes:
- Placa Arduino Uno * 1
- Cable USB * 1
- Servomotor * 1
- fotorresistencia * 1
- Resistencia (10k) * 1
- Tablero de pruebas * 1
- Cables de puente
Paso 2: Principio
El servomotor y el fotoresistor escanean y buscan la fuente de luz en 180 grados y registran la ubicación de la fuente de luz. Después de terminar el escaneo, el servomotor y la fotorresistencia se detienen en la dirección de la fuente de luz.
Paso 3: Procedimientos:
Paso 1:
Construye el circuito.
Paso 2:
Descarga el código de
Paso 3:
Sube el boceto a la placa Arduino Uno
Haga clic en el icono Cargar para cargar el código en el tablero de control.
Si aparece "Carga finalizada" en la parte inferior de la ventana, significa que el boceto se cargó correctamente.
Ahora, si usa una linterna para iluminar el fotorresistor, verá que el servomotor y el fotorresistor giran y finalmente se detienen en la dirección de la fuente de luz.
Paso 4: diagrama esquemático
Paso 5: Código
/********************************************************************
* nombre:
Seguimiento automático de la fuente de luz
* función
: si usa una linterna para iluminar la fotorresistencia, * ya verás
el servomotor y el fotorresistor giran, * y finalmente
deténgase en la dirección de la fuente de luz.
***********************************************************************
/ Correo electrónico: [email protected]
// Sitio web: www.primerobotics.in
#incluir
const int photocellPin = A0;
/************************************************/
Servo myservo; // crea un objeto servo para controlar un servo
int outputValue = 0;
ángulo int = {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;
/*************************************************/
configuración vacía ()
{
Serial.begin (9600);
myservo.attach (9); // adjunta el servo en el pin 9 al objeto servo
}
/*************************************************/
bucle vacío ()
{
para (int i = 0;
i <19; i ++)
{
myservo.write (angle ); // escribe el ángulo en el servo
outputValue
= analogRead (photocellPin); // leer el valor de A0
Serial.println (outputValue); // imprimirlo
if (outputValue> maxVal) // si el valor actual de A0 es mayor que el anterior
{
maxVal = outputValue; // anote el valor
maxPos
= yo; //
}
retraso (200);
}
myservo.write (angle [maxPos]); // escribe el ángulo del servo en el que A0 tiene el mayor valor
mientras (1);
}