Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Buzzer

Do rozbudowy naszego termometru użyjemy znanej już nam czerwonej diody LED oraz elementu odpowiadającego za wyemitowanie sygnału dźwiękowego. Mowa tu o brzęczyku, nazywanym też buzzerembuzzerbuzzerem. Wykorzystamy popularny element oznaczony symbolem TMB12A05. Jest to brzęczyk aktywny, czyli taki, który posiada wbudowany generator. Oznacza to, że buzzer wydaje dźwięk po przyłożeniu napięcia zasilającego (w naszym przypadku wynosi ono 5 V).

Sam brzęczyk ma kształt walca z dwiema metalowymi nóżkami. Podobnie jak w przypadku diod LED, są one różnej długości. Dłuższa nóżka to anoda (oznaczona na obudowie symbolem +), zaś krótsza to katoda.

R1Ew74LiXYfAx
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Pracę zaczniemy od przygotowania układu zbudowanego w e‑materiale Arduino – termometrP1CZzN8a1Arduino – termometr. Oto szkic połączeń oraz gotowy termometr:

RGUFX7Nl7KnlK
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
RKOxpmJxAQiOv
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Wyślijmy do płytki Arduino kod odpowiedzialny za mierzenie temperatury i wyświetlanie wyników na ekranie komputera. Program ten również został omówiony w e‑materiale Arduino – termometrP1CZzN8a1Arduino – termometr. Zapiszmy szkic pod nazwą termometr.

Linia 1. const int sensor znak równości A0 średnik. Linia 3. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy. Linia 7. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 8. int odczyt znak równości analogRead otwórz nawias okrągły sensor zamknij nawias okrągły średnik. Linia 9. float napiecie znak równości odczyt asterysk 5 kropka 0 średnik. Linia 10. napiecie znak równości napiecie prawy ukośnik 1024 kropka 0 średnik. Linia 11. float tempC znak równości otwórz nawias okrągły napiecie minus 0 kropka 5 zamknij nawias okrągły asterysk 100 średnik. Linia 13. Serial kropka print otwórz nawias okrągły cudzysłów Temperatura dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 14. Serial kropka print otwórz nawias okrągły tempC zamknij nawias okrągły średnik. Linia 15. Serial kropka print otwórz nawias okrągły cudzysłów stopni C cudzysłów zamknij nawias okrągły średnik. Linia 16. Serial kropka println otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 17. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik. Linia 18. zamknij nawias klamrowy.

Budowa układu

Oto lista elementów potrzebnych do skonstruowania termometru z alarmem:

  • kompletny układ zbudowany w e‑materiale Arduino – termometrP1CZzN8a1Arduino – termometr,

  • czerwona dioda LED,

  • rezystory 220 omega (2 sztuki),

  • brzęczyk TMB12A05 (lub podobny),

  • przewody i zworki połączeniowe.

Rozbudujmy nieco termometr, dodając do niego diodę i brzęczyk. Elementy te będą podłączone do pinów nr 6 i 7.

R1QyL9zOMxkCv
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

1. W przygotowanym wcześniej układzie łączymy diodę z pinem nr 7.

Anodę (dłuższą nóżkę) diody LED wtykamy do dowolnego otworu szyny danych, natomiast katodę umieszczamy dwa wiersze niżej. W tym samym wierszu co anoda powinna się znaleźć jedna nóżka rezystora. Jego końcówki można wygiąć tak, aby umieścić je w dwóch sąsiadujących wierszach, jednak wygodniej jest wpiąć jedną nóżkę w tym samym wierszu co anoda diody LED, a drugą kilka wierszy wyżej lub niżej. Następnie doprowadzamy do diody zasilanie, łącząc przewodem pin nr 7 z tym samym wierszem płytki stykowej, w którym znajduje się druga końcówka rezystora (ta, która nie ma kontaktu z diodą LED).

Łączymy katodę diody z masą płytki stykowej. Użyjmy drugiej szyny ujemnej na płytce. Pamiętajmy, aby obie szyny ujemne na płytce stykowej połączyć ze sobą przewodem.

RZW7SpwOYcxE1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

2. Podłączamy brzęczyk. Jego dłuższą nóżkę wpinamy w jedną szynę danych, zaś krótszą - w drugą szynę. Dzięki temu obok buzzera pozostanie miejsce na inne styki.

Podobnie jak w przypadku diody, wpinamy jedną nóżkę rezystora w tym samym wierszu, w którym znajduje się anoda, a drugą nieco wyżej (lub niżej). Teoretycznie rezystor nie jest niezbędny - brzęczykowi nic nie grozi przy napięciu 5 V (jest to jego nominalne napięcie pracy). Opornik jest nam potrzebny do regulowania głośności dźwięku. Na liście elementów umieściliśmy rezystor 220 omega, ale możemy przetestować także inne oporniki. Im wyższa będzie wartość rezystancji, tym niższe napięcie zasili brzęczyk. Przełoży się to na zmniejszenie głośności generowanego dźwięku.

Drugą nóżkę rezystora łączymy przewodem z pinem nr 6.

Katodę łączymy z masą płytki stykowej. Podłączamy płytkę Arduino do komputera.

R96qpesLrK2iz
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Programowanie

Brzęczykiem steruje się tak samo jak diodą LED. Jeżeli buzzer ma wydawać dźwięk, to poziom napięcia na jego anodzie musi być wysoki. Jeśli zależy nam by ucichł, powinniśmy obniżyć napięcie do zera.

Rozbudujmy teraz szkic odpowiedzialny za obsługę termometru. Zapiszmy go pod nazwą termometr_alarm.

1. Poniżej stałej sensor deklarujemy zmienne – przypisujemy do nich numery pinów:

Linia 1. const int sensor znak równości A0 średnik. Linia 2. int ledPin znak równości 7 średnik. Linia 3. int buzzPin znak równości 6 średnik.

2. W ciele funkcji loop() definiujemy wyjścia (mają być nimi piny nr 6 i 7):

Linia 1. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik. Linia 3. pinMode otwórz nawias okrągły ledPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 4. pinMode otwórz nawias okrągły buzzPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy.

3. Korzystając z instrukcji warunkowej if, określamy, jak ma się zachowywać nasz termometr. Załóżmy, że jeśli temperatura przekroczy 25°C, powinien się uruchomić alarm (zarówno świetlny, jak i dźwiękowy). W przeciwnym wypadku dioda i brzęczyk mają być wyłączone. Instrukcję warunkową umieszczamy przed funkcją delay(). Dodatkowo możemy zażądać wyświetlania informacji, że jest za gorąco:

Linia 1. if otwórz nawias okrągły tempC zamknij nawias ostrokątny 25 zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. digitalWrite otwórz nawias okrągły ledPin przecinek HIGH zamknij nawias okrągły średnik. Linia 3. digitalWrite otwórz nawias okrągły buzzPin przecinek HIGH zamknij nawias okrągły średnik. Linia 4. Serial kropka print otwórz nawias okrągły cudzysłów Za goraco wykrzyknik cudzysłów zamknij nawias okrągły średnik. Linia 5. Serial kropka println otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 6. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 7. digitalWrite otwórz nawias okrągły ledPin przecinek LOW zamknij nawias okrągły średnik. Linia 8. digitalWrite otwórz nawias okrągły buzzPin przecinek LOW zamknij nawias okrągły średnik. Linia 9. zamknij nawias klamrowy.

4. Weryfikujemy kod i przesyłamy szkic do płytki. Klikamy symbol monitora portu szeregowego, aby go uruchomić. Następnie podgrzewamy czujnik, ujmując go w palce, i sprawdzamy, czy alarm działa. Pamiętajmy, aby dostosować próg włączania alarmu do własnych potrzeb.

Poniższy film przedstawia efekt działania układu.

RC1GTNYPG8dtU
Film nawiązujący do treści materiału pt. "Budowa układu".

Oto cały kod szkicu sterującego działaniem termometru z alarmem temperaturowym:

Linia 1. const int sensor znak równości A0 średnik. Linia 2. int ledPin znak równości 7 średnik. Linia 3. int buzzPin znak równości 6 średnik. Linia 5. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 6. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik. Linia 7. pinMode otwórz nawias okrągły ledPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 8. pinMode otwórz nawias okrągły buzzPin przecinek OUTPUT zamknij nawias okrągły średnik. Linia 9. zamknij nawias klamrowy. Linia 11. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy. Linia 12. int odczyt znak równości analogRead otwórz nawias okrągły sensor zamknij nawias okrągły średnik. Linia 13. float napiecie znak równości odczyt asterysk 5 kropka 0 średnik. Linia 14. napiecie znak równości napiecie prawy ukośnik 1024 kropka 0 średnik. Linia 15. float tempC znak równości otwórz nawias okrągły napiecie minus 0 kropka 5 zamknij nawias okrągły asterysk 100 średnik. Linia 17. Serial kropka print otwórz nawias okrągły cudzysłów Temperatura dwukropek cudzysłów zamknij nawias okrągły średnik. Linia 18. Serial kropka print otwórz nawias okrągły tempC zamknij nawias okrągły średnik. Linia 19. Serial kropka print otwórz nawias okrągły cudzysłów stopni C cudzysłów zamknij nawias okrągły średnik. Linia 20. Serial kropka println otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 22. if otwórz nawias okrągły tempC zamknij nawias ostrokątny 25 zamknij nawias okrągły otwórz nawias klamrowy. Linia 23. digitalWrite otwórz nawias okrągły ledPin przecinek HIGH zamknij nawias okrągły średnik. Linia 24. digitalWrite otwórz nawias okrągły buzzPin przecinek HIGH zamknij nawias okrągły średnik. Linia 25. Serial kropka print otwórz nawias okrągły cudzysłów Za goraco wykrzyknik cudzysłów zamknij nawias okrągły średnik. Linia 26. Serial kropka println otwórz nawias okrągły zamknij nawias okrągły średnik. Linia 27. zamknij nawias klamrowy else otwórz nawias klamrowy. Linia 28. digitalWrite otwórz nawias okrągły ledPin przecinek LOW zamknij nawias okrągły średnik. Linia 29. digitalWrite otwórz nawias okrągły buzzPin przecinek LOW zamknij nawias okrągły średnik. Linia 30. zamknij nawias klamrowy. Linia 32. delay otwórz nawias okrągły 1000 zamknij nawias okrągły średnik. Linia 33. zamknij nawias klamrowy.

Tinkercad

Zróbmy teraz symulację układu z brzęczykiem za pomocą środowiska Tinkercad.

R1ItXti90WzaT

Na liście komponentów, widocznej po prawej stronie okna, znajdź płytkę stykową. Kliknij w nią i umieść w głównym oknie.

RCkimQbQDeSNj

Następnie znajdź i wstaw na płytkę stykową czujnik temperatury.

RNS0EgOV5YPSD

Teraz znajdź i dodaj do płytki stykowej diodę LED.

R12xLLyq7c0KW

Jako że w dostępnych komponentach nie ma brzęczyka, skorzystaj z przetwornika piezo.

R10KeZxlFZlJg

Teraz dodaj dwa rezystory. Ustaw ich wartość na 220 omega. Jeden dodaj do anody diody LED, drugi zaś do jednej z nóżek przetwornika piezo.

RDXKHYnZuqykr

Teraz dodaj moduł Arduino Uno do okna symulacji.

RnTS52gpeynpn

Podłącz pierwszy pin czujnika z pinem 5V Arduino Uno.

R1b2bcaaqXMs2

Drugi pin czujnika połącz z pinem A0 Arduino Uno.

RXIueIX8IehID

Do ujemnej szyny płytki podepnij: pin GND Arduino Uno, trzeci pin czujnika, katodę diody LED oraz wolny pin przetwornika piezo.

R1bmhApoAXWz7

Wolną nóżkę rezystora podpiętego do diody LED podepnij do pinu D7 Arduino.

RtD0wfLoeFfcj

Wolną nóżkę rezystora wpiętego do przetwornika piezo podepnij pod pin D6 Arduino.

R1O1MYuvlgXc8

Przejdźmy teraz do pisania kodu. W tym celu klikamy na przycisk Kod, z listy rozwijanej wybieramy Tekst, potwierdzamy chęć zmiany widoku i czyścimy zawartość.

Przepisz kod układu z brzęczykiem.

R1YfIvNKL9LI1

Jeśli okno z wpisanym kodem zasłania ci widok układu, możesz go dostosować do własnych potrzeb.

R1Hf4g5dn0Crl

Włącz widok Konsoli szeregowej i uruchom symulację.

R1QIfhyz4QtfZ

Oto film przedstawiający działanie programu.

RnCbnGchopHn3
Film nawiązujący do treści materiału dotyczącej działania brzęczyka.

Słownik

buzzer
buzzer

element elektroniczny służący do generowania dźwięku