Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // הגדרת מספרי הפינים שמחוברים לרכיבים
- #define magSensorPin 2
- #define inLampRlyPin 4
- #define outLampRlyPin 5
- #define speakerRlyPin 6
- #define motorIn1 8
- #define motorIn2 9
- // מצב החיישן המגנטי, 0 - סגור 1 - פתוח
- int magSensorState = 0;
- // האם נזרקה חסה מאז שנפתח הדלת, 0 זה לא 1 זה כ
- int laticeState = 0;
- void setup() {
- pinMode(magSensorPin, INPUT_PULLUP);
- pinMode(inLampRlyPin, OUTPUT);
- pinMode(outLampRlyPin, OUTPUT);
- pinMode(speakerRlyPin, OUTPUT);
- pinMode(motorIn1, OUTPUT);
- pinMode(motorIn2, OUTPUT);
- // עצור מנוע במצב התחלתי
- digitalWrite(motorIn1, LOW);
- digitalWrite(motorIn2, LOW);
- // נתק ממסר תאורה פנימית
- digitalWrite(inLampRlyPin, LOW);
- // סגור ממסר תאורה חיצונית
- digitalWrite(outLampRlyPin, HIGH);
- // נתק ממסר רמקול
- digitalWrite(speakerRlyPin, LOW);
- }
- void loop() {
- // קרא מצב חיישן מגנטי
- magSensorState = digitalRead(magSensorPin);
- // אם החיישן המגנטי פתוח - דלת פתוחה
- if (magSensorState == HIGH && laticeState == 0) {
- // המתן שלוש שניות עד שהדלת תפתח כולה
- delay(3000);
- // חבר ממסר תאורה פנימית
- digitalWrite(inLampRlyPin, HIGH);
- // נתק ממסר תאורה חיצונית
- digitalWrite(outLampRlyPin, LOW);
- // חבר ממסר רמקול
- digitalWrite(speakerRlyPin, HIGH);
- // הפעל מנוע למשך שני סיבובים
- digitalWrite(motorIn1, LOW);
- digitalWrite(motorIn2, HIGH);
- // השהייה למשך שני סיבובים
- delay(1200);
- // עצור מנוע אחרי שני סיבובים
- digitalWrite(motorIn1, LOW);
- digitalWrite(motorIn2, LOW);
- laticeState = 1;
- }
- // אם הדלת נשארה פתוחה אחרי זריקת החסה
- else if (magSensorState == HIGH && laticeState == 1) {
- // חבר ממסר תאורה פנימית
- digitalWrite(inLampRlyPin, HIGH);
- // נתק ממסר תאורה חיצונית
- digitalWrite(outLampRlyPin, LOW);
- // חבר ממסר רמקול
- digitalWrite(speakerRlyPin, HIGH);
- // עצור מנוע אחרי שני סיבובים
- digitalWrite(motorIn1, LOW);
- digitalWrite(motorIn2, LOW);
- }
- // אם החיישן המגנטי סגור - דלת סגורה
- else if (magSensorState == LOW) {
- // נתק ממסר תאורה פנימית
- digitalWrite(inLampRlyPin, LOW);
- // סגור ממסר תאורה חיצונית
- digitalWrite(outLampRlyPin, HIGH);
- // נתק ממסר רמקול
- digitalWrite(speakerRlyPin, LOW);
- // עצור מנוע במצב התחלתי
- digitalWrite(motorIn1, LOW);
- digitalWrite(motorIn2, LOW);
- laticeState = 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement