ساخت دنبال کننده خورشید با آردوینو و با کمترین هزینه

دوشنبه, 10 مهر 1396 16:17
این مورد را ارزیابی کنید
(15 رای‌ها)

در سیستم‌های دنبال کننده خورشید مدرن, پنل‌های خورشیدی روی سازه‌ای که بر اساس موقعیت خورشید حرکت می‌کند ثابت می‌شوند. در این آموزش طراحی یک دنبال کننده خورشید با استفاده از دو سروو موتور, چهار سنسور فتوسل و برد آردوینو Uno ارائه می‌شود.

شماتیک مداری:

سیستم دنبال کننده خورشید مدار ساده‌ای دارد که در زیر نمایش داده شده است ولی باید ساخت این مدار با دقت بیشتر انجام شود.

Solar Tracker Arduino

چهار فتوسل مدنظر برای سیستم به همراه چهار مقاومت 100 کیلو اهم به صورت مد تقسیم ولتاژ طراحی می‌شوند و خروجی آنها به چهار پایه آنالوگ برد آردوینو وصل می‌شود. ورودی پالس PWM هر یک از سروو موتورهای سیستم هم توسط پایه‌های 9 و 10 آردوینو تأمین می‌شوند.

قطعات موردنیاز:

فتوسل 1K 5mm

4 عدد

مقاومت 100 کیلو اهم

4 عدد

سیم لحیم قلع-سرب 100 گرمی

1 عدد

پنل خورشیدی

1 عدد

ورق فلزی

1 عدد

سیم مناسب

0.5 متر

 عملکرد سیستم:

سنسورهای فتوسل به عنوان سنسور نور در این سیستم به کار رفته است. دو موتور سروو نیز به سازه‌ی نگه‌دارنده پنل خورشیدی ثابت شده‌اند. سنسورهای فتوسل مقدار نوری که بر روی آنها تابش می‌کند را حس می‌کنند. این چهار سنسور فتوسل در بالا, پایین, چپ و راست پنل خورشیدی قرارگرفته می‌شود.

برای حرکت چپ-راست, مقدار آنالوگ دو فتوسل بالا و پایین پنل خورشیدی با یکدیگر مقایسه می‌شوند و هرکدام که مقدار نور بیشتری جذب کند, موتور محور عمودی به آن سمت حرکت می‌کند. برای حرکت چرخشی هم, مقادیر آنالوگ فتوسل‌های سمت چپ و راست پنل خورشیدی با یکدیگر مقایسه شده و هر سمتی که نور بیشتری را جذب کند موتور پایین سیستم که به زمین متصل شده به آن سمت حرکت خواهد کرد.

نصب سازه:

گام اول:

یک مقوا برداشته و مطابق شکل در وسط آن یک سوراخ بزرگ ایجاد کرده و پنل خورشیدی را بر روی آن چسبانده و دو سیم آنرا از سوراخ ایجادشده بر روی مقوا خارج کنید. سپس, در هر گوشه از پنل هم یک سوراخ به اندازه‌ای که هر فتوسل در آن ثابت شود ایجاد کنید.

 solar panel step-1

گام دوم:

هر یک از فتوسل‌ها در جای خودش قرار داده با چسب کاملاً محکم می‌چسبانیم. سپس, مطابق شکل ورق فلزی را خم کرده و در پشت مقوا قرار داده و سیم‌های پنل خورشیدی را برای راحتی در چرخش سیستم از داخل سوراخ‌های ورق فلزی عبور می‌دهیم.

solar panel step-2

گام سوم:

طبق شکل زیر, یک پایه از هر چهار فتوسل را به مقاومت 100 کیلو اهم لحیم کرده و درنهایت هر چهار پایه از فتوسل‌ها را با یک سیم به هم متصل می‌کنیم. در این لحیم کاری می‌توان از شماتیک مداری سیستم استفاده کنیم تا مد تقسیم ولتاژ را ایجاد کنیم.

solar panel step-3

گام چهارم:

حال یک سیم چهارتایی را بر روی ورق فلزی در محل مناسب گذاشته و هر سیم آنرا در هر نقطه بین پایه سنسور فتوسل و مقاومت 100 کیلو اهم متصل به آن لحیم کنید. این سیم برای اتصال خروجی هر یک از فتوسل‌ها به برد آردوینو استفاده می‌شود.

از یک سیم دوتایی دیگر هم برای تأمین Vcc و GND فتوسل‌ها استفاده می‌شود. یک سیم را به انتهای مقاومت‌ها و سیم دیگر را به پایه‌های دیگر فتوسل‌ها که با سیم به یکدیگر لحیم شده است متصل کنید.

solar panel step-4

گام پنجم:

حال برای ایجاد حرکت چرخشی در سیستم, یک سروو موتور را مطابق شکل به ورق فلزی با پیچ وصل کنید. این سروو موتور به زمین ثابت خواهد شد.

solar panel step-5

گام ششم:

مطابق شکل زیر, سروو موتور بعدی را به ورق خم شده فلزی که بر روی مقوا قرار دارد بچسبانید.

solar panel step-6

گام هفتم:

درنهایت این سروو موتور گام ششم را به سازه سروو موتور دیگر چسبانده و کل سیستم دنبال کننده خورشید ساخته می‌شود.

 solar panel step-7

برنامه نوشته شده برای برنامه‌ریزی بر روی مدار آردوینو به صورت زیر است:

#include <Servo.h>

//defining Servos

Servo servohori;

int servoh = 0;

int servohLimitHigh = 160;

int servohLimitLow = 20;

 

Servo servoverti;

int servov = 0;

int servovLimitHigh = 160;

int servovLimitLow = 20;

//Assigning LDRs

int ldrtopl = 2; //top left LDR green

int ldrtopr = 1; //top right LDR yellow

int ldrbotl = 3; // bottom left LDR blue

int ldrbotr = 0; // bottom right LDR orange

 

 void setup ()

 {

  servohori.attach(10);

  servohori.write(0);

  servoverti.attach(9);

  servoverti.write(0);

  delay(500);

 }

 

void loop()

{

  servoh = servohori.read();

  servov = servoverti.read();

  //capturing analog values of each LDR

  int topl = analogRead(ldrtopl);

  int topr = analogRead(ldrtopr);

  int botl = analogRead(ldrbotl);

  int botr = analogRead(ldrbotr);

  // calculating average

  int avgtop = (topl + topr) / 2; //average of top LDRs

  int avgbot = (botl + botr) / 2; //average of bottom LDRs

  int avgleft = (topl + botl) / 2; //average of left LDRs

  int avgright = (topr + botr) / 2; //average of right LDRs

 

  if (avgtop < avgbot)

  {

    servoverti.write(servov +1);

    if (servov > servovLimitHigh)

     {

      servov = servovLimitHigh;

     }

    delay(10);

  }

  else if (avgbot < avgtop)

  {

    servoverti.write(servov -1);

    if (servov < servovLimitLow)

  {

    servov = servovLimitLow;

  }

    delay(10);

  }

  else

  {

    servoverti.write(servov);

  }

 

  if (avgleft > avgright)

  {

    servohori.write(servoh +1);

    if (servoh > servohLimitHigh)

    {

    servoh = servohLimitHigh;

    }

    delay(10);

  }

  else if (avgright > avgleft)

  {

    servohori.write(servoh -1);

    if (servoh < servohLimitLow)

     {

     servoh = servohLimitLow;

     }

    delay(10);

  }

  else

  {

    servohori.write(servoh);

  }

  delay(50);

}

آموزش راه‌اندازی سروو موتور به طور کامل در "آموزش آردوینو: درس چهاردهم (سروو موتور)" آورده شده است. در این برنامه نوشته شده برای راه‌اندازی سیستم دنبال کننده خورشید, ابتدا کتابخانه سروو موتور فراخوانی شده است. سپس, دو متغیر servohori و servoverti به عنوان دو موتور سرووی افقی و عمودی برای ایجاد دو چرخش در سیستم تعریف شده و مقادیر بیشینه و کمینه برای چرخش آنها تعریف شده‌اند. در ادامه, پایه‌های هر فتوسل را برای آردوینو معرفی کرده ایم.

در بخش setup لازم است که متغیر servo را به پین مربوط به کنترل سروو موتور مرتبط کنیم.

  servo.attach(servoPin);

و مقدار اولیه هر موتور را نیز در زاویه صفر قرار می‌دهیم.

در ادامه, برنامه به صورتی نوشته شده است تا برای حرکت چپ-راست, مقدار آنالوگ دو فتوسل بالا و پایین پنل خورشیدی با یکدیگر مقایسه می‌شوند و هرکدام که مقدار نور بیشتری جذب کند, موتور محور عمودی به آن سمت حرکت می‌کند. برای حرکت چرخشی هم, مقادیر آنالوگ فتوسل‌های سمت چپ و راست پنل خورشیدی با یکدیگر مقایسه شده و هر سمتی که نور بیشتری را جذب کند موتور پایین سیستم که به زمین متصل شده به آن سمت حرکت خواهد کرد.

 

نظرات، پيشنهادات و انتقادات خود را براي بهتر شدن محتواي مطالب با ما در ميان بگذاريد...

 


ترجمه شده توسط تيم الکترونيک صنعت بازار | منبع: سايت electronicshub.org

 
خواندن 16511 دفعه
پشتیبانی

عباس بطالبلو دانش‌آموخته کارشناس ارشد رشته مهندسی مکاترونیک از دانشگاه صنعتی خواجه نصیرالدین طوسی و عضو گروه رباتیک جراح آزمایشگاه ارس (ARAS) هستند. موضوع پایان نامه کارشناسی ارشد ایشان در زمینه ی «طراحی و پیاده سازی ربات ۲RT برای جراحی از دور چشم» بوده است. ایشان سابقه پیاده سازی و ساخت ربات هایی چون ربات موازی جراحی چشم، ربات سری SCARA، ربات Palletizer و … را دارند.

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (92)

  1. هادی

سلام.‌وقت بخیر.
مهندس جان من اینو طبق فرمایشون درست کردم. کار میکنه. فقط مشگل اینجاس که واینمیسته. به هر سمت که نور افتاد میچرخه و حتی اگه نور رو هم قطع کنیم باز به همون سمت میچرخه تا وقتی که به سنسور مخالف نور بدیم و شروع کنه برعکس چرخیدن......

سلام.‌وقت بخیر.
مهندس جان من اینو طبق فرمایشون درست کردم. کار میکنه. فقط مشگل اینجاس که واینمیسته. به هر سمت که نور افتاد میچرخه و حتی اگه نور رو هم قطع کنیم باز به همون سمت میچرخه تا وقتی که به سنسور مخالف نور بدیم و شروع کنه برعکس چرخیدن... چیکار میشه کرد وقتی نور یکسان شد بایسته یاچجور براش زاویه تعیین کنم و مثلا ۴۰ درجه بچرخه و بایسته؟

ادامه مطلب
 
  1. علیرضا

سلام .
آیا میشه LDRرو ب عنوان سوییچ استفاده کرد ؟
چون در قسمت انجمن سوالم رو طرح کردم .
و برنامه ای ک شما ب بنده راهنمایی کردین رو وقتی آپلود کردم برد آردینو ب صورت زمانی قطع و وصل میشه و یدونه سرو موتور فقط یه ذره تکون میخوره و بر میگرده .سنسورا...

سلام .
آیا میشه LDRرو ب عنوان سوییچ استفاده کرد ؟
چون در قسمت انجمن سوالم رو طرح کردم .
و برنامه ای ک شما ب بنده راهنمایی کردین رو وقتی آپلود کردم برد آردینو ب صورت زمانی قطع و وصل میشه و یدونه سرو موتور فقط یه ذره تکون میخوره و بر میگرده .سنسورا عمل نمیکنن
لطفا راهنمایی لازم رو درقسمت انجمن ب بنده بکنید.
باتشکر از سایت خوبتون

ادامه مطلب
 
  1. پشتیبانی    علیرضا

سلام علیرضا عزیز
با عرض پوزش طراحی از صفر تا صد یک پروژه که در انجمن مطرح کردین در حوزه سیاست های کاری شرکت نمی باشد. تا جایی که امکان داشت در همان قسمت راهنماییتون کردیم. می تونید مجدد نقطه نظرتون را با ما در میون بذارید. در مورد عمل نکردن پروژه...

سلام علیرضا عزیز
با عرض پوزش طراحی از صفر تا صد یک پروژه که در انجمن مطرح کردین در حوزه سیاست های کاری شرکت نمی باشد. تا جایی که امکان داشت در همان قسمت راهنماییتون کردیم. می تونید مجدد نقطه نظرتون را با ما در میون بذارید. در مورد عمل نکردن پروژه تمامی کد ها و پروژه ها به صورت تست شده هستن فلذا به احتمال زیاد جایی از سیم کشی دچار اشتباه شده اید.
موفق باشید.

ادامه مطلب
 
  1. علیرضا

سلام جناب خسته نباشید .امکان داره هر LDRرو برنامه بدیم مثلا اگرLDRشمار ۱ نور بهش اثابت کنه سرو موتور ۱ در حالت ۹۰ درجه و سرو متور۲ در حالت ۴۵ درجه قرار گیرد .آیا این کار عملی میشه .ممنون میشم راهنمایی کنید?

 
  1. علیرضا    پشتیبانی

سلام .
میشه بیشتر راهنمایی کنید
یا ب عنوان مثال یه بخشی از برنامه رو بزارین ?

 
  1. پشتیبانی    علیرضا

سلام ... وقتتون به خیر

کد آردوینویی که در همین آموزش ارائه شده برای حرکت سرووها با استفاده از دستورات if و elseif مقادیر بین LDR ها را با هم مقایسه کرده و سروو موتورها را با توجه به این مقایسه ها حرکت میدهد. کافیست شما شرط مورد نظر خودتان را در...

سلام ... وقتتون به خیر

کد آردوینویی که در همین آموزش ارائه شده برای حرکت سرووها با استفاده از دستورات if و elseif مقادیر بین LDR ها را با هم مقایسه کرده و سروو موتورها را با توجه به این مقایسه ها حرکت میدهد. کافیست شما شرط مورد نظر خودتان را در داخل پرانتز جلوی if و elseif ها جایگزین کنید و حرکت مورد نظر خودتون رو هم در کروشه پایین هر if و elseif جایگزین کنید.
اگر نیاز به توضیح بیشتر یا ارائه کد دارید صورت مساله خودتون رو در قسمت انجمن وارد کنید تا بتونیم با ارائه کد و تصاویر به شما کمک کنیم.

ادامه مطلب
 
  1. علیرضا    پشتیبانی

سلام جناب
درقسمت انجمن سوالم رو بطور کامل مطرح کردم اگه ممکنه راهنمایی کنید .باتشکر

 
  1. امیر

این سورسی که گذاشتید کار میکنه؟

 
  1. پشتیبانی    امیر

با سلام
بله همه کد ها تست شده هستند
موفق باشید

 
  1. Amir    پشتیبانی

توی آموزش موتور سروو نگفتید خازن چند ولت باشه میشه بگید

 
  1. پشتیبانی    Amir

سلام
تو این مدار خازن نداریم

 
  1. مهدی

باسلام
ببخشید یک سوال دارم و اون اینکه اگه ما بخواهیم با استفاده ازتعداد زیادی فتوسل(بیشترازچهارتا) قدرت زاویه تعقیب منبع نور رو بالا ببریم. این چیزی که گفتم ممکنه ؟ کاردرستیه

واین که اگر درسته.ممنون میشم که توضیح بدید برای این کار چه باید...

باسلام
ببخشید یک سوال دارم و اون اینکه اگه ما بخواهیم با استفاده ازتعداد زیادی فتوسل(بیشترازچهارتا) قدرت زاویه تعقیب منبع نور رو بالا ببریم. این چیزی که گفتم ممکنه ؟ کاردرستیه

واین که اگر درسته.ممنون میشم که توضیح بدید برای این کار چه باید بکنیم( آیا باید فتوسل هارو موازی سری کنیم )

ادامه مطلب
 
  1. پشتیبانی    مهدی

سلام دوست عزیز
این کار در حالتی منطقی هست که فتوسل ها رو در محل های مختلف قرار بدید تا زوایای بیشتری رو پوشش بده و با کد نویسی مشخص کنید که مثلا در صورت مشاهده هر یک از فتوسل های سمت چپ سیستم، سیستم به سمت چپ حرکت کند.
موفق باشید

 
  1. وحید

سلام دوتا پنل خورشیدی دارم میخوام این دوتا رو سری کنم دو طرفش هم LDRبزارم لطفا نحوه ی وصل کردم این هارو بگویید تا بتونم به برید برد وصل کنم

 
  1. پشتیبانی    وحید

سلام وحید عزیز
کاملا می تونید مطابق با لینک زیر پیش برید.
موفق باشید

 
  1. رضا

از کجا متوجه بشیم کدوم ورودی اردینیو رو با کدوم LDR متصل کنیم
بالا پایین و چپ و راستش با توجه به A0 A1 و... کدوم میشه

 
  1. پشتیبانی    رضا

وقتی کل سیستم رو راه اندازی کردید تست کنید و متناسبا می تونید جابجا کنید.
موفق باشید

 
  1. رضا

سلام من تغذیه سروو موتور را وقتی با یک منبع تغذیه جداگانه میدم سروو موتور دائما میچرخد دقیقا مثل یک موتور dc
کد برنامه درسته چون با تغذیه خود اردینیو درست کار میده
و اینکه من زمین منبع تغذیه و اردینیو رو هم یکی کردم ولی باز جواب نداد میشه...

سلام من تغذیه سروو موتور را وقتی با یک منبع تغذیه جداگانه میدم سروو موتور دائما میچرخد دقیقا مثل یک موتور dc
کد برنامه درسته چون با تغذیه خود اردینیو درست کار میده
و اینکه من زمین منبع تغذیه و اردینیو رو هم یکی کردم ولی باز جواب نداد میشه راهنماییم کنید

ادامه مطلب
 
  1. پشتیبانی    رضا

سلام رضا عزیز
لینک زیر شماتیک اتصال منبع مجزا به سروو موتور با برد اردوینو رو نشان داده:
https://b2n.ir/749646
موفق باشید

 
  1. S

باسلام مجدد لینک داخل متن بالا که نوشته شده "آموزش آردوینو: درس چهاردهم (سروو موتور)" ارور 404 می دهد ومیزنه موجد نیست. خواهشمندم لینک درست را بگذارید باتشکر

 
  1. پشتیبانی    S

ممنون دوست عزیز از اطلاع رسانیتون
این آموزش به آموزش "معرفی و راه‌اندازی پتانسیومتر، انکودر و سروو موتور با آردوینو" در لینک زیر تغییر داده شده است:
https://bit.ly/3abzfm2
همچنین, شما می تونین آموزش های بیشتر را در لینک های زیر ببینید:
صفحه اصلی...

ممنون دوست عزیز از اطلاع رسانیتون
این آموزش به آموزش "معرفی و راه‌اندازی پتانسیومتر، انکودر و سروو موتور با آردوینو" در لینک زیر تغییر داده شده است:
https://bit.ly/3abzfm2
همچنین, شما می تونین آموزش های بیشتر را در لینک های زیر ببینید:
صفحه اصلی آموزش صنعت بازار: https://www.sanatbazar.com/tech/
آموزش جامع آردوینو (مبتدی و پیشرفته): https://bit.ly/3fQquid
آموزش جامع اینترنت اشیا با آردوینو: https://bit.ly/30L4EbO
موفق باشید

ادامه مطلب
 
  1. S

باسلام من میخوام سرووموتورها با باتری که توسط سلول خورشیدی شارژ میشود بچرخد.برای این کار پنل چند وات و چند ولت تهیه کنم؟

 
  1. پشتیبانی    S

سلام دوست عزیز
این موتورها ولتاز کاری 4.8 تا 6 ولت دارند و باطری مدنظر هم باید بتونه اون رو تامین کنه.
موفق باشید

 
  1. S    پشتیبانی

ممنونم . من میخوام این پروژه رو درست کنم ولی نمیدونم چند وات و چند ولت پنل خورشیدی خریداری کنم پنل استفاده شما شده در بالا چند وات ؟
سوال دوم اینکه: من باتری در تجهیزات شما نمی بینم توان سرووموتورها از کجا تامین میشود ؟

 
  1. پشتیبانی    S

دوست عزیز
پنل خورشیدی پیشنهاد شده در در همین آموزش و در قسمت قطعات لینکش قرار داده شده است! پنل خورشیدی - سولار پنل - سلول خورشیدی 6 ولت 2 وات رو می تونید استفاده کنید که باطری 6 ولت مناسب اون هست و یا از آداپتور می تونید استفاده کنید. در این...

دوست عزیز
پنل خورشیدی پیشنهاد شده در در همین آموزش و در قسمت قطعات لینکش قرار داده شده است! پنل خورشیدی - سولار پنل - سلول خورشیدی 6 ولت 2 وات رو می تونید استفاده کنید که باطری 6 ولت مناسب اون هست و یا از آداپتور می تونید استفاده کنید. در این آموزش سروو ها هم می تونه به خود برد متصل بشه و هم می تونید از منبع جدا استفاده کنید.
موفق باشید

ادامه مطلب
 
هیچ نظری در اینجا وجود ندارد
بارگذاری بیشتر ...

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید

محتوای آموزشی استفاده شده در این سایت محافظت شده می باشد و هرگونه کپی برداری از محتواهای تولید شده توسط تیم صنعت بازار موجب پیگرد خواهد بود. استفاده از مطالب صنعت بازار تنها با ذکر منبع به صورت لینک فعال بلامانع است

ما را دنبال کنید:

Copyright © 2017-2018 | Sanatbazar.com