Skocz do zawartości
Komentator

Kurs Arduino II - #4 - przerwania, kontaktron, czujnik PIR

Pomocna odpowiedź

@Kurczak92 a sprawdzałeś jak działa kontaktron w układach jak w kursie elektroniki 2? Gdy dasz go w układzie z zasilaniem i jakimś np. LED, chwilowo bez mikrokontrolera.

Możesz też sprawdzić czy magnes nie ściąga listków za słabo, może jakiś inny będzie współgrał lepiej, bo takie zjawisko raczej nie jest poprawne.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Witam 🙂

Co prawda nie dokończyłem jeszcze całego odcinka, jednak chciałbym przedstawić moją małą modyfikację co do zadania domowego dla systemu alarmowego przy otwieraniu okien.

Jedynym, a jednak dość istotnym dodatkiem jest pojedynczy mikroswitch, który pozwala na wygodne zresetowanie systemu po upewnieniu się, że okna są zamknięte, a w środku nie przybyło nam żadnych gości. Stwierdziłem, że przy takim resetowaniu miłym dodatkiem są dwa szybkie bipnięcia buzzera, co daje nam znać że możemy odejść od układu spokojni, że dalej jesteśmy pod jego ochroną.

Co prawda można by użyć do tego celu przycisku RESET na mikrokontrolerze, jednak własny przycisk ma pewną przewagę - możemy go umieścić gdzie tylko sobie życzymy, co pozwala nam zresetować układ wygodnie z naszego biurka/łóżka bez potrzeby żadnego ruchu. Leniuchowanie nigdy nie było tak proste!

Załączam mój kod, jednak komentarze są po angielsku, ponieważ przyzwyczajam się na to, co czeka mnie na studiach.

Wyprowadzenia na Arduino dokładnie tak, jak są opisane w #define

// This programme uses reed switch, RGB LED and a buzzer in simple alarm system

/*
 * System works as follows:
 * 1. When the window is closed (reed switch is connected), LED glows GREEN and the system is silent
 * 2. Once the window is opened, reed switch disconects:
 *    - LED turns RED
 *    - Buzzer starts making noise
 *    Even when the window is immediately closed, once opened alarm goes off
 * 3. Microswitch is used to reset the system:
 *    - When the door is closed, button is pushed
 *    - LED turns GREEN again
 *    - Buzzer makes two short beeps to let us know that the system is succesfully reset
 *    - Additional short delay to prevent disruptions
 *    
 * That way it's a simple alarm system that can be expanded with more reed switches.
 */

#define firstRed 10 // Defines these pins for our convenience
#define firstGreen 11
#define firstBlue 12

#define firstReed 2 
#define buzzerPin 9
#define button 3

void setup() {  
  pinMode(firstRed, OUTPUT); // RGB pins as outputs
  pinMode(firstGreen, OUTPUT);
  pinMode(firstBlue, OUTPUT);

  digitalWrite(firstRed, LOW); // Makes sure the LED is initially turned off
  digitalWrite(firstGreen, LOW);
  digitalWrite(firstBlue, LOW);
  
  pinMode(firstReed, INPUT_PULLUP); // Reed switch as an input

  pinMode(buzzerPin, OUTPUT); // Buzzer as an output
  digitalWrite(buzzerPin, LOW);
  noTone(buzzerPin);

  pinMode(button, INPUT_PULLUP);
}

void loop() {
  tone(buzzerPin, 4000, 100); // Buzzer beeps two times (initially to let you know the system is on, then that the system is reset)
  delay(150);
  tone(buzzerPin, 4000, 100);

  delay(1000); // Additional delay to prevent disruptions
  
  digitalWrite(firstRed, LOW); // Settings to reset the system - LED glows GREEN, buzzer is silent
  digitalWrite(firstGreen, HIGH);
  noTone(buzzerPin);

  while(digitalRead(firstReed) == LOW) {} // Waits for the window to be opened

  digitalWrite(firstRed, HIGH); // LED glows RED
  digitalWrite(firstGreen, LOW);

  while(digitalRead(button) == HIGH) { // Loop that goes on till the button is pressed
    tone(buzzerPin, 4250);
    delay(150);
    tone(buzzerPin, 3750);
    delay(150);
  }

  // Button has been pressed, main loop starts over again
}

Postaram się dołączyć również filmik jak tylko zedytuję wpis na telefonie.

PS - Podczas pracy nad tym układem naszły mnie dwa szybkie pytania:
- Czy jest różnica w tym, który pin używamy jako wyprowadzenie dla buzzera bez generatora przy używaniu funkcji tone()? W kursie podłączyliśmy go do pinu Analog, jednak wygląda na to że działa równie dobrze zarówno na pinach Digital i PWM
- Jaka jest różnica pomiędzy microswitchami 4.3mm a 5mm? Oczywiście, poza tymi oczywistymi. Jedyne logiczne wytłumaczenia jakie przychodzą mi do głowy to albo żeby móc puścić przez nie "większy" prąd, albo dla naszej wygody, gdy musimy umieścić je w otworach o odpowiedniej grubości. Skoro używamy ich do ustawienia logicznego 0/1, przy pracowaniu z większym prądem tak czy siak będziemy musieli użyć tranzystorów, dlatego obstawiam tą drugą opcję.

Miłego dnia, może za chwilę wyląduje kolejny wpis, tym razem o czujniku ruchu lub przerywaniach 😉

Edit - nie mogę zamieścić tutaj pliku mp4, więc dołączam zdjęcie układu. Myślę że każdy poradzi sobie z jego odtworzeniem, swoją drogą polecam wykorzystać naklejki forbota na drewnianej podstawce, etektywny sposób na upewnienie się co do odpowiedniego rezystora

IMG_20200910_101923.jpg

Edytowano przez bujo2001
Dodatkowa zawartość
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@bujo2001 ciekawa modyfikacja, powodzenia w dalszych eksperymentach 🙂

Dnia 10.09.2020 o 10:16, bujo2001 napisał:

Czy jest różnica w tym, który pin używamy jako wyprowadzenie dla buzzera bez generatora przy używaniu funkcji tone()? W kursie podłączyliśmy go do pinu Analog, jednak wygląda na to że działa równie dobrze zarówno na pinach Digital i PWM

W tym przypadku nie ma to większego znaczenia. Wybór pinu, który może pełnić rolę wejścia analogowego nie był kluczowy.

Dnia 10.09.2020 o 10:16, bujo2001 napisał:

- Jaka jest różnica pomiędzy microswitchami 4.3mm a 5mm? Oczywiście, poza tymi oczywistymi. Jedyne logiczne wytłumaczenia jakie przychodzą mi do głowy to albo żeby móc puścić przez nie "większy" prąd, albo dla naszej wygody, gdy musimy umieścić je w otworach o odpowiedniej grubości. Skoro używamy ich do ustawienia logicznego 0/1, przy pracowaniu z większym prądem tak czy siak będziemy musieli użyć tranzystorów, dlatego obstawiam tą drugą opcję.

To tylko rozmiar elementu, który czasami jest też powiązany z innym rozstawem wyprowadzeń. W tym przypadku nie wpływa to bezpośrednio na żadne inne właściwości układu.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites

Na załączonych zdjęciach nie widać gdzie, który kabel biegnie. Przydały by się jeszcze schematy.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

@Antosik Będzie ciężko to odtworzyć, bo sporo czasu minęło odkąd to składałem, ale generalnie jeżeli złożysz układ tak samo jak jest to opisane w kursie, to jedyną nową zmianą jest przycisk, który wsm podłączasz standardowo do jednego z portów cyfrowych i do masy. Wszystko inne to już tylko kwestia kodowania, a to jest zamieszczone w poście 🙂

Udostępnij ten post


Link to post
Share on other sites

@Antosik dzięki za konstruktywne informacje zwrotne - mamy to już na uwadze. Odświeżając kolejne kursy dodajemy już wszędzie schematy ideowe. Gdy zabierzemy się za odświeżanie tego kursu to na pewno również je dodamy.

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...