سلام.
یه برنامه کنترلی دارم که دستور رو از طریق پورت سریال به برد یونو میفرسته. هدف کنترل سه تا رله هست. دستور ارسالی شامل نام پین ( متصل به رله) و تایمر( زمان روشن بودن رله هست) .
سوال اول: برنامه زیر برای دریافت زمان کار میکنه. حالا چنانچه دوستان راه حل بهتری دارن، ممنون میشم
int RelayPin;
int Time;
void setup() {
Serial.begin(9600);
while (!Serial) {
}
}
void loop() {
while (Serial.available() < 4); //wait until there are 3 bytes in the buffer
{
}
RelayPin = Serial.read();
Time = Serial.read();
Time += Serial.read();
digitalWrite(RelayPin)=LOW;
delay(Time);
digitalWrite(RelayPin)=HIGH;
}
}
سوال دوم و اصلی:
چطور میتونم وقتی یکی از پین های راه انداز فعاله ، یکی دیگه رو هم کنترل کنم! چون از delay استفاده کردم، حلقه تا پایان زمانش استپ میشه و نمیتونم همزمان به دو تا پین دسترسی داشته باشم. گویا باید از وقفه استفاده کرد ام نمیدونم چطور!
از هرگونه راهنماییتون ممنونم.
در