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

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:

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:

  1. Schneiden Sie ein kleines Stück Leiterplatte entsprechend der Schaltung aus.
  2. 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).
  3. Fügen Sie auf die gleiche Weise die verbleibenden roten LEDs ein (LED 1 – LED 11 über R1 bis R11 bzw. D2 bis D12).
  4. 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.
  5. Alle Kathodenanschlüsse der LEDs sind miteinander verbunden. Schneiden Sie bei Bedarf die überschüssigen Kabel ab.
  6. 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.
  7. Löten Sie nun die Bauteile gemäß Schaltplan ein.
  8. Löten Sie jetzt die Anschlüsse an den Arduino NANO.
  9. 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:

Hallsensor wie folgt anschließen:

Als letzten Schliff:

  1. 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.
  2. 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.
  3. 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:

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:

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

  1. LED-Sequenzer
  2. Arduino-Pov-Vision-Uhr
  3. Hauptuhr
  4. Tech-TicTacToe
  5. Arduino-Vierbeiner
  6. Arduino-Countdown-Timer
  7. Einzelne LED-Matrix-Arduino Flip Clock
  8. RC-Porsche-Auto (Arduino-Projekt)
  9. Arduino-gesteuertes USB-Trackpad
  10. 230 V 50 Hz Wechselstrom (oder 110 V 60 Hz) Hauptbetriebene LED Leistungsstarke NACHTLAMPE Schaltplan.