Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Analoge stijl LED POV-klok

Componenten en benodigdheden

Arduino Nano R3
× 1
LED (generiek)
× 17
Zaaleffectsensor
× 1
Weerstand 100 ohm
× 17
DC-motor (generiek)
× 1
Boost (Step Up) Switching Regulator, vast
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE

Over dit project

Persistence of Vision (POV)-displays zijn over het algemeen LED-displays die afbeeldingen 'tonen' door een gedeelte van een afbeelding op een bepaald moment en snel achter elkaar weer te geven. Het menselijk brein neemt dit waar als weergave van een doorlopend beeld.

Op de "hobbyproject"-website wordt deze relatief eenvoudige maar visueel effectieve wijzerplaat in analoge stijl gepresenteerd. Het elektronische gedeelte bevat de Arduino Nano 17 LED-diodes en de Hall-effectsensor. LED-diodegroepen d1-d11, d12-d16 en d17 hebben een andere kleur voor een beter visueel effect. Het apparaat wordt gevoed door een lithium-ionbatterij via een step-up-converter.

Het moeilijkste deel van de projecten voor mij was de mechanische stabiliteit. Bij de eerste poging was de batterij excentrisch ingesteld en bij een hogere rotatiesnelheid was er een enorme trilling. Daarna heb ik een wijziging aangebracht en de batterij in het midden van de rotatie geplaatst.

Voor de rotatie gebruik ik een 12V elektromotor die is aangesloten op een variabele voeding, zodat de rotatiesnelheid van het apparaat gemakkelijk kan worden geregeld. Afhankelijk van de rotatiesnelheid van het apparaat, moet u in de code de waarde van "delayMicroseconds" op een bepaalde waarde instellen.

De gepresenteerde video is niet duidelijk genoeg, omdat ik hiervoor een camera nodig heb met betere frames per 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 uur =12; // stel urenbyte minuten =15 in; // stel minutenbyte seconden in =00; // set secondsint val; void setup () { pinMode (LED1, OUTPUT); pinMode (LED2, UITGANG); pinMode (LED3, UITGANG); pinMode (LED4, UITGANG); pinMode (LED5, UITGANG); pinMode (LED6, UITGANG); pinMode (LED7, UITGANG); pinMode (LED8, UITGANG); pinMode (LED9, UITGANG); pinMode (LED10, UITGANG); pinMode (LED11, UITGANG); pinMode (LED12, UITGANG); pinMode (LED13, UITGANG); pinMode (LED14, UITGANG); pinMode (LED15, UITGANG); pinMode (LED16, UITGANG); pinMode (sensorPin, INPUT_PULLUP); if(hours ==12) hours =0;}void loop() {val =digitalRead(sensorPin); terwijl (val ==LAAG) {val =digitalRead (sensorPin); } if (millis()>=(previousTime)) { previousTime =previousTime + 1000; seconden =seconden+1; if (seconden ==60) { seconden =0; minuten =minuten+1; } if (minuten ==60) { minuten =0; uur =uur+1; } if (uren ==12) { uur =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 ==hours*5) || (( propeller_posn ==0 ) &&(hours ==0))) drawHoursHand(); if(propeller_posn ==minuten) drawMinutesHand(); if(propeller_posn ==seconden) drawSecondsHand(); vertraging Microseconden (140); // voor LED-pixelbreedte (wijzig de waarde volgens motorsnelheid. Verhogen voor lage snelheid, verlagen voor hoge snelheidsmotor) displayClear(); drawInner_Circle(); vertraging Microseconden (600); // voor de opening tussen LED-pixels/minutenmarkeringen (wijzig de waarde volgens motorsnelheid. Verhogen voor lage snelheid, verlagen voor hoge snelheidsmotor) n++; propeller_posn++; if(propeller_posn ==60) propeller_posn=0; } val =digitalRead (sensorPin); terwijl (val ==HOOG) {val =digitalRead (sensorPin); } }//=========================void displayClear() {digitalWrite(LED1,LOW); digitalWrite (LED2, LAAG); digitalWrite (LED3, LAAG); digitalWrite (LED4, LAAG); digitalWrite (LED5, LAAG); digitalWrite (LED6, LAAG); digitalWrite (LED7, LAAG); digitalWrite (LED8, LAAG); digitalWrite (LED9, LAAG); digitalWrite (LED10, LAAG); digitalWrite (LED11, LAAG); digitalWrite (LED12, LAAG); digitalWrite (LED13,LAAG); digitalWrite (LED14, LAAG); digitalWrite (LED15, LAAG); digitalWrite (LED16,LAAG); } void drawMinuteMarker() {digitalWrite(LED16,HIGH); } void drawHourMarker() {digitalWrite(LED15,HIGH); digitalWrite (LED14, HOOG); } void drawQuarterMarker() {digitalWrite(LED13,HIGH); digitalWrite (LED12, HOOG); } void drawHoursHand() {digitalWrite(LED1,HIGH); digitalWrite (LED2, HOOG); digitalWrite (LED3, HOOG); digitalWrite (LED4, HOOG); digitalWrite (LED5, HOOG); digitalWrite (LED6, HOOG); digitalWrite (LED7, HOOG); } void drawMinutesHand() {digitalWrite(LED1,HIGH); digitalWrite (LED2, HOOG); digitalWrite (LED3, HOOG); digitalWrite (LED4, HOOG); digitalWrite (LED5, HOOG); digitalWrite (LED6, HOOG); digitalWrite (LED7, HOOG); digitalWrite (LED8, HOOG); digitalWrite (LED9, HOOG); } void drawSecondsHand() {digitalWrite(LED1,HIGH); digitalWrite (LED2, HOOG); digitalWrite (LED3, HOOG); digitalWrite (LED4, HOOG); digitalWrite (LED5, HOOG); digitalWrite (LED6, HOOG); digitalWrite (LED7, HOOG); digitalWrite (LED8, HOOG); digitalWrite (LED9, HOOG); digitalWrite (LED10, HOOG); digitalWrite (LED11, HOOG); } void drawInner_Circle() {digitalWrite(LED1,HIGH); vertraging Microseconden (30); digitalWrite (LED1,LAAG); } 

Schema's


Productieproces

  1. LED-sequencer
  2. Koekoeksklok
  3. DIY LUMAZOID Arduino Music Visualiser
  4. Arduino pov vision-klok
  5. Drukluchtstroommeetapparaat met analoge sensor
  6. DIY 37 LED Roulette Game
  7. Hoofdklok
  8. 3D RGB Arduclock
  9. FlightGear Analog Trim Tab Wheel
  10. LED-matrix + bewegingssensor deurdisplay [Arduino Holiday]
  11. Bedien uw led met Cortana