工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

アナログスタイルのLEDPOVクロック

コンポーネントと消耗品

>
Arduino Nano R3
× 1
LED(汎用)
× 17
ホール効果センサー
× 1
抵抗100オーム
× 17
DCモーター(汎用)
× 1
ブースト(ステップアップ)スイッチングレギュレータ、固定
× 1

必要なツールとマシン

>
はんだごて(汎用)

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

視覚現象(POV)ディスプレイは、一般にLEDディスプレイであり、特定の時間に画像の一部をすばやく連続して表示することで画像を「表示」します。人間の脳はこれを連続画像の表示として認識します。

「ホビープロジェクト」のウェブサイトでは、この比較的シンプルで視覚的に効果的なアナログスタイルのフェイスクロックが紹介されています。電子部品には、Arduino Nano 17LEDダイオードとホール効果センサーが含まれています。 LEDダイオードグループd1-d11、d12-d16、およびd17は、視覚効果を高めるために異なる色になっています。このデバイスは、ステップアップコンバーターを介してリチウムイオン電池から電力を供給されます。

私にとってプロジェクトの最も困難な部分は、機械的な安定性でした。最初の試みでは、バッテリーは偏心して設定され、より高速の回転で大きな振動がありました。次に、変更を加えて、バッテリーを回転の中心に置きました。

<図>

回転には可変電源に接続された12Vの電気モーターを使用しているので、デバイスの回転速度を簡単に制御できます。デバイスの回転速度に応じて、コードで「delayMicroseconds」の値を決定された値に設定する必要があります。

この目的のために、1秒あたりのフレーム数がより優れたカメラが必要なため、提示されたビデオは十分に明確ではありません。

コード

  • コード
コード Arduino
 // 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;バイト時間=12; // hoursbyte分を設定=15; // minutesbyte秒を設定=00; // secondsintを設定します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;} void loop(){val =digitalRead(sensorPin); while(val ==LOW){val =digitalRead(sensorPin); } if(millis()> =(previousTime)){previousTime =previousTime + 1000;秒=秒+1; if(seconds ==60){seconds =0;分=分+1; } if(minutes ==60){minutes =0;時間=時間+1; } if(hours ==12){hours =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 ==時間* 5)||((propeller_posn ==0)&&(時間==0)))drawHoursHand(); if(propeller_posn ==minutes)drawMinutesHand(); if(propeller_posn ==seconds)drawSecondsHand(); delayMicroseconds(140); // LEDピクセル幅の場合(モーター速度に応じて値を変更します。低速の場合は増加し、高速モーターの場合は減少します)displayClear(); drawInner_Circle(); delayMicroseconds(600); // LEDピクセル/分マーカー間のギャップの場合(モーター速度に応じて値を変更します。低速の場合は増加し、高速モーターの場合は減少します)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); } 

回路図


製造プロセス

  1. LEDシーケンサー
  2. 鳩時計
  3. DIY LUMAZOID Arduino Music Visualiser
  4. Arduinoハメ撮りビジョンクロック
  5. アナログセンサーを備えた圧力気流測定装置
  6. DIY 37LEDルーレットゲーム
  7. マスタークロック
  8. 3D RGB Arduclock
  9. FlightGearアナログトリムタブホイール
  10. LEDマトリックス+モーションセンサードアディスプレイ[ArduinoHoliday]
  11. CortanaでLEDを制御する