時計のためのワイヤー
WATCH FOR THREAD
ここで私は控えめ不在の後です, さらに別のデジタル時計にriproporvi: 今誰もが知っています…鉱山は大流行であります… または多分私は他に何もしません.
来ます それがあります このクロック生まれ ?… でも月にウェブがしようとすると、私が主導し、特定のウェブサイトFutura_Elettronicaで見つけ実験するために、いくつかのデバイスを探してgirovando: LED RGBの全ての点で類似 (クワトロピンR,G,B,陽極/陰極) それはRGBのLEDはなかったです. 有しながら、 4 標準的な脚は、実際にLEDです WS212. それはこのようになります:

足は常にあります 4 しかし、異なる定義で: 若しくは DATA_IN, VCC,GND,DATA_OUT. LED側のクリートは、ピンを識別する DATA_OUT. 電源5V. LEDフォーマット: 5ミリメートル.
好奇心は猫を殺しました (有名な格言….) そして私は最初の注文をしました 20 実験やテストにつながりました. 私はWS2812を率いたと述べました: またはライブラリが運営する特定のプロトコルを使用してシリアル ADAFRUIT_NEOPIXEL. このプロトコルを記述することは容易ではありません: の事実上のシーケンス 24 ビット (8 各色について) LED Rに対して定義された色で送信された直列LEDライト, GおよびBのLEDは、このあたりとして (ソースws2812.pdf).

もちろん、そこに満たすべき期限がありますが、すべての管理作業はライブラリに委託されているので、私はあまり気にしませんでした. これらのLEDの特別な機能は、接続の種類によって与えられ、: 各LEDは、このように実質的に特異的な制限の鎖を形成しない、以前のものとカスケード接続されています: この時計を作るために、実際に私にはよく使わ 112 LED.
ここでは、最終的な結果をプレビュー:

慈悲を持っています: 彼らは、DIYで真の地滑りであり、この時間は、私も合格します: それは簡単ではありませんでした、とだけ、これらの日、私は基本的にテストを使い果たし.
FINAL MAKING:
あなたが地面を打つ前に、私は、フィージビリティ・スタディを実施し (今日では、ファッショナブルです) これらのLEDを接続する方法を決定します, これはRTCの使用, 時間値を更新する方法, 視認性のために許容可能で、特に食品として、全てがうまくの存在を考慮することができ、色感及び輝度を割り当てる方法 112 LED. このパワーと全吸収の問題は、私に多くの時間を要します: 私は、十分な電力供給なしであることのリスクを実行したくありませんでした: ウェブ源からこれらのLEDのそれぞれは、各色用の井戸20ミリアンペアを吸収しなければなりません. 第60回吸収の合計で3個のLEDに切り替える必要が白色につながったいずれかのように、. この時計はすべてオンにすることはありませんので、しかし、それは、偽の問題を検出します 112 LED. しかし、正確に回避するための欠点はと直列に接続された一連のLEDでいくつかのPCBを用意しています.
200ミリアンペアの流れに通常テスターを用いて行わいくつかのテストによれば、検出された以下の尺度であります: (明るさの値= 25 そして、ライブラリの第二の機能は低い値であり、).
1個のLED付きチェーン: LEDオフ: 07,7ミリアンペア; 赤点灯: 08,6ミリアンペア; 緑、青同上; ビアンコ10,3ma; 紫の: 09,4; 黄色: 09,4.
チェーン付き 2 LED: オフ: 15,3; 赤点灯 1: 16,1ミリアンペア; 緑、青同上; 白17,8ma; 紫/黄16,9ma; 赤点灯 1+2: 16,9ミリアンペア: 緑、青と同上. ビアンコ20,3ma; 黄/紫 18,6.
チェーン付き 3 LED: オフ: 15,7; 赤点灯 1: 16,6; ヴェルデ, 行くBLU; 赤点灯 1+2: 17,4; ヴェルデ, 行くBLU; 白 20,8; 紫/黄赤19,1ma.Acceso 1+2+3: 18,4; 緑、青同上; 白23,6ma; 紫/黄21.
チェーン付き 4 LED: オフ: 16,2 ミリアンペア; 赤点灯 1: 17,1; 緑、青同上; 白 18,8; 紫/黄18日; 赤点灯 1+2: 17,9 ミリアンペア; 緑、青 18,0 ミリアンペア; 白 21,4; 黄/紫 19,6; 赤ログイン 1+2+3: 18,8ミリアンペア; 緑、青同上; 白 24,2; 紫/黄21,5ma; 赤点灯 1+2+3+4: 19,8 メートル; 緑、青同上; 白 26,7; 黄/紫 23,3.
あなたは気づくかもしれない基本的な色 (ロッソ, ヴェルデ, ブルーレイ) 常に同じ値だけでなく、黄色と紫を持っています. 例外は白色で与えられます。. の試料を用いて行われた試験から、 12 主導し、独立した電源を利用して (マイクロから分離した後、電源とを有するバッテリ充電器1A) あなたは、次の値が発生する可能性があります: (200ミリアンペアでのフルスケールと共通計で測定した値).
輝度値 (Neopixel機能として、) = 25
すべてのLEDが消灯: 〜34,3 / 35ミリアンペア,
12 LEDが赤く点灯しました, ヴェルデ, ブルーレイ –> 41,9/42,0;
12 主導明るい黄色/ピンク: –> 51/51,2;
12 明るい白色LEDの色: –> 49,8/49,9
とテスト 16 LED: 第40回オフ. 赤/緑/青 16 49点灯/ 50ミリアンペア;
これらの値を持つと仮説を危険にさらします, の文字盤の全吸収 28 LEDは、間でなければなりません 100 E I 150ミリアンペア. そして、理論的には, 一連の 4 象限は、前後になるはずです 400/600 ミリアンペア. しかし、それだけで試験を実施した芸術の理論の状態のまま 16 LED.
これらのテストの後、完全な実現後の最終的な結果は、携帯電話用充電器とそのクロックであります (5V,1A) すべてが順調に動作します: 後の電力供給 24 連続運転の時間が残っています “COLD“. しかし、私は、5Vから特定の電源を選びました,25Vに安定した電圧を持っているために、 (充電政権電池はほぼ0.5V電圧の電圧降下を持っています) また、後 24 時間が残っています “COLD“.
心に留めておくべきもう一つの特色: ときに電源システム (かかわらず、接続されたLEDの数の) すべてのLEDは、その明るさの最大値を点灯し、その後、吸収ピークをcrareすることができます. したがって、総シャットダウンのために提供されなければなりません (ソフトウェア経由) 即時ポストシステムの起動.
のは、最終的な設計仕様を見てみましょう:
- クアトロ表示 (私はダイヤルを呼び出します), 時間と分を表示します. 各象限は、ディスプレイのイメージと似に形成されています 7 セグメント: 各セグメントであります 4 LED. コストと負担との間の妥協による選択.
- 第二の値に基づいて交互点滅と2個のLED
- RTC DS3231 考えられ、より安定した正確なDS1307
- A トリマー までを処理するためのアナログ 8 ホットでも編集可能な明るさのレベル
- A ディップスイッチ A 8 まで選択する位置 4 ホット編集可能な各象限のための色 (各象限のための2つのスイッチ).
- 必要に応じて、時間と分の初期化を設定するためのボタン.
- システムの起動およびリセットのための二つのボタン.
次のようにこれらの仕様を考えると、使用するハードウェアであります:
- マイクロArduinioナノ その大きさのために選ばれた、すでにあなたが必要なすべてを持っています: ソフトウェアを接続し、ロードするためのUSB, USBパワー・オーバー.
- RTC DS3231 時刻および日付の値を維持するための手段として
- PCF8574 8 I2C exapanderビット. このデバイスは、私がのために保存することができます 8 ピンアルドゥイーノ. Dip_Swtichに設定された値を読み取るために使用されます.
今度は、プロジェクトの一部の回路図を見てみましょう:
LEDの典型的な接続:
この図が示します (一部に) どのように彼らは、LEDに接続されています: の各グループ 4 ダイヤルのセグメントを形成します: それから 7 セグメントは、によって形成されています 28 総主導. これらのLEDの各々は、次に直列に接続されています. これは、ソフトウェアが適切に選択されるグループ 4 LED (そして、セグメント) オンまたはオフ. 第1のLEDの入口に抵抗で接続されています。 470 オーム. (神聖なテキストを暗唱する方法). 各象限は、それ自体でグループです: LEDのリリース NON これは、次の象限の第1のLEDの入力に接続されています: 具体的な理由があります. 私はこれらのLEDはデリケートであり、それは1が起こっていることに気づい試験中 “偽物“. E’ すべてのシリーズであることが1が全体のみ、後続のチェーンに影響を与えるためにいくつかの問題があることが十分であることが明らかに. 私は個別に管理することを決めたこの種の問題を回避するために、 (ライブラリ許可) 私 4 象限. 結果は、ダイヤルを使用することを選択における唯一のプログラム合併症であります.
接続機器:
この方式では、それは彼らが両方と関連している方法を示しています PCF8574 その’RTC DS3231. 実際には、これはその両方すでに組み立て済みのPCFデバイスのために使用されているRTC内の1つの代表的な方式であります: デバイスは、I2C protocoloをインストールして使用するのは簡単です. 方式ではそれがさらに提供されました PCF8574 使用してバイナリモードで秒を表示します 7 ビット. さらに私は、使用好ましいシステムを複雑にしないために 2 別の点滅と導きました. 図に選択接続がボタンとトリマとを接続Arduinoのピンにも表示されています.
各象限のPCB:

これは、各象限の最終的なPCB有効です。. 私は小さなをしたが、LED 5ミリメートルとの練習で一緒に閉じすぎのように問題のある接続を証明していました. 残念ながら、あなたはプロジェクトの最初の全体像で見ることができるように, 精度が輝いていません.
各象限のレイアウト:
例示の方法によって、各象限は、構成するすべてのLEDの以下の構成と論理記数を有します. 各LEDのノッチは、ピンを識別するDATA_OUT

コントロールパネルPCB:

このパネルの家: 明るさを調整するためのトリマー, 私 2 NOW値と分を更新するためのボタン, STARTボタンシステム, RESETボタン, 彼らは、更新する必要があるとき、それが設定されている方法に応じて、ブリッジはTIMEと分の多かれ少なかれ値を更新することができます, 最後に、象限への色の変更のためのdip_swtichの住宅.
PCB MAIN:

これは、定義されたプリント基板です “メイン” それはマイクロArduino_Nanoを収容するよう, I2Cデバイスのための様々なコネクタとコントロールパネル. E’ また、象限を供給するための別の入り口を提供してきました (予想されるが、その後使用されていません). マイクロUSBは、回路の残りの部分に電力を供給する。.
PCB BUS_QUADRIとLED_SECONDS
最後の2つは、PCBサポートされています: BUS_QUADRI それはの接続を可能にします 4 PCBへの象限 メイン 入力信号と各供給と. LED_SECONDS 2個のLEDが第二の割合で点滅しなければならない家. このPCBは、ダイヤルの3時間の2と2分に位置しています; 電源及び信号を介して接続されています BUS_QUADRI.


CLOCK建設
下図では、象限の住宅が建設されているかを確認することができます:

木製のベースとサイドプレキシガラスと28センチメートルのフレームでは、彼らはに接着しました 4 写真などの象限: 秒間、右側PCB上の中央に2個のLED BUS_QUADRI メインへの接続のための. LEDはまた、最小輝度はまだ非常に明るいことを考えると, 個々のLEDの輝度は、左右側を覆うことができることを避けるために, 各象限は、 “カバー” ブラックマスク (可塑化) 個々のセグメントを強調表示します. 各セグメントは、黒厚紙片で包みました. presenaにここでの方法 “裸”.:

このシステムを使えば良いビューを取得します “別” ダイヤルの明るさは、横に干渉しないことをせずに全体のクロック. (レッドカラーことを忘れないでください,緑, ブルーしかし、彼らは互いに異なる明るさを持っています).
システムの心臓部:
マイクロArduino_Nanoに収容されているプレキシガラス箱を閉じ、コントロールパネルの画像下の画像で, そして、RTC PCF8574やダイヤルへのコネクタ. パネルはトリマーで構成されてい (10K) 明るさを調整します, 議事録のHOUR更新するためのボタンにより、. STARTボタンとRESET, 時間の正または負の値を更新するための最終的ブリッジ. 右側のディップスイッチと抵抗のアレイpull_up.

L’ ソフトウェアの実装
私は人生を複雑にしていない場合は満足していません: 時計を管理し、あなたが本当に初心者でない場合は難しいことではありません. 私は、読書に自分自身を制限するのは非常に簡単なスケッチをした可能性が’ RTC復号値とダイヤルの露光.
しかし、それ以来 “食欲は食べるが付属しています” 私は関与スケッチを実装しました:
- 管理 4 ライブラリをダイヤル ADAFRUIT_NEOPIXEL.
- の管理’ 値の更新とRTC必要. (DS1307と比較する場合には、より正確です, 唯一の夏/冬時間の場合は時々更新されます).
- の範囲で変化する明るさの管理 8 最小から最大限界値 (それが最大の我慢ではない場合でも、) アナログ表示とトリマーにより、.
- 個々のダイヤルのカラーマネジメント: それぞれは、前後とは異なる色を有していてもよいです: ディップスイッチを経由して、あなたは、のいずれかを選択することができます 4 定義された色: ROSSO, VERDE, BLU, ROSA. 彼らは誰のものですので、私はこれらの色を選びました “少ない電力を消費します”.
経営理念:
私はすでに接続の問題または複数の障害を避けるために示されているとおり, 私が管理することにしました 4 個別の象限 (その後、ちょうど 28 ダイヤルする主導). 私はその後、定義されました 4 ライブラリのインスタンス ADAFRUIT_NEOPIXEL 各象限の別の管理を得るために. スケッチは、個別に時間と分のために、個々のダイヤルのオフ切り替えを管理するために取られなければならないので、これは間違いなく、合併症結果.
すべて’ ライブラリの初期化がなされなければならない後にスケッチの開始を置きます NOW 個々の象限のシャットダウン: これらは、ランダムな色と最大輝度で点灯します. 各チェーンの色ZEROを送信する必要性を有効にするには: 基本的には黒. 代替的にはゼロに明るさをもたらすこととすることができます=.
スケッチは、プロトコルの開始を続行します ワイヤー I2Cデバイスの管理のための, 読み取ることで ディップスイッチ 色を決定します, 明るさを読み取るためのトリマー付き, その後の時間値の読み取りを開始’ RTCおよび実行するには、それぞれに時間と分の表示を被っ 4 象限. 次に、コントロール・パネル・ボタンのいずれかの読み出しを待機します. 押下された場合に時間ボタンは、ジャンパの位置に応じて、多かれ少なかれ相対値を更新します “+/-“. それは今変更した値を表示します. 対応するボタンが押された場合、同じ数分の値について起こります. ボタンを押します “開始” スケッチの最終サイクルをトリガー: これらの中で再ロードされる更新があった場合’ RTC. 多年生ループは、ケースの変更を行うための明るさや色Dip_Swtichを変化させるためにトリマーの位置を読み取ります. そして、彼らは時間ごとの値を読んでいます’ RTCおよびそれが行われる場合にのみ、彼らは様々で表示されています.
ASSIGNMENT PIN ARDUINO:
deifinisce下表Arduinoのピンが割り当てられているとして、:
|
ピン |
譲渡 |
|
A0 |
明るさの入力アナログトリマ |
|
ピン 2 |
DATAINダイアル 1 |
|
ピン 3 |
DATAINダイアル 2 |
|
ピン 4 |
DATAINダイアル 3 |
|
ピン 5 |
DATAINダイアル 4 |
|
ピン 6 |
時間ボタン (Pull_Up) |
|
ピン 7 |
ボタン分 (Pull_Up) |
|
ピン 8 |
START (Pull_Up) |
|
ピン 9 |
スイッチ +/- (Pull_Up) |
|
ピン 10 |
点滅LED秒 |
|
PIN A4 |
SDA RTC電子DS3231あたり |
|
PIN A5 |
SCLあたり RTC電子DS3231 |
LIBRARYのADAFRUIT_NEOPIXEL:
ダウンロードの名を冠したサイト (更新とNEO_PIXEL RINGとNeo_Pixel行列を処理する他の2つのバージョンがあります。) いくつかの機能を備えたこのライブラリは、LED WS2812のほぼ無制限の数を扱うことができます. 次のように主な機能は要約することができます:
まず、あなたは、次のパラメータを持つオブジェクトをインスタンス化する必要があります:
Adafruit_NeoPixelピクセル= Adafruit_NeoPixel (NUMPIXELS, ピン, NEO_RGB + NEO_KHZ800);
鳩: ピクセル インスタンスに付けられた名前です, NUMPIXELS 接続されたLEDの数 (チェーンの最初のオフセットで識別されます “ゼロ” 合計で 28 象限ごと), ピン 最初に接続するためのArduinoのデジタルピンを識別する DATA_IN 各鎖のLED. (テーブルprecednteを参照してください。). NEO_RGB + NEO_KHZ800 これは、LEDの色の配列が800HkzにおけるR-G-Bフォーマット及び周波数であることを示し. いくつかの例については、ほとんどの標準的な方にダウンロード. E’ 可能な各別の名前を与える複数のオブジェクトをインスタンス化します (明らかに). これらの定義は、変数のセクションに挿入する必要があります.
セクションで セットアップ インスタンスごとにライブラリを初期化する必要があります: nome_istanza.begin(). スケッチでは、そうあります 4 これらの文章の.
以下の機能は、各インスタンスの実際の管理を行います (およびそれに関連するチェーン). 輝度関数で制御されます: nome_istanza.setBrightness(値) これは、LEDのチェーン全体に適用されます.
各LEDチェーンの力 (ricodiamociです 28 チェーン) これは、LEDの位置の両方を示す発生します (そのゼロからのオフセット) 色が割り当てられること. 各LEDチェーンに異なる色を割り当てることができることになります. 機能の2つの形式があります:
INSTANCE_NAME.setPixelColor(Led_Offset,nome_istanza.Color(R,グラム,B)); このライブラリは、コードR1、G1、B1に定義された値に応じた色に委譲されていると (与えます 255), 代わりに第二の形式はdirecltyカラーコードを規定します (32 ビット符号なし): nome_istanza.setPixelColor(Led_Offset,codice_colore).
スケッチ内のサイクルを行います 28 割り当て、各象限のLEDの鎖のセグメントをオンにする反復.
それが機能を行わなかった場合は、すべてこれはどんな結果につながりません: nome_instanza.show(). この関数は、常に私たちはLEDを確認したい場合はオンまたはオフにしたり、その明るさを変更する実行する必要があります.
後者の機能の使用について行われる反射があります: それは/だけつのLEDをオンまたはオフに特定の機能の後に明るさを変化させるようになれば, 単に機能を実行します ショー() プログラムを実行します. しかします (この場合) 一つは2つの手法を使用することができるよりも多くのLEDがオン/オフされます: サイクルで機能ショーを実行するオフサイクルの終わりに/上にスイッチング特定の機能を実行します() または同じサイクル中に、以下の実行機能を表示().
ここでは例です (スケッチへの道). LEDをオフにルーチン: からチェーンのNQ数 1 A 4 ルーチンは、1つの象限または全ての電源をオフにしますが含まれているとして、 (NQ = 0).
無効シャットダウン(バイトNQ)
{ int型KL;
もし (NQ == 0 || NQ == 1)
{ にとって (キロリットル= 0; に < NUMPIXELS; 午後++) QDR_DEC_ORE.setPixelColor(に,0);
QDR_DEC_ORE.show(); }
この場合、機能のショー() forループの終了時に行われます.
ショー機能が実行された後に、この例ではlumimositàは場合にのみ変更されました():
QDR_DEC_ORE.setBrightness(Lumen_Value);
QDR_DEC_ORE.show();
別のライブラリ関数は、LEDに割り当てられた色を検出し、: フォーマットでカラーコードを返します 32 ビット符号なし: nome_istanza.getPixelColor(Led_Offset).
結論:
私は、私は十分に今3月からこのプロジェクトを説明したものを少し自由な時間を占めていたと思っています. 私は通常よりも多くを費やすしないでください 2 この趣味に時間: 問題のプログラミングを持たせることが困難であるので、私はプログラミングにいくつかの経験を持っています. 私はプロジェクトを考えていますupgrandig: DS3231は、センサを収容することがわかる温度の表示や色のランダムな変更をもを入力してください. 私たちは、表示されます….
私はとにかくすべてに感謝します ElettroAmici 時間のために、彼らは、この記事を読んで過ごしてきました. 私は私が繰り返してる知っています…..これはまた別の時計です. いずれにせよ、彼らはこのプロジェクトに関するドキュメントや他のしたい方にご利用いただけます.
感謝
Gvsoft Gugno 2019
gvsoft75@hotmail.com



今、あなたが慣れているような優れました.
ずっとあなたが画像自体の低解像度を表示することはできませんが、彼らは少しダイアグラムを拡大するように私はあなたの記事に追加しました, よりよい何もないよります
感謝, Amilcare, 遅延が大きいものの, 私は月曜日に解決しなければならないいくつかの健康上の問題を抱えていました 15 cm.
私はコメントすることを望んだが、明らかに私は私の記事にコメントすることはできません. 私は、これらのLEDを使用してに興味がある可能性があり、それらのためのいくつかの提案を提供するために、この応答では、この機会を利用して. almento 2Aから5Vまたは3Vから良い電源を提供. コンデンサを入れてください 1000 PSUのUF出力. 使用に一つずつすべてのLEDをチェック: 私はuinaチェーンをしようとする小さなPCBを持っていました 8 そのいくつかのLEDの発見主導 “偽物” そして、それらの彼に従う者 “クレージー”. あなたはDIN DOUTと接続し、特に一つの良いプロのPCBテストトラックを作るチャンスを持っていない場合. チェーンの終わりに (または早期) セラミックconsensatoreを挿入 (コード 104). 心に留めシステムの電源投入時に、全てのLEDは、通常、青色及びいくつか白の最大輝度でオンにされていること: これは、電力消費のピークを意味します. 機能の後に最初に行うべきことはそう始めます() それはショーの機能を備えたチェーンから外れています() 各LEDカラーブラックに送信ループを有します (RGB: 0,0,0).
チェーン内のLEDの数に制限はありません, ミリアンペア, あなたは記事に見られるように, 私 112 LEDはによって管理されています 4 異なる鎖. これはプログラミングで合併症を意味しますが、それは単純化し、より良いいくつかの誤動作を解決することができます: この場合の第1象限 (数十時間) いくつかの時間は、問題を与えるようになったし、私は新しいものを作る必要があった後に: LEDはおそらくありました “偽物” しかし、彼は望んでいたとき、 !!!!.
おかげで再びAmilcare