USB-Propeller-LED-Lüfteruhr – Schaltplan und Projektcode
Analoguhr mit USB-LED-Lichtventilator mit Arduino NANO – Projektcode und Schaltplan mit Zeiteinstellungsfunktion
Wenn Sie das Video des berühmten Gadgets der Mini-USB-LED-Licht-Lüfteruhr gesehen haben, machen Sie sich bereit, denn wir werden dieselbe LED-Licht-Analoguhr basierend auf Arduino NANO, Hallsensor, entwerfen , Widerstände, Batterie, Gleichstrommotor und LEDs.
Die LEDs drehen sich kreisförmig und zeigen eine analoge Uhr im Propeller-Display mit allen drei Zeigern für Stunde, Minute und Sekunde sowie die abgerundete (kreisförmige) Form an eine gewöhnliche Armbanduhr oder Wanduhr.
Das Beste an diesem Projekt ist, dass Sie die Zeiteinstellung sowohl für Minuten als auch für Sekunden ändern können, indem Sie den Quellcode per USB-Kabel auf den Arduino NANO hochladen. Mal sehen, wie es geht.
Überprüfen Sie das Gadget der LED Light FAN Clock
Erforderliche Komponenten:
- Arduino-NANO
- Hallsensor W130
- R1 bis R16 =330 Ω
- R17 =2,2 kΩ
- R18 =10kΩ
- LED 1 bis LED 11 =Rotes Licht
- LED 12 bis LED 16 =Grünes Licht
- LED 17 =blaues Licht
- Akku =3,7 V, 240 mAh (9 V bis 12 V bei leistungsstarkem Motor für Hochgeschwindigkeitsbetrieb)
- Schalter =EIN / AUS, einpolig (Schiebeschalter)
- Andere Komponenten:Leiterplatte, Spielzeug-Gleichstrommotor, Drähte und Kabel, Lötkolben usw.
Verdrahtung &Schaltplan
Im Folgenden finden Sie den angegebenen Schaltplan für die USB-Propeller-LED-Lüfter-Analoguhr. Wenn Sie dasselbe Projekt mit einer Zeiteinstellungsfunktion erstellen möchten, überprüfen Sie den zweiten Schaltplan unten in diesem Beitrag.
Vorgehensweise:
- Schneiden Sie ein kleines Stück Leiterplatte entsprechend der Schaltung aus.
- Setzen Sie eine grüne LED mit dem langen Bein auf der linken Seite in die Löcher ein. Biegen Sie nun von der Kupferseite die Beine zur Seite (grüne LEDs, dh LED 12 – LED 16 über R12 zu R16 bzw. A5 zu A1).
- Fügen Sie auf die gleiche Weise die verbleibenden roten LEDs ein (LED 1 – LED 11 über R1 bis R11 bzw. D2 bis D12).
- Fügen Sie die blaue LED über der grünen LED ein, wie in Abb. gezeigt (blaue LED 17 über R17 und A7). Schließen Sie R17 als 2,2 kΩ an und verbinden Sie die Kathode dieser LED mit der Kathode anderer LEDs. Verbinden Sie nun den positiven Zweig dieser LED mit einem Ende des Widerstands R17 und das andere Ende mit dem Arduino +5V-Pin.
- Alle Kathodenanschlüsse der LEDs sind miteinander verbunden. Schneiden Sie bei Bedarf die überschüssigen Kabel ab.
- Fügen Sie nun die Widerstände ein und biegen Sie ihre Leitungen genauso wie Sie es für LEDs getan haben. Schneiden Sie die zusätzlichen Kabel entsprechend ab.
- Löten Sie nun die Bauteile gemäß Schaltplan ein.
- Löten Sie jetzt die Anschlüsse an den Arduino NANO.
- Verbinden Sie einen Draht von der gemeinsamen Kathode der LEDs mit dem Arduino GND-Pin.
Schließen Sie das Kabel von den Widerständen wie folgt an Arduino Digital Pin „D“ und Analog Pin „A“ an:
- R1 bis D2
- R2 bis D3
- R3 bis D4
- R4 bis D5
- R5 bis D6
- R6 bis D7
- R7 bis D8
- R8 bis D9
- R9 bis D10
- R10 bis D11
- R11 bis D12
- R12 zu A1
- R13 bis A2
- R14 bis A3
- R15 bis A4
- R16 bis A5
Hallsensor wie folgt anschließen:
- Ausgangspin an Arduino A0-Pin.
- VCC-Pin an Arduino +5V-Pin.
- Sensor-Erdungsstift an Arduino GND-Pin.
Als letzten Schliff:
- Schließen Sie die 3,7-V-, 240-mAh-Batterie gemäß der Schaltung an und vergessen Sie nicht, einen einpoligen Kipp-Schiebeschalter an der positiven Leitung für den EIN- und AUS-Betrieb der Schaltung hinzuzufügen.
- Montieren Sie nun das gesamte Projekt mit Hilfe eines Spielzeug-Gleichstrommotors auf einer Spanplatte. Denken Sie daran, dass Sie bei Verwendung eines leistungsstarken Motors für hohe Geschwindigkeiten stattdessen eine 9-V- bis 12-V-Batterie verwenden können.
- Laden Sie schließlich den Projektcode (unten angegeben) über das USB-Kabel hoch und schalten Sie die Schaltung ein. Der Lüfter zeigt die Uhr in LED-Licht an, während er sich in Propellerbewegung befindet.
Projektcode
Sie können die erforderlichen Änderungen am folgenden Quellcode der USB-LED-Lüfteruhr vornehmen und bei Bedarf über ein USB-Kabel auf den Arduino NANO hochladen.
Code über: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; // set hours
byte minutes = 15; // set minutes
byte seconds = 00; // set seconds
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;
//****************************************
// Uncomment these lines for IR sensor testing
/*
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); // for LED pixel width (change the value according to motor speed. Increase for low speed, decrease for high speed motor)
displayClear();
drawInner_Circle();
delayMicroseconds(450); // for the gap between LED pixels/minutes markers (change the value according to motor speed. Increase for low speed, decrease for high speed motor)
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);
}
Wie ändere ich die Zeiteinstellung in der LED-Lüfteruhr?
Für einfache IR Empfänger mit dem Main Circuit
Erforderliche Komponenten:
- R19 &R20 =10.000
- IR-Fototransistor-LED (in der Nähe von LED Nr. 13 für die Minuteneinstellung)
- IR-Fototransistor-LED (in der Nähe von LED Nr. 16 für die Stundeneinstellung)
Verbinden Sie einfach R19 mit der ersten IR-LED (in der Nähe von LED Nr. 13 für die Minuteneinstellung) und R20 mit der zweiten IR (in der Nähe von LED Nr. 16 für die Stundeneinstellung). Verbinden Sie die gemeinsamen IR-LEDs und beide Widerstände mit dem GND- bzw. 5-V-Pin des Arduino NANO. Schließen Sie schließlich das Überbrückungskabel vom A7-Pin zwischen R19 und dem zweiten IR an. Machen Sie dasselbe für den A6-Pin zu R20 und dem ersten IR.
Für einfache IR-Fernbedienung Sender
Erforderliche Komponenten:
- 9-V-Batterie
- Akku-Snap-Anschluss
- IR-LED (Infrarot-LED)
- 1kΩ Widerstand
- Taktschalter
- Leiterplatte
Um einen einfachen IR-Fernbedienungssender zum Einstellen und Steuern der Zeiteinstellungsfunktionen in der USB-LED-Lüfteruhr herzustellen, verbinden Sie einfach alle Komponenten in Reihe (d. h. 9-V-Batterie, IR-LED , 1k Ohm Widerstand und einem Taktschalter am Pluspol). Dieser Sender wird verwendet, um die LED Nr. 13 und LED Nr. 16 zu platzieren und auszurichten, um die Zeit einzustellen.
Der folgende Code wird verwendet, um die Stunden- und Minutenspindel (Minuten- und Stundenzeiger bei gewöhnlichen Wanduhren und analogen Uhren) der analogen USB-LED-Lüfteruhr zu ändern und einzustellen.
Überprüfen Sie den Ausgang der IR-Detektorschaltung mit Arduino Serial Monitor. Zum Beispiel ist das Lesen mit normalem Raumlicht> 500 und das Lesen mit IR-Licht ist <500. Sie können also den Code oder die Werte hier entsprechend den verwendeten Sensoren ändern.
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;
}
Um den Minutenzeiger einzustellen, richten Sie die IR-Fernbedienung auf die Minutenmarkierung und drücken Sie die Fernbedienungstaste. Um den Stundenzeiger einzustellen, richten Sie die IR-Fernbedienung auf die Stundenmarkierung und drücken Sie die Fernbedienungstaste.
Sehen Sie sich das Video an:
Ressourcen:
Gadget der LED Light FAN Clock
Kits &Komponenten für dieses Projekt
Arduino NANO für dieses Projekt
Industrietechnik
- LED-Sequenzer
- Arduino-Pov-Vision-Uhr
- Hauptuhr
- Tech-TicTacToe
- Arduino-Vierbeiner
- Arduino-Countdown-Timer
- Einzelne LED-Matrix-Arduino Flip Clock
- RC-Porsche-Auto (Arduino-Projekt)
- Arduino-gesteuertes USB-Trackpad
- 230 V 50 Hz Wechselstrom (oder 110 V 60 Hz) Hauptbetriebene LED Leistungsstarke NACHTLAMPE Schaltplan.