فروشگاه آموزش پرینت 3D انجمن
  1. علیرضا
  2. الکترونیک و رباتیک
  3. چهارشنبه, 26 خرداد 1400
  4.  اشتراک از طریق ایمیل
سلام خسته نباشید
بنده مدار دنبال کننده نور خورشیدبا۴LDRو۲سرو موتور ک برنامه رو داخل سایت بارگذاری کردین رو میخوام طوری برنامه باشه ک اگهLDR1نور رو حس کرد سرو موتور ۱رو درحالت۴۵درجه و سرو موتور۲رو درحالت ۹۰ درجه قرار بده و اگر به بقیه LDRها هم نور برسه همینطوری باشه مثلاLDR3نور حس کنه سروموتور۱رو در حالت ۳۰ درجه وسرو موتور ۲رو در حالت ۹۰ درجه قرار بده ...با تشکر از سایت خوبتون ...
به این یحث رای دهید:
نظر
هیچ نظری هنوز ایجاد نشده است.
علی نوری اسفندیاری پاسخ پذیرفته شده
متخصص مکاترونیک
سلام دوست عزیز

در کل سنسورهای فوتوسل در هر موقعیتی که قرار بگیرند همواره مقداری نور به آنها تابیده میشود و بسته به مقدار نور تابیده شده به آنها این سنسورها عددی بین 0 تا 1024 را به آردوینو مخابره میکنند. به خاطر همین در این کل از روش میانگین گیری استفاده کرده تا میزان تابش نور را در بالا، پایین ، چپ و راست سلول خورشیدی حس کند. کد زیر را طوری تغییر دادم تا اگر میانگین نور بالا بیشتر از 500 شد سروو عمودی (servoverti) در موقعیت 90 درجه قرار بگیرد و سروو افقی (servohori) در موقعیت 45 درجه قرار بگیرد و اگر میانگین نور پایین بیشتر از 500 شد سروو عمودی در موقعیت 90 و سروو افقی در موقعیت 30 درجه و ... .

#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 >500)

{

servoverti.write(90);
servohori.write(45);

delay(10);

}

else if (avgbot > 500)

{

servoverti.write(90);
servohori.write(30);



delay(10);

}



else if (avgleft > 500)

{

servoverti.write(90);
servohori.write(20);



delay(10);

}

else if (avgright > 500)

{


servoverti.write(90);
servohori.write(10);



delay(10);

}


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


سلام

با زاویه های وارد شده در دستور servoverti.write(90); servohori.write(45);که در هر شرط if قرار دارد کمی بازی کنید و مقادیر آن را تغییر دهید تا بیشتر سروو موتورهای شما دوران کند. همچنین اگر آردوینو شما قطع و وصل میشود احتمالا به خاطر کمبود جریان است که میتوانید این مشکل را با وصل کردن به منبع تغذیه خارجی حل کنید. همچنین اگر میزان delay ها رو هم بین هر فرمان افزایش بدید میتونید در مصرف برق آردوینو صرفه جویی کنید که باعث میشود مشکل قطع و وصل حل شود.
نظر
هیچ نظری هنوز ایجاد نشده است.
  • صفحه :
  • 1


هنوز به این بحث پاسخی داده نشده است
مهمان
پاسخ شما
فایل ها یا عکس های لازم برای این بحث را از اینجا بارگزاری کنید، فرمت های قابل پشتیبانی: gif,jpg,png,zip,rar
• حذف آپلود فایل ها (بیشترین حجم فایل : 2 MB)
شما می توانید در پست خود رای گیری قرار دهید. رای گیری در پست شما نمایش داده خواهد شد.
تنظیمات رای دادن
به اشتراک گذاری مکان فعلی شما

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

عرض جغرافیایی:
طول جغرافیایی:
کد امنیتی
این بخش برای امنیت سایت و تشخیص انسان از ربات ایجاد شده است.

تماس با ما
  • تلفن و صندوق صوتی: ۰۲۱۲۸۴۲۱۴۹۰

  • تلفن: ۰۲۱۹۱۰۳۵۳۸۱

  • فقط برای پیام تلگرام و واتساپ: 09120870443

  • آدرس: تهران، میدان انقلاب، کوچه جنتی، بن بست فرسار، پلاک 7، واحد 4
  • ساعت کاری از 9 تا 18 شنبه تا چهارشنبه و پنجشنبه از 9 تا 14.
  • info [@] sanatbazar.com
  •  فعالیت فروشگاه بصورت اینترنتی می باشد لذا از مراجعه حضوری خودداری فرمایید.

©کپی رایت 2020-2016 | تمام حقوق برای صنعت بازار محفوظ است

گفتگو