نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
ساده ترینش اینه:
کد:
#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 رو جواب داد البته به زور
پیشاپیش واقعا بابت وقتی که میذارید واسه پاسخ ها سپاس گزارم