Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Construire une horloge ventilateur LED USB avec Arduino Nano – Schéma et code

Horloge analogique à ventilateur LED USB avec Arduino NANO – Code du projet et schéma avec fonction réglage heure

Si vous avez vu la vidéo du célèbre gadget « Mini USB LED light Fan clock », préparez-vous : nous allons concevoir la même horloge analogique à affichage hélice basée sur Arduino NANO, capteur à effet Hall, résistances, batterie, moteur DC et LEDs.

Les LEDs tournent en mouvement circulaire et affichent une horloge analogique en affichage hélice avec les trois aiguilles (heures, minutes, secondes) ainsi que la forme circulaire arrondie comme une montre-bracelet ou horloge murale ordinaire.

Le grand atout : vous pouvez modifier le réglage de l'heure (minutes et secondes) en téléversant le code source sur l'Arduino NANO via câble USB. Voyons comment faire.

Découvrez le gadget Horloge Ventilateur LED

Construire une horloge ventilateur LED USB avec Arduino Nano – Schéma et code

Composants requis :

Câblage et schéma de circuit

Voici le schéma pour l'horloge analogique à hélice LED USB. Pour la version avec réglage d'heure, voir le second schéma en bas de page.

Construire une horloge ventilateur LED USB avec Arduino Nano – Schéma et code

Procédure de montage :

  1. Découpez un petit morceau de circuit imprimé selon le circuit.
  2. Insérez une LED verte dans les trous, patte longue à gauche. Côté cuivre, pliez les pattes d'un côté (LED vertes 12–16 via R12–R16 et A5–A1).
  3. De même, insérez les LEDs rouges restantes (LED 1–11 via R1–R11 et D2–D12).
  4. Insérez la LED bleue au-dessus des vertes (LED 17 via R17 et A7). R17 = 2,2 kΩ. Reliez la cathode de cette LED aux cathodes des autres. Connectez l'anode à une extrémité de R17, l'autre extrémité au +5 V de l'Arduino.
  5. Reliez toutes les cathodes des LEDs ensemble. Coupez les excédents de pattes si nécessaire.
  6. Insérez les résistances et pliez les pattes comme pour les LEDs. Coupez l'excédent.
  7. Soudez les composants selon le schéma.
  8. Soudez les connecteurs sur l'Arduino NANO.
  9. Reliez la cathode commune des LEDs au GND de l'Arduino.

Connectez les fils des résistances aux broches Digital « D » et Analog « A » de l'Arduino :

Connectez le capteur Hall :

Finitions :

  1. Connectez la batterie 3,7 V 240 mAh selon le schéma, avec interrupteur curseur unipolaire sur le fil positif pour marche/arrêt.
  2. Montez le tout sur une plaque avec le moteur DC jouet. Pour moteur puissant à haute vitesse, utilisez 9–12 V.
  3. Téléversez le code (ci-dessous) via USB, mettez sous tension. Le ventilateur affiche l'horloge en LEDs en mouvement hélice.

Code du projet

Vous pouvez modifier le code source ci-dessous et le téléverser sur l'Arduino NANO via USB si besoin.

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; // régler heures byte minutes = 15; // régler minutes byte seconds = 00; // régler secondes 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; //**************************************** // Décommenter pour test capteur IR /* 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); // largeur pixel LED (ajuster selon vitesse moteur. Augmenter pour basse vitesse, diminuer pour haute vitesse) displayClear(); drawInner_Circle(); delayMicroseconds(450); // espace entre pixels/marqueurs minutes (ajuster selon vitesse moteur) 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); } 

Comment changer l'heure sur l'horloge ventilateur LED ?

Pour récepteur IR basique avec le circuit principal

Composants requis :

Connectez R19 au premier phototransistor IR (près LED #13 pour minutes) et R20 au second (près LED #16 pour heures). Reliez le commun des phototransistors et les deux résistances au GND et +5 V de l'Arduino respectivement. Connectez un fil du A7 entre R19 et le second phototransistor. Même chose pour A6 vers R20 et le premier phototransistor.

Construire une horloge ventilateur LED USB avec Arduino Nano – Schéma et code

Pour émetteur télécommande IR basique

Composants requis :

Pour fabriquer un émetteur IR simple pour régler l'heure : connectez tous les composants en série (batterie 9 V, LED IR, résistance 1 kΩ, interrupteur tactile sur le positif). Cet émetteur sert à pointer vers LED #13 et LED #16 pour régler l'heure.

Le code suivant permet de régler l'heure et les minutes de l'horloge analogique USB LED :

Vérifiez la sortie du circuit détecteur IR via le Moniteur Série Arduino. Exemple : lecture lumière ambiante > 500, avec lumière IR < 500. Adaptez le code/valeurs selon vos capteurs.

 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; } 

Pour régler les minutes : pointez la télécommande IR vers le repère minute et appuyez. Pour les heures : pointez vers le repère heure et appuyez.

Regardez la vidéo :

Ressources :

Gadget Horloge Ventilateur LED

Kits et composants pour ce projet

Arduino NANO pour ce projet

Technologie industrielle

  1. Séquenceur LED avec timer 555 et compteur 4017 — Division de fréquence et anti-rebond
  2. Horloge POV Arduino : Construire un affichage LED à persistance rétinienne
  3. Construire une horloge maître LED personnalisée avec alarme – Visible à 12 mètres
  4. Morpion sur matrice LED MAX7219 avec boîtier en carton
  5. Construire un robot quadrupède Arduino intelligent : guide étape par étape
  6. Construire un minuteur à rebours Arduino fiable avec afficheur 7 segments SparkFun
  7. Horloge à bascule Arduino avec matrice LED 8×8 – Projet DIY d'horloge temps réel
  8. Construisez votre propre voiture RC Porsche avec Arduino : Guide étape par étape
  9. Schéma de circuit lampe de nuit LED professionnel – Design alimenté secteur 230 V/50 Hz ou 110 V/60 Hz