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

Intelligentes Bushaltestellen-Modell mit automatischem Sonnenschutz

Komponenten

Arduino Nano R3 (klein, gut zu verstecken) 1
Servo MG995 (stark, für schweres Sonnendach) 1
Fotowiderstand (LDR) – einer nach Osten, einer nach Westen 2
Regensensor 1
Hochleistungs-LED weiß 6
Widerstand 220 Ω 3
Steckplatine 1
Jumper-Kabel (M/M) 27
Schraubklemmen 2
9-V-Block-Batterieclip + 9-V-Block 2 / 1
4×AA-Batteriehalter (für Servo-Strom) 1

Projektbeschreibung

Upgrade der Version 1.0. Hauptänderungen:

V1.0: Model Version 1.0

Code

#include <VarSpeedServo.h>
VarSpeedServo servo;

int easternLight = 0, westernLight = 0, rainSensed = 0, sunshadePosition = 0;
int rainThreshold = 512;
int sunshadeExpanded = 120;   // Grad
int sunshadeContracted = 60;  // Grad
int ambientLighting = 0;
int turnOnLightsOn = 150;     // Schwelle für Beleuchtung
int ledIntensity = 0, ledPower = 0;
int servoSpeed = 20;          // Geschwindigkeit (VarSpeedServo)
bool debugging = false;       // true = Serial Debug

void setup() {
  pinMode(A4, OUTPUT); // Innenbeleuchtung Bushaltestelle
  pinMode(A5, OUTPUT); // Straßenlaterne
  pinMode(A1, INPUT);  // West-LDR
  pinMode(A2, INPUT);  // Ost-LDR
  pinMode(A3, INPUT);  // Regensensor analog
  pinMode(2, INPUT);   // Regensensor digital
  servo.attach(A0);
  servo.write(sunshadeContracted, servoSpeed, true); // Start: eingefahren
  if (debugging) { Serial.begin(9600); Serial.println("*** DEBUGGING STARTED ***"); }
}

void oya_mydebug(String text, int value = -1) {
  if (debugging) {
    Serial.print(text);
    if (value >= 0) { Serial.print(" = "); Serial.println(value); }
    else Serial.println();
  }
}

void expand_collapse(int easternLight, int westernLight) {
  if (easternLight <= westernLight) { // Sonnenaufgang: Osten heller
    oya_mydebug("Sunrise");
    if (sunshadePosition != sunshadeExpanded) {
      servo.write(sunshadeExpanded, servoSpeed, true);
      oya_mydebug("Sunshade expanded");
    }
  }
  if (easternLight > westernLight) { // Sonnenuntergang: Westen heller
    oya_mydebug("Sunset");
    if (sunshadePosition != sunshadeContracted) {
      servo.write(sunshadeContracted, servoSpeed, true);
      oya_mydebug("Sunshade contracted");
    }
  }
}

void loop() {
  easternLight = analogRead(A2);
  westernLight = analogRead(A1);
  rainSensed = analogRead(A3);
  sunshadePosition = servo.read();
  ambientLighting = (easternLight + westernLight) / 2; // Mittelwert

  oya_mydebug("easternLight", easternLight);
  oya_mydebug("westernLight", westernLight);
  oya_mydebug("rainSensed", rainSensed);
  oya_mydebug("sunshadePosition", sunshadePosition);
  oya_mydebug("ambientLighting", ambientLighting);

  if (rainSensed < rainThreshold) { // Regnet es? (analog: niedriger = nass)
    oya_mydebug("It's raining...");
    if (sunshadePosition != sunshadeExpanded) {
      servo.write(sunshadeExpanded, servoSpeed, true);
      oya_mydebug("Sunshade expanded");
    }
  } else {
    oya_mydebug("Not raining...");
    if (ambientLighting <= turnOnLightsOn) { // Dämmerung/Nacht
      oya_mydebug("Dark, lights ON");
      ledPower = (turnOnLightsOn - ambientLighting) * 4;
      oya_mydebug("ledPower", ledPower);
      analogWrite(A5, ledPower); // Straßenlaterne
      analogWrite(A4, ledPower); // Innenbeleuchtung
      expand_collapse(easternLight, westernLight);
    } else { // Tag, hell
      oya_mydebug("Bright, lights OFF");
      analogWrite(A5, 0); analogWrite(A4, 0);
      expand_collapse(easternLight, westernLight);
    }
  }
  if (debugging) { Serial.println("********************"); delay(5000); }
  else delay(100);
}

Schaltplan

Intelligentes Bushaltestellen-Modell mit automatischem Sonnenschutz

Herstellungsprozess

  1. Lionel Modelleisenbahnen: Geschichte, Fertigung und Zukunft
  2. Recycling-Sortierroboter mit Google Coral Edge TPU
  3. Wiederkehrenden Umsatz mit smarten Verbrauchsmaterialien maximieren: Game-Changer für Maschinenbauer
  4. DIY Automatische Modellbahn-Steuerung mit Arduino – Einfach & Flexibel
  5. Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
  6. SPRINT 20 Linear-Drehmaschine: Schnelles, automatisiertes Drehen für hochpräzise Teile
  7. Servopressen: Funktionsprinzip, Bauarten & Vorteile gegenüber Hydraulik/Exzenter
  8. Servomotoren: Funktionsweise und Bedeutung
  9. Präzision maximieren: Getriebe mit Servomotoren optimal kombinieren
  10. ECS G86 Bohrzyklus mit Spindelhalt-Funktion