بله برای اینکه این مشکل 18 ثانیه رو حل کنم من این طور عمل کردم :*
یک متغیر status تعریف کردم و مقدار پیش فرضش رو 0 گذاشتم. توی تایع loop هم گفتم اگه سنسور چیزی رو سنس کرد مقدار status* رو یک کنه و در نهایت هم اگه مقدار status یک بود به آژیر ولتاژ میدم .
الان یه برنامه ساده نوشتم برای این کار . لطفا نگاه کنید و اگه پیشنهادی برای بهتر کردنش دارید بفرمایید .
با این کار به محض اینکه سنسور چیزی رو سنس کنه ، مقدار متغیر status رو یک میکنم و تا زمانی که آردوینو ریست یا خاموش نشه این مقدار یک خواهد بود و در نتیجه آژیر زده میشه. درسته؟#include <SPI.h>
int status = 0;
int sensor = 2;
int alarm = 10;
void setup() {
pinMode(alarm, OUTPUT);
pinMode(sensor, INPUT);
}
void loop() {
if(digitalRead(sensor) == HIGH){
status = 1;
}
if(status)
{
digitalWrite(alarm, HIGH);
}
}