Arduino + LED +ファン= POV "APPLAUSE"サイン:6ステップ(写真付き)

Arduino + LED +ファン= POV "APPLAUSE"サイン:6ステップ(写真付き)

目次:

Anonim

私は他のInstructablesでこれらのPOV(Persistence of Vision)デバイスを見て、それを作りたいと思ったし、私はいつも私自身の "APPLAUSE"サインを望んでいました。次の改善は、私が部屋に入るたびにそれを継続させることです。:)「そして、これがチャーリーです」と言ってもらうかもしれません。しかしそれはまた別の時です。

それで私はガレージセールでファンを得ました、若干の読書をしました、若干のコードを見つけました、そして、以下は活動中の私のマシンのビデオです。

私はScott MitchellによるInstructable - "Arduino Bike POV" - から素敵なコードで始めましたが、私がやめたのは彼のコードがかなりまとめられたことです。最初はうまく動かなかったので、コードを変更し続けます。私の問題はコードとは関係がないことがわかった。それで、私は彼のコードに戻ってもう一度試してみるつもりです。彼はもっと一般的で、さまざまなフレーズでより簡単に動作するからです。しかしそれはまた後のことです。

下のビデオは実際のPOVを示しています。ビデオのように実生活では壊れたり切断されたりしているようには見えません。

用品:

ステップ1:ものを入手

このプロジェクトで使用される項目

小型ファン - ガレージセール - 2.00

その他材木 - 私の地下室 - 0.00

長さ15 x 2.5インチのプラスチック - 私の地下室 - 0.00

Arduino - 私はSolarBoticsのArdweenyを使っています - 約10.00

7つの赤いLED - すでに持っていた - 1.00

7〜330オームの抵抗器 - 3.00

ホールセンサー - Adafruitから入手しました - US5881LUA - 2.00

ホールセンサで使用する1 10k抵抗 - 1.00

地元のホビーショップにあるマグネット2個 - 1.00

ワイヤー、9Vバッテリー、ネジ、ロックタイト5分エポキシ、Radio Shackの小型PCB

ステップ2:組み立てを始める

1. 3 x 5ピースの1/4インチ合板を切り、ファンハブに固定します。今のところエポキシだけがLEDアセンブリをファンに固定しています。おそらく安全のためにいくつかのワイヤータイが良いでしょう。後で追加すると思います。

2.持っていた素材から15 x 2.5インチのプラスチック片を切ります。 Home Depotでプラスチックのシートを持っていくことができます。私はちょうどサイズを推測しました、そしてそれはかなり良いことが判明しました。

3. LED用に片方の端に7つの穴を3/4インチ離れて開けます。 LEDを穴にしっかりと押し込むことができるドリルサイズを見つけました。彼らがうまく収まらなかったならば、私は適所に保持するために熱い接着剤の軽くたたくことを使いました。

4. 7個のLEDを穴に差し込みます。

5.小さい木ねじでプラスチックを3 x 5合板に取り付けます。

ステップ3:ファンホルダーを完成させる

これはあなたが使うファンによって異なります。私は1×6の切片から切り欠きを切り、ファンの裏側を切り込みに挿入することができ、それからワイヤータイを使ってファンをボードに固定しました。私はそれがベースボードに当たらないところにファンを持って来るために1×3秒を2、3回使って全体のユニットを上げる必要がありました。裏側に合板を追加したので、効果がよくわかります。それから私はすべてを黒く塗った。

ステップ4:ArdweenyとLED

SolarboticsのArdweenyはキットに入っていて、ピースを一緒にはんだ付けするのに約30分かかります。それはブレッドボード上での使用を意図しています、そして私が回路にパンを乗せさせた後、私は順番に合板に取り付けることができるPCBボードの小さい部分にそれをはんだ付けします。 ArdweenyはLEDと共に回転します。

Ardweenyが構築された後、LEDを配線する時が来ました。共通のアース線として裸の銅線を使用しました。 LEDからの短いワイヤはそれぞれ銅線にはんだ付けされ、次に銅線はArdweenyのグランドに接続されます。 LEDの長い方の正の脚から、Ardweenyにワイヤを接続し、回路に330オームの抵抗を含めます。

LEDをピン1、2、3、4、5、6、7に接続し、一番外側のLEDをピン1に接続します。

すべての接続が完了したら、Ardweenyを合板に取り付けます。私はPCBを通して小さなネジを使いました。

ステップ5:ホールセンサーとバッテリー

ホールセンサ:

ホールセンサーをプラスチックの端に取り付けます。私は最初にセンサーを小さなPCBにはんだ付けし、次に小さなねじでPCBをプラスチックに取り付けました。

センサーを接続するために、Adafruitで入手した以下の情報を使用しました。 「3.5Vから24Vまでで動作します。電源をピン1に接続し(左いっぱいまで)、ピン2に接地し(中央)、次にピン3から10Kのプルアップ抵抗を使って電源に接続します。磁石のS極がセンサーの正面近くにあると、ピン3は0Vに下がりますが、そうでなければプルアップ抵抗が接続されているものは何にでもとどまります磁石のN極が近くにあると(ユニポーラ)何も起こりません。 「

センサー用マグネット:

ダボの端に小さな磁石を取り付け、ダボをファンサポートに取り付けました。私はファンの両側でこれをしました。一方の磁石の南側を外側に向け、もう一方の磁石の北側を外側にさせることが重要です。

アイデア:このセンサーはラッチタイプなので、1か0です。スピンが始まると最初のマグネットがLEDを点灯させ、もう一方のマグネットに到達するとオフにします。もちろんこれはソフトウェアと一致しています。

紫色の線はアナログピン0に、黒はアースに、そして赤はA +ピン(5ボルト出力)に行きます。

電池:

9Vバッテリーは回転するプラスチックのカウンターバランスとして機能する場所に配置する必要があります。プラスチックのバランスがあまり良くない場合は、速度に達するとファン全体が揺れます。ラバーバンドとワイヤータイの組み合わせを使って固定しましたが、交換が必要な場合はまだ取り出すことができます

バッテリーからのプラスとマイナスのワイヤーを適切なピンに配線します。私はArdweenyを消すことができるように私はスイッチを含めました。スイッチは両面テープで合板に取り付けられています。

ステップ6:コード

POVプロジェクトを検索したところ、POV Bikeプロジェクトのコードが見つかりました。

以下は私が使用したものですが、それはオリジナルからは程遠いものです。オリジナルははるかに包括的で洗練されていますが、私は彼のコードから始めたので、彼に信用を与えるべきです。

またスケッチは私がインターネットを捜した後見つけたfont.hファイルを含んでいる。私はそれがオリジナルの一部であったfont.hであることを確信していません。以下に私のものを含めました。

// Arduino Bike POVプロジェクトのコード

// Arduinoの自転車ハメ撮り

//

// Scott Mitchell著

// www.openobject.org

//オープンソースの都市主義

//

// Copyright(C)2008 Scott Mitchell 12-10-2008

//

//このプログラムはフリーソフトウェアです:あなたはそれを再配布したり、修正することができます

//によって公開されているGNU一般公衆利用許諾契約書の条項の下で

//フリーソフトウェア財団、ライセンスのバージョン3、または

//(あなたの選択で)それ以降のバージョン。

//

//============================================================

// 6/2011 cによって大幅に変更された。私のPOVプロジェクトのためのDubois

//ホールセンサーはスイッチなので別のコードを使いました

//私が見つけたfont.hも使った

// ------------------------------------------------------------

//アルファベットを定義する

#include "font.h"

//使用中のArduino LEDピンを定義します

const int LEDpins = {

1,2,3,4,5,6,7};

// LEDの数

const int charHeight = sizeof(LEDピン);

const int charWidth = 5。

//センサー設定

const int sensorPIN = 0; // Arduinoセンサーピンを定義します

// boolean sensorFlag = false; //センサーの状態を保存

int sensVal; //センサーからの値を格納するための変数

const char textString = "APPLAUSE";

void setup()

{

pinMode(13、出力);

pinMode(1、OUTPUT);

pinMode(2、OUTPUT);

pinMode(3、OUTPUT);

pinMode(4、出力);

pinMode(5、出力);

pinMode(6、OUTPUT);

pinMode(7、OUTPUT);

// Serial.begin(9600);

}

void loop()

{

//中央の円を表示し、arduinoが起動していることを証明する

digitalWrite(13、HIGH); // LEDを点灯させる

sensVal = analogRead(sensorPIN); //ホール効果センサーを読む

// Serial.println(sensVal);

// delay(500);

//ここは苦労した

//それはスイッチホールスイッチなのでおそらくデジタル読み取りをするだけでよいでしょう

if(sensVal!= 1023){

// textStringのすべての文字を印刷します

(int k = 0; kの場合)

printLetter(textString k);

}

}

}

void printLetter(char ch)

{

//文字がアルファベットの範囲内にあることを確認します(font.hファイルで定義)

//そうでない場合は、空白文字にします

if(ch <32 || ch> 126){

ch = 32。

}

//スペース文字を引きます(ASCII番号をフォントインデックス番号に変換します)

ch - = 32。

//文字配列の各バイトをステップスルーする

(int i = 0; iの場合

バイトb =フォントch i;

//バイトをビットシフトしてピンに出力する

(int j = 0; jの場合)

digitalWrite(LEDピンj、!!(b&(1 << j)));

}

//列間のスペース

delayMicroseconds(900)。

}

// LEDを消す

digitalWrite(1、LOW); // LEDを点灯させる

digitalWrite(2、LOW); // LEDを点灯させる

digitalWrite(3、LOW); // LEDを点灯させる

digitalWrite(4、LOW); // LEDを点灯させる

digitalWrite(5、LOW); // LEDを点灯させる

digitalWrite(6、LOW); // LEDを点灯させる

digitalWrite(7、LOW); // LEDを点灯させる

//文字間のスペース

delayMicroseconds(2500)。

}

--------------------------------------

----------------------------------------

///============================================================

// Arduinoの自転車ハメ撮り

// font.h

//

// Scott Mitchell著

// www.openobject.org

//オープンソースの都市主義

//

// Copyright(C)2008 Scott Mitchell 12-10-2008

//

//このプログラムはフリーソフトウェアです:あなたはそれを再配布したり、修正することができます

//によって公開されているGNU一般公衆利用許諾契約書の条項の下で

//フリーソフトウェア財団、ライセンスのバージョン3、または

//(あなたの選択で)それ以降のバージョン。

//

//このプログラムは、役に立つことを願って配布されています。

//しかしいかなる保証もなし。の黙示の保証もありません

//商品性または特定の目的への適合性。を参照してください

//詳細については、GNU General Public License。

//

// GNU一般公衆利用許諾契約書のコピー

//で見つけることができます .

//

// B4.1

//最終更新日:2008年10月13日

//============================================================

//アルファベットを定義する

// LEDモジュールの7×5横送り文字

//

// const byteフォント 5 = {

const unsigned charフォント95 5 = {

{0x00,0x00,0x00,0x00,0x00}、// 0x20 32

{0x00,0x00,0x6f、0x00,0x00}、//! 0x21 33

{0x00,0x07,0x00,0x07,0x00}、// "0x22 34

{0x14,0x7f、0x14,0x7f、0x14}、//#0x23 35

{0x00,0x07、0x04、0x1e、0x00}、// $ 0x24 36

{0x23,0x13,0x08,0x64,0x62}、//%0x25 37

{0x36,0x49,0x56,0x20,0x50}、//&0x26 38

{0x00,0x00,0x07,0x00,0x00}、// '0x27 39

{0x00,0x1c、0x22,0x41,0x00}、//(0x28 40

{0x00,0x41、0x22、0x1c、0x00}、//)0x29 41

{0x14,0x08,0x3e、0x08,0x14}、// * 0x2a 42

{0x08,0x08,0x3e、0x08,0x08}、// + 0x2b 43

{0x00,0x50,0x30,0x00,0x00}、//、0x2c 44

{0x08,0x08,0x08,0x08,0x08}、// - 0x2d 45

{0x00,0x60,0x60,0x00,0x00}、// 0x2e 46

{0x20,0x10,0x08,0x04,0x02}、// / 0x2f 47

{0x3e、0x51、0x49、0x45、0x3e}、// 0 0x30 48

{0x00,0x42,0x7f、0x40,0x00}、// 1 0x31 49

{0x42,0x61,0x51,0x49,0x46}、// 2 0x32 50

{0x21,0x41,0x45,0x4b、0x31}、// 3 0x33 51

{0x18,0x14、0x12、0x7f、0x10}、// 4 0x34 52

{0x27,0x45,0x45,0x45,0x39}、// 5 0x35 53

{0x3c、0x4a、0x49,0x49,0x30}、// 6 0x36 54

{0x01,0x71,0x09,0x05,0x03}、// 7 0x37 55

{0x36,0x49,0x49,0x49,0x36}、// 8 0x38 56

{0x06,0x49,0x49,0x29,0x1e}、// 9 0x39 57

{0x00,0x36,0x36,0x00,0x00}、//:0x3a 58

{0x00,0x56,0x36,0x00,0x00}、//; 0x3b 59

{0x08,0x14,0x22,0x41,0x00}、// <0x3c 60

{0x14,0x14,0x14,0x14,0x14}、// = 0x3d 61

{0x00,0x41,0x22,0x14,0x08}、//> 0x3e 62

{0x02,0x01,0x51,0x09,0x06}、//? 0x3f 63

{0x3e、0x41,0x5d、0x49,0x4e}、// @ 0x40 64

{0x7e、0x09,0x09,0x09、0x7e}、// A 0x41 65

{0x7f、0x49,0x49,0x49,0x36}、// B 0x42 66

{0x3e、0x41,0x41、0x41、0x22}、// C 0x43 67

{0x7f、0x41、0x41、0x41、0x3e}、// D 0x44 68

{0x7f、0x49,0x49,0x49,0x41}、// E 0x45 69

{0x7f、0x09,0x09、0x09、0x01}、// F 0x46 70

{0x3e、0x41,0x49,0x49,0x7a}、// G 0x47 71

{0x7f、0x08、0x08、0x08、0x7f}、// H 0x48 72

{0x00,0x41,0x7f、0x41,0x00}、// I 0x49 73

{0x20,0x40、0x41、0x3f、0x01}、// J 0x4a 74

{0x7f、0x08、0x14、0x22、0x41}、// K 0x4b 75

{0x7f、0x40,0x40、0x40、0x40}、// L 0x4c 76

{0x7f、0x02、0x0c、0x02、0x7f}、// M 0x4d 77

{0x7f、0x04、0x08、0x10、0x7f}、// N 0x4e 78

{0x3e、0x41、0x41、0x41、0x3e}、// O 0x4f 79

{0x7f、0x09、0x09、0x09、0x06}、// P 0x50 80

{0x3e、0x41,0x51、0x21、0x5e}、// Q 0x51 81

{0x7f、0x09、0x19、0x29、0x46}、// R 0x52 82

{0x46,0x49,0x49,0x49,0x31}、// S 0x53 83

{0x01,0x01,0x7f、0x01,0x01}、// T 0x54 84

{0x3f、0x40、0x40、0x40、0x3f}、// U 0x55 85

{0x0f、0x30、0x40、0x30、0x0f}、// V 0x56 86

{0x3f、0x40、0x30、0x40、0x3f}、// W 0x57 87

{0x63,0x14、0x08、0x14、0x63}、// X 0x58 88

{0x07,0x08,0x70,0x08,0x07}、// Y 0x59 89

{0x61,0x51,0x49,0x45,0x43}、// Z 0x5a 90

{0x3c、0x4a、0x49、0x29、0x1e}、// 0x5b 91

{0x02,0x04,0x08,0x10,0x20}、// 0x5c 92

{0x00,0x41,0x7f、0x00,0x00}、// 0x5d 93

{0x04,0x02,0x01,0x02,0x04}、// ^ 0x5e 94

{0x40,0x40,0x40,0x40,0x40}、// _ 0x5f 95

{0x00,0x00,0x03,0x04,0x00}、// `0x60 96

{0x20,0x54,0x54,0x54,0x78}、// 0x61 97

{0x7f、0x48、0x44、0x44、0x38}、// b 0x62 98

{0x38,0x44,0x44,0x44,0x20}、// c 0x63 99

{0x38,0x44,0x44,0x48,0x7f}、// d 0x64 100

{0x38,0x54,0x54,0x54,0x18}、// e 0x65 101

{0x08,0x7e、0x09,0x01,0x02}、// f 0x66 102

{0x0c、0x52,0x52、0x52、0x3e}、// g 0x67 103

{0x7f、0x08、0x04、0x04、0x78}、// h 0x68 104

{0x00,0x44,0x7d、0x40,0x00}、// i 0x69 105

{0x20,0x40、0x44、0x3d、0x00}、// j 0x6a 106

{0x00,0x7f、0x10,0x28,0x44}、// k 0x6b 107

{0x00,0x41,0x7f、0x40,0x00}、// l 0x6c 108

{0x7c、0x04,0x18、0x04、0x78}、// m 0x6d 109

{0x7c、0x08、0x04、0x04、0x78}、// n 0x6e 110

{0x38,0x44,0x44,0x44,0x38}、// o 0x6f 111

{0x7c、0x14、0x14、0x14、0x08}、// p 0x70 112

{0x08,0x14,0x14,0x18,0x7c}、// q 0x71 113

{0x7c、0x08、0x04、0x04、0x08}、// r 0x72 114

{0x48,0x54,0x54,0x54,0x20}、// s 0x73 115

{0x04,0x3f、0x44,0x40,0x20}、// t 0x74 116

{0x3c、0x40、0x40、0x20、0x7c}、// u 0x75 117

{0x1c、0x20、0x40、0x20、0x1c}、// v 0x76 118

{0x3c、0x40、0x30、0x40、0x3c}、// w 0x77 119

{0x44,0x28、0x10、0x28、0x44}、// x 0x78 120

{0x0c、0x50、0x50、0x50、0x3c}、// y 0x79 121

{0x44,0x64、0x54、0x4c、0x44}、// z 0x7a 122

{0x00,0x08,0x36,0x41,0x41}、// {0x7b 123

{0x00,0x00,0x7f、0x00,0x00}、// | 0x7c 124

{0x41,0x41,0x36,0x08,0x00}、//} 0x7d 125

{0x04,0x02、0x04、0x08、0x04}、//〜0x7e 126

};

/*

Creative Commons表示 - 非営利 - 共有ライセンス2.5オーストラリアライセンス

最終更新2009年1月11日14:41。このページは1,477回アクセスされました。

内容はクリエイティブコモンズ表示 - 非営利 - 継承2.5オーストラリアライセンスに基づいて利用可能です。

オープンソースの都市主義について

免責事項

Powered by MediaWiki

*/

のファイナリスト

LEDコンテスト