اینجوری نمیتونم کامپایل کنم
کد کاملتو بزار
قسمت های if اش رو اگه میخوای عملیات های توشو پاک کن
اینجوری نمیتونم کامپایل کنم
کد کاملتو بزار
قسمت های if اش رو اگه میخوای عملیات های توشو پاک کن
#include <VirtualWire.h>
#include <Adafruit_SleepyDog.h>
int rx = 2;
int relay1 = 3;
int relay2 = 4;
int relay3 = 5;
int relay4 = 6;
int relay5 = 7;
int relay6 = 8;
int relay7 = 9;
int relay8 = 10;
int relay9 = 11;
int relay10 = 12;
int led = 13;
void setup()
{
Serial.begin(9600);
Serial.println("setup");
vw_set_rx_pin(rx);
vw_set_ptt_inverted(true);
vw_setup(2000);
vw_rx_start();
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(relay5, OUTPUT);
pinMode(relay6, OUTPUT);
pinMode(relay7, OUTPUT);
pinMode(relay8, OUTPUT);
pinMode(relay9, OUTPUT);
pinMode(relay10, OUTPUT);
Watchdog.enable(10000);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen))
{
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') )
{
digitalWrite(led, true);
digitalWrite(relay1, HIGH);
Serial.println("relay1 on");
delay(500);
digitalWrite(led, false);
}
else
buf = " ";
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '2') )
{
digitalWrite(led, true);
digitalWrite(relay1, LOW);
Serial.println("relay1 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '3') )
{
digitalWrite(led, true);
digitalWrite(relay2, HIGH);
Serial.println("relay2 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '4') )
{
digitalWrite(led, true);
digitalWrite(relay2, LOW);
Serial.println("relay2 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '5') )
{
digitalWrite(led, true);
digitalWrite(relay3, HIGH);
Serial.println("relay3 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '6') )
{
digitalWrite(led, true);
digitalWrite(relay3, LOW);
Serial.println("relay3 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '7') )
{
digitalWrite(led, true);
digitalWrite(relay4, HIGH);
Serial.println("relay4 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '8') )
{
digitalWrite(led, true);
digitalWrite(relay4, LOW);
Serial.println("relay4 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '9') )
{
digitalWrite(led, true);
digitalWrite(relay5, HIGH);
Serial.println("relay5 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '0'))
{
digitalWrite(led, true);
digitalWrite(relay5, LOW);
Serial.println("relay5 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '1'))
{
digitalWrite(led, true);
digitalWrite(relay6, HIGH);
Serial.println("relay6 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '2'))
{
digitalWrite(led, true);
digitalWrite(relay6, LOW);
Serial.println("relay6 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '3'))
{
digitalWrite(led, true);
digitalWrite(relay7, HIGH);
Serial.println("relay7 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '4'))
{
digitalWrite(led, true);
digitalWrite(relay7, LOW);
Serial.println("relay7 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '5'))
{
digitalWrite(led, true);
digitalWrite(relay8, HIGH);
Serial.println("relay8 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '6'))
{
digitalWrite(led, true);
digitalWrite(relay8, LOW);
Serial.println("relay8 off");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '7'))
{
digitalWrite(led, true);
digitalWrite(relay9, HIGH);
Serial.println("relay9 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '8'))
{
digitalWrite(led, true);
digitalWrite(relay9, LOW);
Serial.println("relay9 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1')&& (buf[5] == '9'))
{
digitalWrite(led, true);
digitalWrite(relay10, HIGH);
Serial.println("relay10 on");
delay(500);
digitalWrite(led, false);
}
if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '2')&& (buf[5] == '0'))
{
digitalWrite(led, true);
digitalWrite(relay10, LOW);
Serial.println("relay10 off");
delay(500);
digitalWrite(led, false);
}
}
Watchdog.reset();
}
ساده ترینش اینه:
کد:#include <VirtualWire.h> #include <Adafruit_SleepyDog.h> int rx = 2; int relay1 = 3; int relay2 = 4; int relay3 = 5; int relay4 = 6; int relay5 = 7; int relay6 = 8; int relay7 = 9; int relay8 = 10; int relay9 = 11; int relay10 = 12; int led = 13; void setup() { Serial.begin(9600); Serial.println("setup"); vw_set_rx_pin(rx); vw_set_ptt_inverted(true); vw_setup(2000); vw_rx_start(); pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); pinMode(relay5, OUTPUT); pinMode(relay6, OUTPUT); pinMode(relay7, OUTPUT); pinMode(relay8, OUTPUT); pinMode(relay9, OUTPUT); pinMode(relay10, OUTPUT); Watchdog.enable(10000); } void loop() { uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; if (vw_get_message(buf, &buflen)) { if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') ) { digitalWrite(led, true); digitalWrite(relay1, HIGH); Serial.println("relay1 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '2') ) { digitalWrite(led, true); digitalWrite(relay1, LOW); Serial.println("relay1 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '3') ) { digitalWrite(led, true); digitalWrite(relay2, HIGH); Serial.println("relay2 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '4') ) { digitalWrite(led, true); digitalWrite(relay2, LOW); Serial.println("relay2 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '5') ) { digitalWrite(led, true); digitalWrite(relay3, HIGH); Serial.println("relay3 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '6') ) { digitalWrite(led, true); digitalWrite(relay3, LOW); Serial.println("relay3 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '7') ) { digitalWrite(led, true); digitalWrite(relay4, HIGH); Serial.println("relay4 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '8') ) { digitalWrite(led, true); digitalWrite(relay4, LOW); Serial.println("relay4 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '9') ) { digitalWrite(led, true); digitalWrite(relay5, HIGH); Serial.println("relay5 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '0')) { digitalWrite(led, true); digitalWrite(relay5, LOW); Serial.println("relay5 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '1')) { digitalWrite(led, true); digitalWrite(relay6, HIGH); Serial.println("relay6 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '2')) { digitalWrite(led, true); digitalWrite(relay6, LOW); Serial.println("relay6 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '3')) { digitalWrite(led, true); digitalWrite(relay7, HIGH); Serial.println("relay7 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '4')) { digitalWrite(led, true); digitalWrite(relay7, LOW); Serial.println("relay7 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '5')) { digitalWrite(led, true); digitalWrite(relay8, HIGH); Serial.println("relay8 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '6')) { digitalWrite(led, true); digitalWrite(relay8, LOW); Serial.println("relay8 off"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '7')) { digitalWrite(led, true); digitalWrite(relay9, HIGH); Serial.println("relay9 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '8')) { digitalWrite(led, true); digitalWrite(relay9, LOW); Serial.println("relay9 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '1') && (buf[5] == '9')) { digitalWrite(led, true); digitalWrite(relay10, HIGH); Serial.println("relay10 on"); delay(500); digitalWrite(led, false); } if ((buf[0] == 'r') && (buf[1] == 'e') && (buf[2] == 'z') && (buf[3] == 'a') && (buf[4] == '2') && (buf[5] == '0')) { digitalWrite(led, true); digitalWrite(relay10, LOW); Serial.println("relay10 off"); delay(500); digitalWrite(led, false); } else { for (int i = 0; i < 10; i++) buf [i] = ' ' ; } } Watchdog.reset(); }
ممنون مهندس ؟ دقیقا کار این کد چیه و به چه دردی میخوره ؟ چون بافر من فقط کد مخصوص خودشو میگیره درسته ؟
راستی مهندس من اون چیزی که میخواستم الان ساختم . دوتا بحث
یکی اینکه گاهی وقتا کدا قاطی میشه و یه کد یه دستور دیگه رو اجرا میکنه ! این مال اینه که کدهام خیلی نزدیک همه ؟ چون یکم اختلافشونو بیشتر کردم حس میکنم بهتر شد و فعلا تداخلی ندیدم !!!
دیگه اینکه من میخوام از این کد و دستگاه به طور واقعی استفاده کنم .یعنی خارج از ازمایشگاه و پروژه و.... از نظر شما قابل استفاده هست ؟از لحاظ کیفی و عملکرد میگم !
میتونم واسه خونمون از این دستگاه و کد بدون مشکل استفاده کنم ؟ اگر توصیه و نصیحتی دارین که به کیفیت و عملکرد و طول عمر دستگاهم کمک میکنه ممنون میشم کمک کنید. راستی منبع تغذیه 10 امپر گذاشتم 48 تا رله رو جواب نداد 40 رو جواب داد البته به زور
پیشاپیش واقعا بابت وقتی که میذارید واسه پاسخ ها سپاس گزارم
کاری که این کد می کنه اینه که اگه یه موقع فرستنده یا گیرنده قاطی کرد میاد بافر رو خالی می کنه که اون داده های قاطی پاتی توش نمونه
در مورد نزدیک بودن کد ها اگه از پسوردهای دور از هم استفاده کنید و ترجیحا هم رمزهای کوتاه بزاری بهتره هم سرعت پردازشش کمتر میشه هم امکان قاطی کردن
48تا رله!
خدا به خیر کنه
اره قابل اعتماده
اگه حساب همه جای کارشو کردی و الان چیزی که ساختی داره بدون مشکل کار می کنه چرا مناسب نباشه
اره دیگه میخوام فقط یجا بشینم و کل خونه رو با ریموت کنترل کنم
مشکل همینجاس که حساب همه چی رو نکردم یعنی دقیقا نمیدونم حساب چی رو باید بکنم ! کل پست های این مدتم واسه همینه! کدش که اینه . شما تاییدش میکنی ؟ با خالی کردن بافر و تابع واچ داگ ! دیگه نمیدونم چه محکم کاریی کنم
سخت افزارشم که یه پاور سوییچینگ 10 امپر واسه کل .که کمه باید یه 15 امپر جایگزین کنم 6تا رله 8 کاناله گذاشتم که پایه های vcc و gndشونو همه رو بهم وصل کردم و وصل کردم به یه خروجی منبع تغذیه . پایه های in 1 تا 8 هم وصل کردم به اردوینو . 5تا اردوینو نانو CH340 با 5تا گیرنده RF315 .بعد vcc و gnd رادیوها هم وصل کردم به خود پایه 5ولت اردوینو . بعد خروجی دیگه منبع تغذیه رو اول دادم به یه مبدل dc به dc ده امپر از اونور تنظیم کردم رو 5ولت دقیق و دادم به پایه های VIN و زمین اردوینو اینم از نظر شما درسته ؟
خونمون یوقت نره رو هوا!!!
یه قسمت داستان رو نفهمیدم برای استفاده از پین دیجیتال از پینهای 0 و 1 آردوینو هم استفاده کردی؟
درمورد پاورهات هم چیزی که نوشتی درسته
اما مرحله تست رو باید خیلی بد انجام بدی
یعنی بدترین حالتی که ممکنه یه کاربر با سیستمت کار کنه
و این که تمام اجزایی رو که میخوای با رله کنترل کنی یه دونه یه دو نه به مدار اضافه کن تا مطمئن باشی درست کار می کنه
مگه پین 0 و 1 هم داریم ؟ نه دیگه پایه دیتا رادیو رو دادم 2 اردوینو . 3 تا 10 رو یه رله 8پل وصل کردم . 11 و 12 هم دو پل از یه ماژول 8 پله دیگه . پایه 13 هم گذاشتم واسه همون ال ای دی
حتما تک تک امتحان باید بکنم ؟ یه سوال ! ؟ الان این مدار من که کاری به خروجی های رله ها نداره درسته ؟ یعنی ممکنه خروجی ها رو مدار تاثیر بذاره ؟