Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking

Komponenten und Zubehör

Arduino UNO ×1
Drehpotentiometer (generisch) ×2
LED (generisch) ×2
SparkFun Taster 12 mm ×1
Servos (Tower Pro MG996R) ×2
Fotowiderstand (LDR) ×4
10-kΩ-Widerstand ×5
221-Ω-Widerstand ×2

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über dieses Projekt

Dies ist ein Projekt, das meine Schüler während des Abendclubs „Young Hackers“ 2017-2018 umgesetzt haben. Es ist ein anspruchsvolles Projekt für Grundschüler und hat uns viele Treffen gekostet, um es zu vollenden. Es enthält ein kleines 5V-Solarpanel, das sich in zwei Achsen drehen kann, um maximale Leistung aus der Sonne zu gewinnen. Das Projekt basiert auf dem „Dual Axis Solar Tracker Project“ von OpenSourceClassroom.

Wir wollten zwei Modi im Endprodukt implementieren:

Um das zu erreichen, haben wir das Gerät so programmiert, dass es per Tastendruck und zwei Anzeige-LEDs zwischen den Modi wechselt. Im manuellen Modus leuchtet die rote LED, und wir können die Drehung des Panels in zwei Achsen mit den zwei Potentiometern steuern. Im automatischen Modus leuchtet die blaue LED, und die Drehung des Panels wird durch das von den vier LDRs gesammelte Licht bestimmt. Die Programmierung erfolgte in Tinkercad.

Die Schüler arbeiteten in Gruppen in einer Fertigungsstraßen-Manier, um die Aufgaben zu erledigen (Kabel löten, Kabel isolieren, Teile verschrauben etc.).

Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking

Code

Rotierendes Solarpanel-Code (Arduino)

Der finale Code des Dual-Achsen-Solarpanels:

#include <Servo.h>

// Variablen initialisieren
int 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;

// Zwei Servos deklarieren
Servo servo_9;
Servo servo_10;

void setup() {
  pinMode(7, INPUT);       // Modus-Taster
  pinMode(12, OUTPUT);     // LED-Indikator für manuellen Modus
  pinMode(11, OUTPUT);     // LED-Indikator für Auto-Modus
  pinMode(A0, INPUT);      // Potentiometer für Rechts-Links-Bewegung
  pinMode(A1, INPUT);      // Potentiometer für Hoch-Runter-Bewegung
  pinMode(A2, INPUT);      // Lichtsensor oben-links
  pinMode(A3, INPUT);      // Lichtsensor oben-rechts
  pinMode(A4, INPUT);      // Lichtsensor unten-links
  pinMode(A5, INPUT);      // Lichtsensor unten-rechts
  servo_9.attach(9);       // Servomotor Rechts-Links-Bewegung
  servo_10.attach(10);     // Servomotor Hoch-Runter-Bewegung
}

void loop() {
  buttonState = digitalRead(7);
  if (buttonState != prevButtonState) {
    if (buttonState == HIGH) {
      // Modus wechseln und korrekte LED aktivieren
      if (mode == 1) {
        mode = 0;
        digitalWrite(12, HIGH); // Rot an
        digitalWrite(11, LOW);  // Blau aus
      } else {
        mode = 1;
        digitalWrite(11, HIGH); // Blau an
        digitalWrite(12, LOW);  // Rot aus
      }
    }
  }
  prevButtonState = buttonState;
  delay(50); // 50 ms warten

  if (mode == 0) {
    // Manueller Modus: Potentiometer-Werte auf Drehwinkel mappen
    servo_9.write(map(analogRead(A0), 0, 1023, 0, 180));
    servo_10.write(map(analogRead(A1), 0, 1023, 0, 180));
  } else {
    // Auto-Modus: Sensorwerte auf 0-100 Lichtintensität mappen
    // Jeder Lichtsensor hat unterschiedliche Empfindlichkeit und muss zuerst getestet werden
    // für seine High- und Low-Werte
    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);

    // Durchschnittliche Lichtverhältnisse berechnen
    TopLight = (topRightLight + topLeftLight) / 2;
    BottomLight = (bottomRightLight + bottomLeftLight) / 2;
    LeftLight = (topLeftLight + bottomLeftLight) / 2;
    RightLight = (topRightLight + bottomRightLight) / 2;

    // Servos drehen, falls nötig
    if (abs(RightLight - LeftLight) > 4) {
      // Position nur ändern, wenn Lichtdifferenz > 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); }
      }
    }
    if (abs(TopLight - BottomLight) > 4) {
      // Position nur ändern, wenn Lichtdifferenz > 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); }
      }
    }
  }
}

Schaltplan

Verdrahtungsschema:
Dual-Achsen-Solartracker mit Auto- & Manual-Modus – Effizientes Sonnen-Tracking

Herstellungsprozess

  1. DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
  2. Einfachen Hindernissensor mit Arduino bauen – IR-LED & Photodiode Tutorial
  3. Solar Tracker V2.0 – Fortgeschrittenes DIY-Solarnachführsystem
  4. IoT-Solartracker: Intelligentes Energiemanagement mit Arduino Mega
  5. 4x4x4 LED-Würfel mit Arduino Uno & 1Sheeld bauen – Interaktives LED-Projekt
  6. Hochgeschwindigkeits-Arduino-Drehzahlmesser (RPM) mit neuartigem Algorithmus
  7. Kupfer-Galvanik-Projekt: Intelligentes System mit Arduino UNO bauen
  8. Präzise Solareinstrahlungsmessung mit Arduino UNO & Ethernet Shield
  9. Präzise Solar-Nachführung mit Servo-Plattform für maximalen Energieertrag
  10. Solarmodul-Qualität: Kritische Kontrollpunkte für maximale Leistung