Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Panel de seguidor solar de doble eje con modo automático y manual

Componentes y suministros

Arduino UNO
× 1
Potenciómetro giratorio (genérico)
× 2
LED (genérico)
× 2
Interruptor de botón SparkFun de 12 mm
× 1
Servos (Tower Pro MG996R)
× 2
Foto resistor
× 4
Resistencia de 10k ohmios
× 5
Resistencia 221 ohm
× 2

Herramientas y máquinas necesarias

Soldador (genérico)

Aplicaciones y servicios en línea

Autodesk Tinkercad
Arduino IDE

Acerca de este proyecto

Este es un proyecto que mis alumnos implementaron durante el club nocturno Young Hackers 2017-2018. Es un proyecto exigente para los estudiantes de primaria y nos llevó muchas reuniones lograrlo. Contiene un pequeño panel solar de 5 V que puede girar en dos ejes para obtener la máxima potencia del sol. El proyecto se basa en el proyecto de seguimiento solar de doble eje de OpenSourceClassroom.

Queríamos implementar dos modos en el producto final.

  • Un modo manual, controlado por dos ollas.
  • Un modo automático, controlado con cuatro sensores de luz.

Para lograrlo programamos el dispositivo para cambiar entre modos con la ayuda de un pulsador y dos leds indicadores. Cuando el dispositivo está en modo manual la luz roja está encendida y podemos controlar la rotación del panel en dos ejes con la ayuda de dos potenciómetros. Cuando el dispositivo está en modo automático, la luz azul está encendida y la rotación del panel está determinada por la luz recolectada de los cuatro LDR. La programación se hizo en tinkercad.

Los estudiantes trabajaron en grupos en un estilo de línea de producción para completar las tareas. (soldadura de alambre, aislamiento de alambre, atornillado de piezas, etc.).

Código

  • Código de panel solar giratorio
Código de panel solar giratorio Arduino
El código final del panel solar de doble eje
 #include  // Inicializar variablesint mode =0; int buttonState =0; int prevButtonState =0; int topLeftLight =0; int topRightLight =0; int bottomLeftLight =0; int bottomRightLight =0; int LeftLight =0; int RightLight =0; int TopLight =0; int BottomLight =0; // Declarar dos servosServo servo_9; Servo servo_10; void setup () { pinMode (7, ENTRADA); // Botón de modo pinMode (12, SALIDA); // Indicador LED para modo manual pinMode (11, OUTPUT); // Indicador LED para modo automático pinMode (A0, INPUT); // Potenciómetro para movimiento derecha-izquierda pinMode (A1, INPUT); // Potenciómetro para movimiento arriba-abajo pinMode (A2, INPUT); // Sensor de luz arriba - pinMode izquierdo (A3, INPUT); // Sensor de luz arriba - pinMode derecho (A4, INPUT); // Sensor de luz inferior - pinMode izquierdo (A5, INPUT); // Sensor de luz inferior - derecho servo_9.attach (9); // Servomotor derecha - izquierda movimiento servo_10.attach (10); // Movimiento arriba-abajo del servomotor} void loop () {buttonState =digitalRead (7); if (buttonState! =prevButtonState) {if (buttonState ==HIGH) {// Cambia el modo y enciende el indicador correcto if (mode ==1) {mode =0; escritura digital (12, ALTA); digitalWrite (11, BAJO); } else {modo =1; escritura digital (11, ALTA); digitalWrite (12, BAJO); }}} prevButtonState =buttonState; retraso (50); // Espere 50 milisegundos (s) if (mode ==0) {// Si el modo es manual, asigne los valores del potenciómetro a los grados de rotación servo_9.write (map (analogRead (A0), 0, 1023, 0, 180) ); servo_10.write (mapa (analogRead (A1), 0, 1023, 0, 180)); } else {// si el modo es, mapee automáticamente los valores del sensor a 0-100 de intensidad de luz. // Cada sensor de luz tiene una sensibilidad diferente y debe probarse primero // para sus valores altos y bajos topLeftLight =map (analogRead (A2), 50,980,0,100); topRightLight =map (analogRead (A3), 200,990,0,100); bottomLeftLight =map (analogRead (A4), 170,970,0,100); bottomRightLight =map (analogRead (A5), 250,1000,0,100); // Calcula las condiciones de luz promedio TopLight =((topRightLight + topLeftLight) / 2); BottomLight =((bottomRightLight + bottomLeftLight) / 2); Luz izquierda =((luz superior izquierda + luz inferior izquierda) / 2); RightLight =((topRightLight + bottomRightLight) / 2); // Gire los servos si es necesario if (abs ((RightLight - LeftLight))> 4) {// Cambie la posición solo si la diferencia de luz es mayor que 4% if (RightLight  LeftLight) {if (servo_9.read ()> 0) {servo_9.write ((servo_9.read () - 1)); }}} if (abs ((TopLight - BottomLight))> 4) {// Cambie la posición solo si la diferencia de luz es mayor que 4% if (TopLight  BottomLight) {if (servo_10.read ()> 0) {servo_10.write ((servo_10.read () + 1)); }}}}} 

Esquemas

Esquema de cableado

Proceso de manufactura

  1. Sensor DHT11 con LED y altavoz piezoeléctrico
  2. Sensor de obstáculos simple con Arduino
  3. Seguidor solar V2.0
  4. Seguidor solar basado en Internet de las cosas (IoT)
  5. Cubo LED 4x4x4 con Arduino Uno y 1sheeld
  6. Contador de RPM basado en Arduino con un algoritmo nuevo y más rápido
  7. Galvanoplastia con cobre
  8. Medición de la radiación solar con Arduino
  9. Tarjeta lógica digital
  10. Plataforma de paneles solares con seguimiento de luz y servocontrolados
  11. Panel solar:problemas de calidad y puntos clave de control