Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar

Componentes e Materiais Necessários

Componente Quantidade Observações
Arduino UNO 1 Controlador principal
Potenciômetro rotativo (genérico) 2 Para controle manual dos dois eixos
LED (genérico) 2 Indicadores: vermelho (manual), azul (automático)
Chave táctil 12mm (SparkFun) 1 Botão para alternar modo auto/manual
Servos Tower Pro MG996R 2 Movimento dos dois eixos (horizontal/vertical)
Fotorresistor (LDR) 4 Sensores de luz para rastreamento automático (canto sup. esq., sup. dir., inf. esq., inf. dir.)
Resistor 10kΩ 5 Pull-down para botão e divisores de tensão para LDRs
Resistor 221Ω 2 Limitadores de corrente para LEDs indicadores

Ferramentas Necessárias

Aplicativos e Serviços Online

Sobre o Projeto

Este é um projeto que meus alunos implementaram durante o clube noturno 2017-2018 "Young Hackers". É um projeto exigente para estudantes do ensino fundamental e levou muitas reuniões para ser concluído. Contém um pequeno painel solar de 5V que pode rotacionar em dois eixos para colher a máxima potência do sol. O projeto é baseado no Projeto Rastreador Solar de Dois Eixos do OpenSourceClassroom.

Queríamos implementar dois modos no produto final:

Para alcançar isso, programamos o dispositivo para alternar entre modos com a ajuda de um botão e dois LEDs indicadores. Quando o dispositivo está no modo manual, a luz vermelha acende e podemos controlar a rotação do painel em dois eixos com a ajuda de dois potenciômetros. Quando o dispositivo está no modo automático, a luz azul acende e a rotação do painel é determinada pela luz coletada pelos quatro LDRs. A programação foi feita no Tinkercad.

Os alunos trabalharam em grupos em estilo de linha de produção para completar as tarefas (soldagem de fios, isolamento de fios, parafusamento de peças, etc.).

Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar
Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar
Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar
Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar
Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar

Código

#include <Servo.h>

// Inicializa variáveis
int mode = 0;              // 0 = manual, 1 = auto
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;

// Declara dois servos
Servo servo_9;  // Servo movimento horizontal (direita-esquerda)
Servo servo_10; // Servo movimento vertical (cima-baixo)

void setup() {
  pinMode(7, INPUT);       // Botão de modo
  pinMode(12, OUTPUT);     // LED indicador modo manual (vermelho)
  pinMode(11, OUTPUT);     // LED indicador modo auto (azul)
  pinMode(A0, INPUT);      // Potenciômetro movimento horizontal
  pinMode(A1, INPUT);      // Potenciômetro movimento vertical
  pinMode(A2, INPUT);      // Sensor luz canto superior esquerdo
  pinMode(A3, INPUT);      // Sensor luz canto superior direito
  pinMode(A4, INPUT);      // Sensor luz canto inferior esquerdo
  pinMode(A5, INPUT);      // Sensor luz canto inferior direito
  
  servo_9.attach(9);   // Servo horizontal no pino 9
  servo_10.attach(10); // Servo vertical no pino 10
}

void loop() {
  buttonState = digitalRead(7);
  
  // Detecção de borda do botão (mudança de estado)
  if (buttonState != prevButtonState) {
    if (buttonState == HIGH) {
      // Alterna modo e acende indicador correto
      if (mode == 1) {
        mode = 0;
        digitalWrite(12, HIGH); // LED vermelho - manual
        digitalWrite(11, LOW);
      } else {
        mode = 1;
        digitalWrite(11, HIGH); // LED azul - automático
        digitalWrite(12, LOW);
      }
    }
  }
  
  prevButtonState = buttonState;
  delay(50); // Debounce de 50ms
  
  if (mode == 0) {
    // MODO MANUAL: mapeia valores dos potenciômetros para graus de rotação
    servo_9.write(map(analogRead(A0), 0, 1023, 0, 180));
    servo_10.write(map(analogRead(A1), 0, 1023, 0, 180));
  } else {
    // MODO AUTOMÁTICO: mapeia valores dos sensores para intensidade 0-100
    // Cada sensor de luz tem sensibilidade diferente e deve ser testado
    // primeiro para seus valores alto e baixo
    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 condições médias de luz
    TopLight    = (topRightLight + topLeftLight) / 2;
    BottomLight = (bottomRightLight + bottomLeftLight) / 2;
    LeftLight   = (topLeftLight + bottomLeftLight) / 2;
    RightLight  = (topRightLight + bottomRightLight) / 2;
    
    // Rotaciona servos se necessário
    // Move horizontal apenas se diferença de luz > 4%
    if (abs(RightLight - LeftLight) > 4) {
      if (RightLight < LeftLight) {
        if (servo_9.read() < 180) {
          servo_9.write(servo_9.read() + 1);
        }
      }
      if (RightLight > LeftLight) {
        if (servo_9.read() > 0) {
          servo_9.write(servo_9.read() - 1);
        }
      }
    }
    
    // Move vertical apenas se diferença de luz > 4%
    if (abs(TopLight - BottomLight) > 4) {
      if (TopLight < BottomLight) {
        if (servo_10.read() < 180) {
          servo_10.write(servo_10.read() - 1);
        }
      }
      if (TopLight > BottomLight) {
        if (servo_10.read() > 0) {
          servo_10.write(servo_10.read() + 1);
        }
      }
    }
  }
}

Esquemático

Rastreador Solar de Dois Eixos com Controle Automático e Manual - Sistema Eficiente de Rastreamento Solar
Diagrama de fiação completo do rastreador solar de dois eixos

Notas importantes:

Processo de manufatura

  1. Projeto DHT11: Sensor Temperatura/Umidade com LEDs Indicadores e Buzzer
  2. Construa um Sensor de Obstáculos Simples com Arduino – Tutorial Fácil com LED IR e Fotodiodo
  3. Rastreador Solar V2.0 – Sistema Avançado de Rastreamento Solar DIY
  4. Rastreador Solar IoT: Gestão Inteligente de Energia com Arduino
  5. Construa um Cubo de LED 4x4x4 com Arduino Uno e 1Sheeld – Projeto Interativo de LED
  6. Contador de RPM Arduino de Alta Velocidade com Algoritmo Inovador
  7. Projeto de Galvanoplastia de Cobre: Construa um Sistema Inteligente com Arduino UNO
  8. Medição Precisa de Radiação Solar com Arduino UNO e Ethernet Shield
  9. Plataforma de Rastreamento Solar de Precisão com Servos para Captura Ótima de Energia
  10. Qualidade de Painéis Solares: Pontos de Controle Essenciais para Desempenho Ótimo