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

Horloge POV LED de style analogique

Composants et fournitures

Arduino Nano R3
× 1
LED (générique)
× 17
Capteur à effet Hall
× 1
Résistance 100 ohm
× 17
Moteur à courant continu (générique)
× 1
Régulateur de commutation Boost (Step Up), fixe
× 1

Outils et machines nécessaires

Fer à souder (générique)

Applications et services en ligne

Arduino IDE

À propos de ce projet

Les écrans de persistance de la vision (POV) sont généralement des écrans à LED qui « montrent » des images en affichant une section d'une image à un moment donné, en succession rapide et rapide. Le cerveau humain perçoit cela comme l'affichage d'une image continue.

Sur le site Web "Hobby Project", cette horloge analogique relativement simple mais visuellement efficace est présentée. La partie électronique contient les diodes LED Arduino Nano 17 et le capteur à effet Hall. Les groupes de diodes LED d1-d11, d12-d16 et d17 sont de couleurs différentes pour un meilleur effet visuel. L'appareil est alimenté par une batterie lithium-ion via un convertisseur élévateur.

La partie la plus difficile des projets pour moi était la stabilité mécanique. Lors de la première tentative, la batterie était réglée de manière excentrique et à une vitesse de rotation plus élevée, il y avait une énorme vibration. Ensuite j'ai fait une modification et mis la batterie au centre de rotation.

Pour la rotation, j'utilise un moteur électrique 12V connecté à une alimentation variable afin que la vitesse de rotation de l'appareil puisse être facilement contrôlée. En fonction de la vitesse de rotation de l'appareil, dans le code, vous devez définir la valeur de "delayMicroseconds" à une valeur déterminée.

La vidéo présentée n'est pas assez claire, car pour cela j'ai besoin d'une caméra avec de meilleures images par seconde.

Code

  • code
codeArduino
// hobbyprojects// ArduinoNanoPropellerLEDAnalogClock20190403Aint 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;unsigned int n,ADCvalue,propeller_posn;unsigned long previousTime =0;byte heures =12; // définit les heures et les minutes =15 ; // définit minutesbyte secondes =00; // set secondsint val;void setup() { pinMode(LED1,OUTPUT); pinMode (LED2, SORTIE); pinMode (LED3, SORTIE); pinMode (LED4, SORTIE); pinMode (LED5, SORTIE); pinMode (LED6, SORTIE); pinMode (LED7, SORTIE); pinMode (LED8, SORTIE); pinMode (LED9, SORTIE); pinMode (LED10, SORTIE); pinMode (LED11, SORTIE); pinMode (LED12, SORTIE); pinMode (LED13, SORTIE); pinMode (LED14, SORTIE); pinMode (LED15, SORTIE); pinMode (LED16, SORTIE); pinMode (sensorPin, INPUT_PULLUP); if(hours ==12) hours =0;}void loop() { val =digitalRead(sensorPin); while (val ==LOW) { val =digitalRead(sensorPin); } if (millis()>=(previousTime)) { previousTime =previousTime + 1000; secondes =secondes+1 ; if (secondes ==60) { secondes =0; minutes =minutes+1 ; } si (minutes ==60) { minutes =0; heures =heures+1 ; } if (heures ==12) { heures =0; } } propeller_posn=30; n=0 ; while(n <60) { 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 ==heures*5) || (( propeller_posn ==0 ) &&(heures ==0))) drawHoursHand(); if(propeller_posn ==minutes) drawMinutesHand(); if(propeller_posn ==secondes) drawSecondsHand(); délaiMicrosecondes(140); // pour la largeur de pixel de la LED (changer la valeur en fonction de la vitesse du moteur. Augmenter pour la faible vitesse, diminuer pour le moteur à grande vitesse) displayClear(); drawInner_Circle(); délaiMicrosecondes (600); // pour l'écart entre les marqueurs de pixels/minutes LED (changer la valeur en fonction de la vitesse du moteur. Augmenter pour la faible vitesse, diminuer pour le moteur à grande vitesse) n++ ; propeller_posn++; if(propeller_posn ==60) propeller_posn=0; } val =digitalRead(sensorPin); while (val ==HAUT) { val =digitalRead(sensorPin); } }//=========================void displayClear() { digitalWrite(LED1,LOW); digitalWrite (LED2, LOW); digitalWrite (LED3, LOW); écriture numérique (LED4, FAIBLE); écriture numérique (LED5, FAIBLE); écriture numérique (LED6, FAIBLE); écriture numérique (LED7, FAIBLE); écriture numérique (LED8, FAIBLE); écriture numérique (LED9, FAIBLE); écriture numérique (LED10, FAIBLE); digitalWrite (LED11, FAIBLE); écriture numérique (LED12, FAIBLE); écriture numérique (LED13, FAIBLE); écriture numérique (LED14, FAIBLE); écriture numérique (LED15, FAIBLE); écriture numérique (LED16, FAIBLE); } void drawMinuteMarker() { digitalWrite(LED16,HIGH); } void drawHourMarker() { digitalWrite(LED15,HIGH); digitalWrite (LED14, HAUT); } void drawQuarterMarker() { digitalWrite(LED13,HIGH); digitalWrite (LED12, HAUT); } void drawHoursHand() { digitalWrite(LED1,HIGH); digitalWrite (LED2, HAUT); digitalWrite (LED3, HAUT); digitalWrite (LED4, HAUT); digitalWrite (LED5, HAUT); digitalWrite (LED6, HAUT); digitalWrite (LED7, HAUT); } void drawMinutesHand() { digitalWrite(LED1,HIGH); digitalWrite (LED2, HAUT); digitalWrite (LED3, HAUT); digitalWrite (LED4, HAUT); digitalWrite (LED5, HAUT); digitalWrite (LED6, HAUT); digitalWrite (LED7, HAUT); digitalWrite (LED8, HAUT); digitalWrite (LED9, HAUT); } void drawSecondsHand() { digitalWrite(LED1,HIGH); digitalWrite (LED2, HAUT); digitalWrite (LED3, HAUT); digitalWrite (LED4, HAUT); digitalWrite (LED5, HAUT); digitalWrite (LED6, HAUT); digitalWrite (LED7, HAUT); digitalWrite (LED8, HAUT); digitalWrite (LED9, HAUT); digitalWrite (LED10, HAUT); digitalWrite (LED11, HAUT); } void drawInner_Circle() { digitalWrite(LED1,HIGH); délaiMicrosecondes(30); digitalWrite (LED1, BAS); } 

Schémas


Processus de fabrication

  1. Séquenceur LED
  2. horloge à coucou
  3. Visualiseur de musique Arduino DIY LUMAZOID
  4. horloge de vision Arduino pov
  5. Appareil de mesure du débit d'air sous pression avec capteur analogique
  6. Jeu de roulette DIY 37 LED
  7. horloge maîtresse
  8. Ardulock 3D RVB
  9. Molette de trim analogique FlightGear