سلام
من قصد دارم توسط یک بورد آردیونو (uno)یک تایمر بسازم ک هر یک ساعت یک موتور dc رو (در یک جهت)تا زمان رسیدن چهار چوب وسطی به نقطه Aحرکت بده و با فشردن سوئیچ حرکت تمام شه و همزمان دوباره تایمر شروع به شمردن بکنه و بعد یک ساعت دوباره موتور رو روشن کنه و چهار چوب رو به نقطه B و میکروسوئیچ نقطه B رو تحریک کنه تا حرکت موتور مجددا قطع شه و عمل شمارش مجددا شروع شه و این سیکل بینهایت بار تکرار بشه
این هم شماتیک ک از بالا هست
http://s6.picofile.com/file/8253171934/ax.JPG
تو حلقه لوپ همزمان دما هم باید کنترل بشه واگه از delay بخوام استفاده کنم فکر کنم تاخیر و اختلال حتمی هست
با این ک کل سایت آردیونو رو زیرو رو کردم(و بیشتر سردرگم شدم)چیز قابل توجهی به دست نیاوردم
اصل قضیه اینه ک من میخوام با برخورد چهار چوب وسط به کلید اول (نقطه A)و فشرده شدن اون اول رله چپ گرد موتور قطع بعد تایمر یا شمارشگر(timer-counter)شروع به شمارش کنه تا یک ساعت مجددا رله راست گرد موتور فعال بشه تا چهار چوب وسطی به کلید دوم برخورد کنه(نقطه B)مجددا رله راست گرد قطع بشه تایمر یا شمارشگر شروع به شمارش کنه و مجددا بعد یک ساعت رله چپ گرد فعال بشه و چهارچوب مجددا حرکت کنه به سمت نقطه A
حالت ایده آل هم اینه ک برای عملکرد بهتر و ثبت زمان به صورت دقیق از ی مازول ساعت مجهز به باطری استفاده بشه(ک متاسفانه بنده مبتدی هستمو ...)

این کدهایی هست ک برای قسمت تایم نوشتم بعدا قسمت کنترل دما ک نوشته شده و به خوبی کار میکنه بهش اضافه میکنم.
ممنون میشم راهنمایی بفرماید.




const int button_A = 2; //pin for button A
const int button_B = 3; //pin for button B
const int relay_L = 4; //pin for Left turn motor
const int relay_R = 5; //pin for Right turn motor

void setup() {
pinMode(button_A,INPUT);
pinMode(button_B,INPUT);
pinMode(relay_L,OUTPUT);
pinMode(relay_R,OUTPUT);
}

void loop() {


if(digitalRead(button_A)==HIGH)
{
digitalWrite(relay_L,LOW);
delay(3600000); //after 3600sec and overF turn on Right lelay
digitalWrite(relay_R,HIGH);
}

if(digitalRead(button_B)==HIGH)
{
digitalWrite(relay_R,LOW);
delay(3600000);
digitalWrite(relay_L,HIGH);
}

}