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

USB-LED-Lüfteruhr mit Arduino Nano bauen – Schaltplan & Code

USB-LED-Lüfter-Analoguhr mit Arduino NANO – Projektcode & Schaltplan mit Zeiteinstellung

Wer das Video zum Mini-USB-LED-Lüfteruhr-Gadget kennt, baut hier die gleiche Propeller-Anzeige-Uhr nach: Basis Arduino NANO, Hallsensor, Widerstände, Akku, DC-Motor und LEDs.

Die LEDs rotieren kreisförmig und zeigen eine Analoguhr mit Stunden-, Minuten- und Sekundenzeiger sowie runden Ziffernblatt – wie eine normale Armband- oder Wanduhr.

Das Besondere: Die Zeit (Minuten & Sekunden) lässt sich per Quellcode-Upload via USB-Kabel auf den Arduino NANO einstellen. So geht’s:

USB-LED-Lüfteruhr mit Arduino Nano bauen – Schaltplan & Code

Benötigte Bauteile

Verdrahtung & Schaltplan

Folgender Schaltplan gilt für die USB-Propeller-LED-Lüfteruhr. Für die Version mit Zeiteinstellung siehe zweiten Schaltplan am Ende.

USB-LED-Lüfteruhr mit Arduino Nano bauen – Schaltplan & Code

Aufbau-Schritte

  1. Kleines Stück Lochrasterplatine zuschneiden.
  2. Grüne LED (langes Bein links) einstecken; auf Kupferseite Beine zur Seite biegen (LED 12–16 via R12–R16 an A5–A1).
  3. Rote LEDs (LED 1–11 via R1–R11 an D2–D12) ebenso einstecken.
  4. Blaue LED über den grünen LEDs platzieren (LED 17 via R17=2,2 kΩ an A7). Kathode der blauen LED mit Kathoden der anderen LEDs verbinden. Anode über R17 an Arduino +5 V.
  5. Alle LED-Kathoden zusammenlöten; überstehende Drähte abschneiden.
  6. Widerstände einstecken, Beine biegen, überstehende Enden kürzen.
  7. Alles laut Schaltplan verlöten.
  8. Arduino-NANO-Steckverbinder anlöten.
  9. Gemeinsame Kathodenleitung an Arduino GND anschließen.

Widerstände an Arduino-Pins anschließen:

Hallsensor anschließen:

  1. 3,7-V/240-mAh-Akku laut Schaltplan anschließen; Einpol-Schiebeschalter in Plusleitung für Ein/Aus.
  2. Gesamtes Projekt auf Trägerplatte mit Spielzeug-DC-Motor montieren. Bei starkem Motor (hohe Drehzahl) 9–12 V Akku verwenden.
  3. Projektcode (unten) per USB-Kabel aufspielen, Schalter einschalten → Lüfter zeigt Uhrzeit im Propellerbetrieb.

Projektcode

Den folgenden Quellcode bei Bedarf anpassen (Zeiteinstellung) und per USB auf den Arduino NANO laden.

Code via: hobbyprojects

int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; int LED6 = 7; int LED7 = 8; int LED8 = 9; int LED9 = 10; int LED10 = 11; int LED11 = 12; int LED12 = A1; int LED13 = A2; int LED14 = A3; int LED15 = A4; int LED16 = A5; int sensorPin = A0; int minuteSensor = A7; int hourSensor = A6; unsigned int n,ADCvalue,propeller_posn; unsigned long previousTime = 0; byte hours = 12; // Stunden einstellen byte minutes = 15; // Minuten einstellen byte seconds = 00; // Sekunden einstellen int val; void setup() { pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(LED5,OUTPUT); pinMode(LED6,OUTPUT); pinMode(LED7,OUTPUT); pinMode(LED8,OUTPUT); pinMode(LED9,OUTPUT); pinMode(LED10,OUTPUT); pinMode(LED11,OUTPUT); pinMode(LED12,OUTPUT); pinMode(LED13,OUTPUT); pinMode(LED14,OUTPUT); pinMode(LED15,OUTPUT); pinMode(LED16,OUTPUT); pinMode(sensorPin,INPUT_PULLUP); if(hours == 12) hours = 0; //**************************************** // IR-Sensor-Test auskommentieren /* Serial.begin(9600); while(1) { ADCvalue = analogRead(minuteSensor); Serial.print("minuteSensor "); Serial.println(ADCvalue); ADCvalue = analogRead(hourSensor); Serial.print("hourSensor "); Serial.println(ADCvalue); Serial.println(); delay(1000); } */ //**************************************** } void loop() { val = digitalRead(sensorPin); while (val == LOW) { val = digitalRead(sensorPin); } if (millis() >= (previousTime)) { previousTime = previousTime + 1000; seconds = seconds+1; if (seconds == 60) { seconds = 0; minutes = minutes+1; } if (minutes == 60) { minutes = 0; hours = hours+1; } if (hours == 12) { hours = 0; } } propeller_posn=30; n=0; while(n < 60) { ADCvalue = analogRead(minuteSensor); if(ADCvalue < 500) { minutes = propeller_posn; seconds = 0; } ADCvalue = analogRead(hourSensor); if(ADCvalue < 500) { hours = propeller_posn/5; seconds = 0; } drawMinuteMarker(); if ((propeller_posn==0) || (propeller_posn==5) || (propeller_posn==10) || (propeller_posn==15) || (propeller_posn==20) || (propeller_posn==25) || (propeller_posn==30) || (propeller_posn==35) || (propeller_posn==40) || (propeller_posn==45) || (propeller_posn==50) || (propeller_posn==55)) drawHourMarker(); if ((propeller_posn==0) || (propeller_posn==15) || (propeller_posn==30) || (propeller_posn==45)) drawQuarterMarker(); if((propeller_posn == hours*5) || (( propeller_posn == 0 ) && (hours == 0))) drawHoursHand(); if(propeller_posn == minutes) drawMinutesHand(); if(propeller_posn == seconds) drawSecondsHand(); delayMicroseconds(100); // LED-Pixelbreite (an Motor-Drehzahl anpassen: Erhöhen bei niedriger, verringern bei hoher Drehzahl) displayClear(); drawInner_Circle(); delayMicroseconds(450); // Abstand zwischen LED-Pixeln/Minutenmarken (an Motor-Drehzahl anpassen) n++; propeller_posn++; if(propeller_posn == 60) propeller_posn=0; } val = digitalRead(sensorPin); while (val == HIGH) { val = digitalRead(sensorPin); } } //========================= void displayClear() { digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); digitalWrite(LED9,LOW); digitalWrite(LED10,LOW); digitalWrite(LED11,LOW); digitalWrite(LED12,LOW); digitalWrite(LED13,LOW); digitalWrite(LED14,LOW); digitalWrite(LED15,LOW); digitalWrite(LED16,LOW); } void drawMinuteMarker() { digitalWrite(LED16,HIGH); } void drawHourMarker() { digitalWrite(LED15,HIGH); digitalWrite(LED14,HIGH); } void drawQuarterMarker() { digitalWrite(LED13,HIGH); digitalWrite(LED12,HIGH); } void drawHoursHand() { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); } void drawMinutesHand() { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); digitalWrite(LED9,HIGH); } void drawSecondsHand() { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); digitalWrite(LED9,HIGH); digitalWrite(LED10,HIGH); digitalWrite(LED11,HIGH); } void drawInner_Circle() { digitalWrite(LED1,HIGH); delayMicroseconds(30); digitalWrite(LED1,LOW); } 

Zeiteinstellung an der LED-Lüfteruhr ändern

Für einfachen IR-Empfänger im Hauptkreis

Zusatzbauteile:

R19 mit erstem IR-LED (Minute) und R20 mit zweitem IR (Stunde) verbinden. Gemeinsame Anschlüsse der IR-LEDs und Widerstände an GND bzw. 5 V des Arduino NANO. Jumper von A7 zwischen R19 und zweitem IR; gleichermaßen A6 zu R20 und erstem IR.

USB-LED-Lüfteruhr mit Arduino Nano bauen – Schaltplan & Code

Für einfache IR-Fernbedienung (Sender)

Bauteile:

Alle Bauteile in Reihe schalten (9 V, IR-LED, 1 kΩ, Taster an Pluspol). Sender auf LED#13 (Minute) bzw. LED#16 (Stunde) richten und Taster drücken.

Folgender Codeausschnitt steuert die Zeiteinstellung:

propeller_posn=30; n=0; while(n < 60) { ADCvalue = analogRead(minuteSensor); if(ADCvalue < 500) { minutes = propeller_posn; seconds = 0; } ADCvalue = analogRead(hourSensor); if(ADCvalue < 500) { hours = propeller_posn/5; seconds = 0; } 

Bedienung: IR-Sender auf Minutenmarkierung richten & Taster drücken → Minutenzeiger setzt sich. Auf Stundenmarkierung richten & drücken → Stundenzeiger setzt sich.

Serieller Monitor: Normallicht > 500, IR-Licht < 500 → Schwellenwert im Code anpassen.

Video ansehen | Ressourcen: Gadget, Bausätze, Arduino NANO

Industrietechnik

  1. LED-Sequenzer mit 555-Timer & 4017-Zähler bauen – Frequenzteilung & Entprellung
  2. Arduino POV-Uhr: Persistence-of-Vision LED-Display selbst bauen
  3. Einen eigenen LED-Master-Clock mit Alarm bauen – aus 12 Metern Entfernung ablesbar
  4. Arduino Tic Tac Toe mit MAX7219 LED-Matrix und Karton-Gehäuse
  5. Intelligenten Arduino-Vierbeiner-Roboter bauen: Schritt-für-Schritt-Anleitung
  6. Zuverlässigen Arduino-Countdown-Timer mit SparkFun 7-Segment-Display bauen
  7. Arduino Flip Clock mit 8×8 LED-Matrix – DIY Echtzeituhr-Projekt
  8. RC Porsche selbst bauen: Arduino-Schritt-für-Schritt-Anleitung
  9. DIY USB-Trackpad aus altem Laptop – Arduino Micro als HID-Schnittstelle
  10. Professionelle LED-Nachtlampe 230V/50Hz & 110V/60Hz – Schaltplan für Netzbetrieb