まず、インターネットで同様のプロジェクトを研究し、 優れた仕事 Rimidalwを見つけました。 他の人の経験を分析し、自信を得た後、私は自分のプロジェクトの実施に進みました。
目的:
「暗闇での自動階段照明」
タスク:
1) 制御回路の組み立て
- デザイン全体の頭脳はArduino Miniです
- 2つのPIRセンサーがセンサーとして機能
- ピンを増やすには、 74HC595チップ
- LEDストリップはULN2003A ICによって制御されます
- 光センサーフォトトランジスター
- 2つの出力+12および+5を備えた電源
2) 回路基板の回路とハウジングの製造
彼は素早く設計することを学び、多くのCADプログラムを試しました。最も便利なのはEAGLEでした。 そして、 製造方法の 1つは、このトピックが好きな友人によって説明され、実証されました。 ファイル(brd、sch)
装置全体はコネクタ付きの別のユニットで作られているため、故障または近代化が発生した場合、制御モジュールまたは作業体を変更することができます。
彼はgetinaxの箱を作りました。 彼は不要なデバイスからコネクターを引きちぎり、冷間溶接に接着しました。
3) プログラムを書く
コードはここに隠れています>>
アクセスラダーがなかったので、マイクロバルブのモデルで実験しなければなりませんでしたが、残念ながら彼女は記事を書く段階まで生きていませんでした。
int DS_Pin = 11; //pin 14 DS/SDI on the 75HC595 int ST_Pin = 8; //pin 12 ST_CP/RCLK on the 75HC595 int SH_Pin = 12; //pin 11 SH_CP/SRCLK on the 75HC595 const int PIR1 = 5;// - const int PIR2 = 6;// - int sensorPin = A0;// // ****** int OverTime =15000; // () const int N=14; //- int Qck_tm = 300; // int Wt_tm = 2000; // int L=30; // // ****** int a1,a2; // long pM=0; // millis() long pM1=0; // millis() long pM10=0; // millis() unsigned int sensorValue = 0; // int registers[N+1]; // boolean b2=false; // boolean b3=false; // void setup(){ pinMode(PIR1, INPUT); pinMode(PIR2, INPUT); pinMode(DS_Pin, OUTPUT); pinMode(ST_Pin, OUTPUT); pinMode(SH_Pin, OUTPUT); Serial.begin(9600); clearRegisters(); writeRegisters(); } // void clearRegisters(){ for(int i = N; i >= 0; i--){ registers[i] = LOW; } } // void writeRegisters(){ digitalWrite(ST_Pin, LOW); for(int i = N; i >= 0; i--){ digitalWrite(SH_Pin, LOW); int val = registers[i]; digitalWrite(DS_Pin, val); digitalWrite(SH_Pin, HIGH); } digitalWrite(ST_Pin, HIGH); } // void setRegister(int index, int value){ registers[index] = value; } // void LightON(boolean a){ b2=true; if(a) for (int k=0;k<=N;) { a1=digitalRead(PIR1); if ( a1==HIGH && millis() - pM1 > 1000) { pM1 = millis(); } if (millis() - pM > Qck_tm) { pM = millis(); setRegister(k, HIGH); writeRegisters(); k++; } } else for (int k=N;k>=0;) { a2=digitalRead(PIR2); if ( a2 == HIGH && millis() - pM1 > 1000) { pM1 = millis(); } if (millis() - pM > Qck_tm) { pM = millis(); setRegister(k, HIGH); writeRegisters(); k--; } } } // void LightOFF(boolean a){ b2=false; if(a){ int k=0; while(k<=N) { a1=digitalRead(PIR1); if (a1== HIGH){ LightON(true); break; } if (millis() - pM > Qck_tm){ pM = millis(); setRegister(k, LOW); writeRegisters(); k++; }}} else { int k=N; while(k>=0) { a2=digitalRead(PIR2); if (a2 == HIGH){ LightON(false); break; } if (millis() - pM > Qck_tm){ pM = millis(); setRegister(k, LOW); writeRegisters(); k--; }}} } void loop(){ sensorValue = analogRead(sensorPin); // Serial.println(sensorValue, DEC); if (sensorValue < L){ a1=digitalRead(PIR1); if ( a1 == HIGH && a2== LOW)// { pM=millis(); LightON(true); while (b2) { a2=digitalRead(PIR2); if (a2 == HIGH && millis() - pM10 > 1000 || (millis() - pM > OverTime)) { pM10 = millis(); LightOFF(true); }}} a2=digitalRead(PIR2); if (a2 == HIGH && a1 == LOW) { pM=millis(); LightON(false); while (b2) { a1=digitalRead(PIR1); if (a1== HIGH && millis() - pM10 > 1000 || (millis() - pM > OverTime)) { pM10 = millis(); LightOFF(false); }}}}}
アクセスラダーがなかったので、マイクロバルブのモデルで実験しなければなりませんでしたが、残念ながら彼女は記事を書く段階まで生きていませんでした。
4) 階段に設置する
最も時間のかかる退屈な作業段階であるため 、40mのケーブルを敷設し、約80本の導体をはんだ付けする必要がありました。
階段の下に置かれた制御機器。
ケーブルチャンネルのワイヤが取り外されています。
センサーは上下の最初のステップの下に隠れており、それらの配置は実験的であり、主なタスクは、無駄に階段をオンにしないように視野角を制限することです。
階段の中央にフォトトランジスタが設置されていますが、最悪の場合は光のある場所であるため、曇天では階段は正常に機能します。
LEDストリップは 、階段の後ろに接着されているため、登るときに目に当たらないようになっています。 テープは異なる会社とIPのものであったため、私はステップを介してそれらを交互にしなければなりませんでした。
すべての機器を完全に設置するのに3日かかりましたが、まだ設計上の欠陥があります:
- センサーは両面テープに接着されているので、より安全に修正したい
- 階段の下の導体をより良くマスクする
- 電源と制御ユニットを転送してカーテンで覆います
5) コストを計算する
***ビデオ***
6) 結論:
それは私が想像したよりもさらに良くなった。 一般に、プロジェクトは無期限にファイナライズできますが、ベータバージョンの段階では、プロジェクトは安定して確実に動作します。
当然、この装置はアメリカを開くものではありませんが、頭からのアイデアが光の中に生まれ、機能し始めたとき、確かにクールです。 皆さんの幸運と尽きることのない創造的なインスピレーション!
7) プロジェクトを今すぐ開始した場合、異なる方法でそれを行うには?
- コネクタはボードにインストールする必要があり、デバイスはよりコンパクトになり、はんだ付けは半分になります。
- ULN2003Aチップは 、PWM(スムーズスイッチング)の可能性があるように、通常のLEDドライバーまたはトランジスタチップと交換する必要があります。
- それほど洗練されていない電源を使用し、12Vの通常のLEDは非常に適しています。 5Vスタビライザーを介したArduino電源。
- そしてもちろん、理想的には、階段に沿って4人のセンサー 、または2つの距離計を使用して、階段上の人々の数とその行動を正確に判断します。