Advertisement
gabbyshimoni

or arieli

Jul 16th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.86 KB | None | 0 0
  1. // הגדרת מספרי הפינים שמחוברים לרכיבים
  2. #define magSensorPin 2
  3. #define inLampRlyPin 4
  4. #define outLampRlyPin 5
  5. #define speakerRlyPin 6
  6. #define motorIn1 8
  7. #define motorIn2 9
  8.  
  9. // מצב החיישן המגנטי, 0 - סגור  1 - פתוח
  10. int magSensorState = 0;
  11. // האם נזרקה חסה מאז שנפתח הדלת, 0 זה לא  1 זה כ
  12. int laticeState = 0;
  13.  
  14. void setup() {
  15.   pinMode(magSensorPin, INPUT_PULLUP);
  16.   pinMode(inLampRlyPin, OUTPUT);
  17.   pinMode(outLampRlyPin, OUTPUT);
  18.   pinMode(speakerRlyPin, OUTPUT);
  19.   pinMode(motorIn1, OUTPUT);
  20.   pinMode(motorIn2, OUTPUT);
  21.  
  22.   // עצור מנוע במצב התחלתי
  23.   digitalWrite(motorIn1, LOW);
  24.   digitalWrite(motorIn2, LOW);
  25.  
  26.   // נתק ממסר תאורה פנימית
  27.   digitalWrite(inLampRlyPin, LOW);
  28.  
  29.   // סגור ממסר תאורה חיצונית
  30.   digitalWrite(outLampRlyPin, HIGH);
  31.  
  32.   // נתק ממסר רמקול
  33.   digitalWrite(speakerRlyPin, LOW);
  34. }
  35.  
  36. void loop() {
  37.   // קרא מצב חיישן מגנטי
  38.   magSensorState = digitalRead(magSensorPin);
  39.  
  40.   // אם החיישן המגנטי פתוח - דלת פתוחה
  41.   if (magSensorState == HIGH && laticeState == 0) {
  42.  
  43.     // המתן שלוש שניות עד שהדלת תפתח כולה
  44.     delay(3000);
  45.     // חבר ממסר תאורה פנימית
  46.     digitalWrite(inLampRlyPin, HIGH);
  47.     // נתק ממסר תאורה חיצונית
  48.     digitalWrite(outLampRlyPin, LOW);
  49.     // חבר ממסר רמקול
  50.     digitalWrite(speakerRlyPin, HIGH);
  51.  
  52.  
  53.     // הפעל מנוע למשך שני סיבובים
  54.     digitalWrite(motorIn1, LOW);
  55.     digitalWrite(motorIn2, HIGH);
  56.     // השהייה למשך שני סיבובים
  57.     delay(1200);
  58.  
  59.     // עצור מנוע אחרי שני סיבובים
  60.     digitalWrite(motorIn1, LOW);
  61.     digitalWrite(motorIn2, LOW);
  62.     laticeState = 1;
  63.   }
  64.   // אם הדלת נשארה פתוחה אחרי זריקת החסה
  65.   else if (magSensorState == HIGH && laticeState == 1) {
  66.  
  67.     // חבר ממסר תאורה פנימית
  68.     digitalWrite(inLampRlyPin, HIGH);
  69.     // נתק ממסר תאורה חיצונית
  70.     digitalWrite(outLampRlyPin, LOW);
  71.     // חבר ממסר רמקול
  72.     digitalWrite(speakerRlyPin, HIGH);
  73.  
  74.     // עצור מנוע אחרי שני סיבובים
  75.     digitalWrite(motorIn1, LOW);
  76.     digitalWrite(motorIn2, LOW);
  77.   }
  78.  
  79.   // אם החיישן המגנטי סגור - דלת סגורה
  80.   else if (magSensorState == LOW) {
  81.  
  82.     // נתק ממסר תאורה פנימית
  83.     digitalWrite(inLampRlyPin, LOW);
  84.  
  85.     // סגור ממסר תאורה חיצונית
  86.     digitalWrite(outLampRlyPin, HIGH);
  87.  
  88.     // נתק ממסר רמקול
  89.     digitalWrite(speakerRlyPin, LOW);
  90.  
  91.     // עצור מנוע במצב התחלתי
  92.     digitalWrite(motorIn1, LOW);
  93.     digitalWrite(motorIn2, LOW);
  94.     laticeState = 0;
  95.   }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement