ソーラーパネルサントラッカー-電話充電器
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 2 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 2 |
必要なツールとマシン
> |
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
グリーン化
私はオーストラリアの再生可能エネルギー業界で働いており、Arduinosをいじくり回してきましたが、この2つを組み合わせて、自分の小さなソーラーデバイスを作ることにしたのはこのプロジェクトまででした。このプロジェクトでは、Arduinoとサーボに電力を供給するために5Vが必要です。これらは、せいぜい3.4Vを生成するソーラーパネルの出力を最大化するために使用されます。ですから、それは正確に報われるわけではありません。ただし、この概念はスケーラブルであるため、たとえば、この概念を8つのパネルのアレイで使用して12Vを生成した場合、外部電源なしでarduinoに電力を供給し、電話を充電できます。私はこれをいつか行う予定であり、それが起こったときにここにリンクを追加します。
私がここにいる間、私は自分の情報源を信用したほうがいいです...
DIYライフ-http://www.the-diy-life.com/arduino-solar-tracker/
ブラウンドッグガジェット-http://www.instructables.com/id/Solar-Altoids-USB-Charger/
どちらもこのテーマに関する優れた情報源であり、私がコンセプトをどこから得たのか。
はじめに
ですから、まず最初に、いくつかのソーラーパネルが必要です。私は2つ使用しましたが、いくつでも使用できますが、9グラムのサーボがどれだけ上下できるかを考えてみてください(重くしすぎないでください)。私が見つけたパネルの定格は1.5V、0.75Wの出力で、これは最近利用可能な下端にあります。しかし、それらは軽量で安価であり、これが私にとっての概念実証プロジェクトであることを考えると、出力はそれほど重要ではありません。
私はエポキシで端に沿って2つのパネルを結合しました。パネルをストリングに接続するには、一方のパネルのプラスのリード線をもう一方のマイナスのリード線にはんだ付けするだけです。これにより、プラスとマイナスのワイヤーが残ります。 2つのLDRをソーラーパネルの両側(東と西)に取り付け、ジャンパー線の一方の端をそれぞれのリード線にはんだ付けします。 片側の端を切り取り、リード線を約5mm剥がしてワイヤーを露出させると、ジャンパー線をはんだ付けするのが簡単になります。 。
<図>ArduinoがLDRを読み取るには、それぞれに分圧回路が必要です。分圧器については、こちらをご覧ください。この回路では、LDRはR1であり、R2に10kΩの抵抗を使用し、2つの抵抗が出会うarduinoにジャンパー線を接続します。このプロジェクトをブレッドボード上に構築する場合、一方のLDRリードは分圧器に接続され、もう一方は正の電源レールに接続されます。以下のフリッツの図を参照してください。
<図>トラッカー構造
次に構築する必要があるのは、パネルを置くための回転支持構造です。私のデザインは基本的に2つのAフレームで支えられたばね鋼の長さです。パネルアレイの下側には小さな木製の支柱があり、ばね鋼用の穴があります。安くて簡単で軽いので、全体をバルサ材で作りましたが、これが恒久的な備品である場合は、薄い鋼または処理された合板で作る必要があります。スイベルサポートの構築についてはあまり詳しく説明していませんが、下のビデオでは、その方法とサーボの位置を示しています。パネルを下向きにした状態で、正面を向くように構築しました。構造物の基部は北にあるため、パネルが太陽を追跡するときにどのようにスイングしても、出力を最大化するために常に少し北に傾けられます。 (南半球にいます)
サーボの取り付け
サーボは、Aフレーム構造のサポートビームの1つに配置され、パネルの片側を上下させます。バネ鋼をペンチで折りたたんで、パネルストラットとサーボアームに通すことができるフック付きの端を作りました。鋼に合うようにサーボアームの穴を広げる必要があるかもしれません。私は見つけた最小のドリルビットを使用しました。パネルをスムーズに持ち上げるには、穴の中で回転できる必要があるため、サーボアームまたはパネルストラットに鋼を接着しないでください。所定の位置に配置したら、パネルを構造から外し、サーボだけが残るようにして、キャリブレーションを実行できるようにします。
<図>サーボの調整
新しいスケッチを開き、次のコードを入力します。
#include Servo myservo1; //サーボオブジェクトを作成してservointを制御しますpos =10; void setup(){myservo1.attach(9); //サーボオブジェクトをPWMピン9に接続します} void loop(){myservo1.write(pos);}
arduinoにアップロードして、サーボがどこに移動するかを確認します。サーボアームが真っ直ぐ上下を指す位置が見つかるまで、スケッチの「pos」値を0〜180の間で変更し、スケッチを再アップロードし続けます。これらは最大値と最小値です。私の場合は15と140でした。値が180から0に重なっている場合は、サーボアームを取り外して、正しく位置合わせできるように再配置します。
パッティング で 一緒に
先に進んですべてを接続し、次のスケッチを入力します。
// Sun Tracker Sketch ////このスケッチは9gramサーボで使用するように設計されており、外部電源なしで// Arduinioから直接電力を供給できます。フリッツの図については、Githubリポジトリを参照してください。//https://github.com/nickalanf/Arduino--Projects//シリアルモニターセクションは、デバッグ目的、または一般的な関心事です。ダイアグラム化可能//// FIELDINGによるスケッチ-8 / 2/18#include Servoサーボ; //サーボオブジェクトを作成してservointを制御しますeLDRPin =A0; //ピンをLDRに割り当てます 'sintwLDRPin =A1; int eastLDR =0; // LDRに保存する変数を作成しますreadingsintwestLDR =0; int Difference =0; // 2つのLDRのsintエラー=10を比較する変数を作成します。 //の変数は、2つのLDRのsintservoSet =130の間に顕著な違いがあります。 //サーボの位置の変数-デバイスごとに異なりますvoidsetup(){servo.attach(9); //サーボオブジェクトをPWMピン9に接続しますSerial.begin(9600); } void loop(){eastLDR =analogRead(eLDRPin); // LDR値を読み取りますwestLDR =analogRead(wLDRPin); if(eastLDR <400 &&westLDR <400){//両方のLDRに暗い光があるかどうかを確認しますwhile(servoSet <=140 &&> =15){//そうであれば、日の出サーボセットのためにパネルを東に送り返します++; Servo.write(servoSet); delay(100); }}差分=eastLDR-westLDR; //違いを確認しますif(difference> 10){//パネルをLDRに向けて、より高い読み取り値で送信しますif(servoSet <=140){servoSet ++; Servo.write(servoSet); }} else if(difference <-10){if(servoSet> =15){servoSet-; Servo.write(servoSet); }} Serial.print(eastLDR); //シリアルモニターは、Serial.print( "-");のデバッグ/設定に役立ちます。 //これを使用して、Serial.print(westLDR);のときにLDRが著しく異なるかどうかを確認します。 //同じ光が当たっている場合は、エラー値Serial.print( "-");で修正します。 Serial.print(difference); Serial.print( "-"); Serial.print(servoSet); //サーボ設定を微調整して、使用可能なスイングを最大化しますSerial.print( "-"); Serial.println( "。"); delay(100);}
シリアルモニターを開き、LDRに光を当てます。両方に均等に照らしてみて、シリアルモニターに印刷されている差の値を確認してください。約25より大きい、または-25より小さい場合は、エラーキャリブレーションを追加する必要があります。関連するエラー値をコードに追加してから、その値を関連するLDRに加算または減算します。差の値が近い場合は、そのままにしておいてかまいません。
テストする準備ができました!最も簡単なのは、暗い部屋にトーチ/ランプを持って行くことです。あるLDRから別のLDRにライトをゆっくりと振り、パネルが動くのを観察します。 1つのLDRをカバーすることもでき、パネルはそのLDRから離れる方向にスイングする必要があります。
ボーナス-電話充電器
<図>パネル出力を実際に利用したい場合は、2.5V-5 VDC-DCブーストコンバーターをパネルから外れるリード線に直接配線することができます。 arduino /ブレッドボードとは完全に別の回路です。標準の電話は5Vで充電され、パネルは5 Vを出力しているが電流が少ない可能性があるため、バッテリーがいっぱいであるか日光が少ない場合、充電するのに十分な出力がありません。これを回避する最も簡単な方法は、単にパネルを追加することです!
<図>
コード
- サントラッカー
サントラッカー処理
// Sun Tracker Sketch ////このスケッチは9gramサーボで使用するように設計されており、外部電源なしで// Arduinioから直接電力を供給できます。フリッツの図については、Githubリポジトリを参照してください。//https://github.com/nickalanf/Arduino--Projects//シリアルモニターセクションは、デバッグ目的、または一般的な関心事です。ダイアグラム化可能//// FIELDINGによるスケッチ-8 / 2/18#includeServoサーボ; //サーボオブジェクトを作成してservointを制御しますeLDRPin =A0; //ピンをLDRに割り当てます 'sintwLDRPin =A1; int eastLDR =0; // LDRに保存する変数を作成しますreadingsintwestLDR =0; int Difference =0; // 2つのLDRのsintエラー=10を比較する変数を作成します。 //の変数は、2つのLDRのsintservoSet =130の間に顕著な違いがあります。 //サーボの位置の変数-デバイスごとに異なりますvoidsetup(){servo.attach(9); //サーボオブジェクトをPWMピン9に接続しますSerial.begin(9600); } void loop(){eastLDR =analogRead(eLDRPin); // LDR値を読み取りますwestLDR =analogRead(wLDRPin); if(eastLDR <400 &&westLDR <400){//両方のLDRに暗い光があるかどうかを確認しますwhile(servoSet <=140 &&> =15){//そうであれば、日の出サーボセットのためにパネルを東に送り返します++; Servo.write(servoSet); delay(100); }}差分=eastLDR-westLDR; //違いを確認しますif(difference> 10){//パネルをLDRに向けて、より高い読み取り値で送信しますif(servoSet <=140){servoSet ++; Servo.write(servoSet); }} else if(difference <-10){if(servoSet> =15){servoSet-; Servo.write(servoSet); }} Serial.print(eastLDR); //シリアルモニターは、Serial.print( "-");のデバッグ/設定に役立ちます。 //これを使用して、Serial.print(westLDR);のときにLDRが著しく異なるかどうかを確認します。 //同じ光が当たっている場合は、エラー値Serial.print( "-");で修正します。 Serial.print(difference); Serial.print( "-"); Serial.print(servoSet); //サーボ設定を微調整して、使用可能なスイングを最大化しますSerial.print( "-"); Serial.println( "。"); delay(100);}
回路図
製造プロセス