Arduino Solar Tracker

何が:

太陽のような最も明るい光源を検索します。

このプロジェクトには、より新しいバージョンがあります://www.instructables.com/id/Dual-Axis-300W-IOT-Solar-Tracker/

ステップ1:仕組み

使い方:
私は4つのLDRのセンサーとその間にシートを作りました

白い点はLDRです

上部のスティックが太陽または最も明るい点に向いているとき
4つのLDRは同じ量の光を受け取ります。


ライトが上にある場合の例1:
右上、右下、左下が影の中にあります
左上が最も明るくなります

例2ライトが上にある場合
左下と右下は影にあり、上は光の中にあります

ステップ2:部品リスト

  • 2 xサーボのEbayリンク1.5 $ /個
  • 4 x光依存抵抗器(ldr)Ebay 0.78 $の20個の安いLDR
  • 4個の抵抗器10個の抵抗器Ebay 0.78 $ 50pcs送料無料
  • 1 x Arduino Arduino UNO Ebay link 3.5 $送料無料
  • 2 xポテンショメータ10k(値は関係ありません)Ebayリンク

ステップ3:セットアップ

一緒にホット接着するだけです!!!

ステップ4:回路

ステップ5:コード

このページからコードをダウンロードできます

/ *このコードはgeobruceによって書かれています
詳細については、私のサイト//xprobe.netを確認してください
* /
#include //サーボライブラリを含める

水平サーボ; //水平サーボ
intservoh = 90; //水平サーボを立てる

サーボ垂直; //垂直サーボ
intservov = 90; //垂直サーボを立てる

// LDRピン接続
// name = analogpin;
int ldrlt = 0; // LDR左上
int ldrrt = 1; // LDRトップリグ
int ldrld = 2; //左下のLDR
int ldrrd = 3; // ldr down rigt

void setup()
{
Serial.begin(9600);
//サーボ接続
// name.attacht(pin);
horizo​​ntal.attach(9);
vertical.attach(10);
}

void loop()
{
int lt = analogRead(ldrlt); // 左上
int rt = analogRead(ldrrt); // 右上
int ld = analogRead(ldrld); //左下
int rd = analogRead(ldrrd); //ダウンリグ

int dtime = analogRead(4)/ 20; //ポテンショメータを読み取ります
int tol = analogRead(5)/ 4;

int avt =(lt + rt)/ 2; //平均値トップ
int avd =(ld + rd)/ 2; //平均値が下がる
int avl =(lt + ld)/ 2; //残りの平均値
int avr =(rt + rd)/ 2; //平均値が正しい

int dvert = avt-avd; //上下の違いを確認します
int dhoriz = avl-avr; //左の差とリグをチェック

if(-1 * tol> dvert || dvert> tol)//差が許容範囲内にあるかどうかを確認するか、垂直角を変更する
{
if(avt> avd)
{
servov = ++ servov;
if(servov> 180)
{
servov = 180;
}
}
else if(avt <avd)
{
servov = --servov;
if(servov <0)
{
servov = 0;
}
}
vertical.write(servov);
}

if(-1 * tol> dhoriz || dhoriz> tol)//差異が許容範囲内にあるかどうかを確認するか、水平角度を変更する
{
if(avl> avr)
{
サーボ= --servoh;
if(servoh <0)
{
サーボ= 0;
}
}
else if(avl <avr)
{
サーボ= ++ servoh;
if(servoh> 180)
{
サーボ= 180;
}
}
else if(avl == avr)
{
//なし
}
horizo​​ntal.write(servoh);
}
delay(dtime);
}

添付ファイル

  • solar_tracker__english_.pdeダウンロード

関連記事