Arduinoマジッククロック:16ステップ(写真付き)

Arduinoマジッククロック:16ステップ(写真付き)

目次:

Anonim

時計が時間だけでなくあなたにもっと教えてくれるとしたら?このInstructableの中で、私たちは一見するだけで、あなたがどこにいるのか、そして周囲の気温を上げるために物事を盛り上げるために誰かに言うことができる時計を作るつもりです。さて、あなたのArduinoをつかみ、始めましょう:)

このために必要なもの

  • アルドゥイーノ
  • ブレッドボード
  • ワイヤー
  • 木材(バルサまたは段ボール)
  • サーボ
  • 温度センサー
  • 抵抗器
  • ホットグルー
  • きらめき

用品:

ステップ1:プロトタイピングクロックデザイン

あなたが日中にいる可能性が最も高い場所を書き留めて、あなたのデザインを始めます。これらは時計の最初のいくつかの位置になるでしょう、そしてあなたの時計をユニークにするためにいくつかの楽しいものを追加します。私の時計には "Mortal Danger"と "Lost"を追加しました。さて、スーパーコールドからスーパーホットまで、気温を表す5つの単語を考えてください。私は「凍結」、「肌寒い」、「ちょうどいい」、「暖かい」、「ふくらみ」を使いました。

次に、Illustratorでプロトタイプをデザインしました。私のテンプレートを使用したい場合は、添付ファイルをダウンロードしてください。私はXactoナイフで紙の原型を切り取り、木の上に外側の円を描きました。私の時計の直径は約12インチです。プリンタが時計の文字盤全体を一度に処理できない場合は、写真の半分ずつをテープで貼り付けて、穴の位置をマークしてください。

ステップ2:ペイント時計の文字盤をカットする

X-actoやのこぎりを使って時計の外側の輪郭をカットし、3/4 "のドリルで穴を開けます。それから私は上半分の部分にペインターテープを使い、それを青くスプレー塗装しました。テープの線を反転して下半分の銀をスプレー塗装し、すべてが乾いている間にX-actoナイフを使って時計の位置を切り取ります。

ステップ3:時計の文字盤を飾ります

私たちの位置は切り取られ、裏返し、接着剤でこすり、時計の文字盤の中心に合わせて押し下げます。

私はこの部分で少し凝っているかもしれません、しかし、私は「あなたはこの時計をもっと魔法のようにするものを知っています…..キラキラ!」と思いましたそれで私は時計の位置の端の周りに接着剤のビーズを走らせて、そして次にその上にたくさんの量のきらめきを振りかけました。それを振り払うとそれはあなたのレタリングの周りに素敵なきらめくボーダーを残すでしょう。

ステップ4:サーボモータを追加する

私はサーボを収容するために時計の中心の穴の大きさを調整する必要がありました、ドリルとファイルはこのプロセスの短い仕事をします。次に、サーボモーターを熱接着します。あなたの時計機構が時計の文字盤をこすらないように、正面に対して90度にサーボを保つことは非常に重要です。接着剤が乾くまでサーボを正しい位置に保持しました。

ステップ5:LED拡張

LEDの脚を延長して、ブレッドボードに簡単に差し込めるようにする必要があります。これをするために私達はワイヤーを一緒にねじり、次にそれらをはんだで電気的に接続しようとしています。ユニバーサルストリッパーでワイヤの両端を剥がすことから始めます。次に強力な機械的ロックを形成するために一緒にワイヤーをねじる、あなたはそれらがバラバラになることなくワイヤーを軽く引っ張ることができるはずです。もう少しねじれを取得するためにペンチを使用することを躊躇しないでください。それからあなたのアイロンを使い、ワイヤーを一緒にはんだ付けしてください。

ステップ6:LEDを時計に追加する

すべてのLEDをはんだ付けした状態で、それらをバッククロックに追加します。私はLEDの根元で90度リードを曲げ、ホットグルーガンを使って5つの温度カットアウトの中央に固定しました。

ステップ7:LEDの配線1

両面テープを使用してArduinoとブレッドボードを時計の裏側に固定しました。 LEDの配線を始めるために、私はブレッドボードのネガティブコラムにすべてのアース線(緑色の線)を入れました。それから私はすべての電源コードを順番にブレッドボードに差し込みました。

ステップ8:LEDの配線2

今度はすべての正LEDの導線からArduinoへの別のワイヤを追加します。私はこのためにピン4から8を使いました、しかしあなたはもちろんあなたが望むどんなピンも使うことができます。

ステップ9:サーボモータの配線

サーボ電源線をArduinoの5Vピンに差し込むことから始めます。それから黒のワイヤーをGNDに、そして信号ケーブル(あなたのサーボに応じて白かオレンジ色かもしれません)をPWM機能のあるピンに差し込みます。私はピン3を使いました。 ArduinoのGNDをすべてのLEDで使用されているグランドレールに接続します。

ステップ10:温度センサーを追加する

この温度センサーは、部屋の温度に応じて電圧を変えることによって機能します。これは、部屋の中の光の量に基づいて光センサーが電圧を変える方法と非常によく似ています。温度センサーを配線するには、まず信号である中央の脚からA0ピンに配線を配置することから始めます。私の回路では、信号線はオレンジ色です。

それから、センサーに電力とアースを追加したいと思うでしょう。これはサーボモーター回路へのわずかな修正を必要とするでしょう。 Arduinoの5Vピンに直接サーボ電源を差し込むのではなく、5V電源からブレッドボードにワイヤを引き、温度センサーとサーボの両方を同じ列に差し込みます。あなたの回路が下のものに似ているならば、あなたは正しい軌道に乗っています。

ステップ11:時計針を取り付ける

このプロジェクトのすべての回路が完成したので、今度は時計をひっくり返して顔を動かしましょう。時計の針を作るために、私は私が見つけた古い時計から時計の針を切り落とすことから始めました。これをやっている間あなたの安全メガネをかけなさい:)次にあなたの熱い接着剤銃をつかみ、サーボモータアタッチメントの上に接着剤の細いビードを置いて、次にすぐに時計の針をつける。

ステップ12:コーディングパート1

5つのLED、サーボ、温度センサーの標準的な、しかし少し大きい初期化からコーディングを始めます。さらに、私たちはinitialTempと呼んでいるサーボクロック位置と温度変数のためのプレースホルダー変数を作成します。これはfloatとしてラベル付けされ、小数点付きの数字を含んでいることに注意してください。これは私達に温度測定に関するより多くの分解能を与えるでしょう

#include Servo myservo; int clockPos = 0。 int tempSensorPin = A0; const float initialTemp = 20.0; int tempLED1 = 4。 int tempLED2 = 5。 int tempLED3 = 6。 int tempLED4 = 7。 int tempLED5 = 8。

多くのpinModeの設定に加えて、Arduinoに接続したサーボをそのソフトウェアインクルードライブラリに接続する必要があります。サーボをピン3に取り付けたので、関数myservo.attach(3)を使用してArduinoにどのピンをPWMにするかを知らせます。

void setup(){Serial.begin(9600); myservo.attach(3)。

ステップ13:コーディングパート2

時計の針を制御しやすくするために、Arduinoに時計の可能な位置(例:仕事、旅行など)に0から6までの番号を付けるようにプログラムします。 Arduinoに送っている数字を理解する。実際の手の動きをトリガーするために、エンターキーが押されたかどうかを確認するために、目に見えない " n"が送信されたことを覚えておいてください。サーボへの新しい位置。

if(Serial.available()> 0){int clockPos = Serial.parseInt(); if(Serial.read()== ' n'){myservo.write(clockPos * 25 +((clockPos + 1)* 3));遅延(200)。 }}

私は時計の位置の角度を小さくするために使用していた数学に多くの調整が必要でしたが、それは25で私達が入力した数(clockPos)を掛け、次に位置の中心に近い矢印を得るために適切なオフセットを考え出すことになります時計の文字盤にロゴ。私は私に1を加えてから見栄えの良いオフセットを得るために3を掛けた。これがどのように機能するのかを示すために、いくつかの実数を使って数学を見ていきましょう。

サーボ位置演算

自分の時計の位置を使用して、自分が "Traveling"であることを証明したいとします。これは、1が「致命的な危険」、0が「作業」である2という数字で表されます。

したがって、clockPos = 2です。

サーボ角=(2 * 25)+((2 + 1)* 3)

サーボ角= 59度

Arduinoにとって、それがサーボ書き込み線が今このように見える数学を解くと、それはまさに私たちが望むことです。

myservo.write(59);

ステップ14:コーディングパート3

次のコードブロックでは、メインループに戻り、温度センサーをアナログで読み取ります。少し遅れて、値が安定するまでの時間を確保します。次に、読み取っている電圧を温度に変換するために、ADCから取得している数値を最大値の1024で割り、5Vを掛けます。これにより、温度センサーの値がボルトで表示されます。それを次数にするには、0.5を引いてから、その全体を100倍します。それは複雑でしたが、私たちはほとんど終わりました。

int tempVal = analogRead(tempSensorPin);遅延(10)。 float temp =((((tempVal / 1024.0)* 5) - 。5)* 100; Serial.println(一時);

温度センサーのコーディングを終了するために、以前使用したのと同じコードと機能を使用して、各LEDライト用のスイッチケースを作成します。もう1つ追加するのは、室内の温度を0〜4の数値にマッピングすることです。これにより、スイッチケースを使用してLEDを制御できます。

int switchcase = map(temp、12、28、0、4); Serial.println(switchcase);

ステップ15:コードをアップロードしてテストする

あー!これは私達がこれまでに書いた中で最も挑戦的なコードでした。それではアップロードして私たちの時計を試してみましょう。

ステップ16:あなたの新しい時計を楽しんでください!

できたね!!!!誰もが見ることができる場所にあなたの時計を誇らしげに掛けてください。あなたは素晴らしいプロジェクトを終えただけでなく、あなたはとても多くを学びました。