PDA

צפייה בגרסה מלאה : זיהוי בחיישן מגנטי ky003



yonilavi2@gmail.com
19-07-2020, 20:37:06
אהלן אני חדש ומתחיל וכיף לדעת שיש פורום שאפשר להיעזר וללמוד ממנו.
אני מנסה להפעיל את נורת הלד אחרי זיהוי של 10 פעמים בחיישן המגנטי הכנתי קוד אבל הוא יחסית ארוך השאלה שלי אם אין דרך לקצר את הקוד? זאת אומרת האם יש קוד שמאפשר להכניס מספר שאפשר לשנות או כל פעם צריך להעתיק 10 שורות בשביל שיבין שצריץ להפעיל את נורת הלד
הקוד:



#define ky003SensorPin 2
#define led 13

void setup() {
// put your setup code here, to run once:
pinMode(ky003SensorPin,INPUT_PULLUP);
pinMode(led,OUTPUT);
}

void loop() {

// 10 פעמים החיישן מזהה 1 לוגי ומדליק את נורת הלד לשנייה אחת:
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
while(digitalRead(hallSensorPin)==0);while(digital Read(hallSensorPin)==1);
digitalWrite(led,1);
delay(1000);
digitalWrite(led,0);
}

איזי
19-07-2020, 21:44:58
yonilavi2@gmail.com, תן מבט על הקוד הבא, לא העליתי לארדואינו, רק קימפלתי:


#define ky003SensorPin 2
#define led 13
int Counter = 0;


void setup() {
// put your setup code here, to run once:
pinMode(ky003SensorPin,INPUT_PULLUP);
pinMode(led,OUTPUT);
}


void loop() {


// 10 פעמים החיישן מזהה 1 לוגי ומדליק את נורת הלד לשנייה אחת:


while(digitalRead(ky003SensorPin)==1){Counter++;}
if (Counter > 9){
digitalWrite(led,1);
delay(1000);
digitalWrite(led,0);
Counter = 0;}
}

אפשר לכתוב גם יותר אלגנטי, כך שיהיה קבוע בתחילת הקוד שבו אתה מכניס את מספר הלחיצות הנדרש.
יכול להיות שצריך להכניס השהיה אחרי כל לחיצה כדי שה-loop לא ירוץ כמה פעמים בזמן שהחיישן במצב מופעל (או מופסק לפי הקוד שלך?).