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
Pracę zaczniemy od przygotowania układu zbudowanego w e‑materiale Arduino – termometrP1CZzN8a1Arduino – termometr. Oto szkic połączeń oraz gotowy termometr:
RGUFX7Nl7KnlK
RKOxpmJxAQiOv
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
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
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
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
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
Słownik
buzzer
buzzer
element elektroniczny służący do generowania dźwięku