تکرار ارسال در آردینو

2 سال قبل
139 بازدید

0

سلام مجدد میخوایم یک رله هرموقع روشن شد یک پیامک ارسال کند و هرموقع خاموش شد یک پیامک مبنی بر خاموش شدن، برنامه زیر مربوط به این موضوع هست اما مشکلمون اینه که با روشن شدن رله پیامک مدام ارسال میشه و همچنین در حالت خاموش بودن هم همینطور درصورتی که ما نیاز داریم تنها موقع تغییر وضعیت فقط یکبار پیامک مربوط به ان وضعیت را ارسال کند، فکر نمیکنم بحث نویز باشد و یک مشکلی دربرنامه داریم که اینطور مدام تکرار میشود و باید به گونه ای شرطی بذاریم که فقط با تغییر حالت عمل کند که متاسفانه پیدا نکردیم

void loop() { 
sws =digitalRead(sw); 
if (sws == LOW){ 
gsmSerial.println("AT+CMGF=1"); 
smssend(); 
gsmSerial.println("AT+CMGS=\"+98********\""); 
smssend(); 
gsmSerial.print("on"); 
smssend(); 
gsmSerial.write(26); 
}
}

دلیل آن هم همانطور که فرمودید در لوپ بودن است اما در خارج از لوپ هم مشکلاتی دارد!! با دستورات شرطی چطور می توانیم این مشکل را برطرف کنیم؟

19 اردیبهشت 01 در 06:06
سلام بر صبح روشن
9

افزودن دیدگاه

1 پاسخ ثبت شده است
0

با سلام

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

#define buttonPin 2

bool buttonState, lastButtonState = 0;

void setup() {
  Serial.begin(115200);
  pinMode(buttonPin, INPUT_PULLUP);

}

void loop() {
  buttonState = digitalRead(buttonPin);
  if (lastButtonState != buttonState) {
    lastButtonState = buttonState;
    if (buttonState == HIGH) {
      Serial.println(1);
      //do this when active
    } else {
      Serial.println(0);
      //do this when deactive
    }

    delay(200);
  }
}
19 اردیبهشت 01 در 06:17
محمد دمیرچی
3570

افزودن دیدگاه


انجمن کافه‌ربات © 1400