![Dzwonek Arduino: 4 kroki Dzwonek Arduino: 4 kroki](https://i.howwhatproduce.com/images/001/image-756-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02
![Dzwonek Arduino Dzwonek Arduino](https://i.howwhatproduce.com/images/001/image-756-1-j.webp)
Dzisiaj pokażę wam jak zrobić dzwonek do drzwi za pomocą Arduino. Ten dzwonek odtwarza losową melodię z biblioteki piosenek. Możesz dostosować dzwonek do drzwi i dodać jeszcze więcej piosenek. Zainstaluj go poza sypialnią, klasą, biurem, a nawet drzwiami wejściowymi!
Kieszonkowe dzieci:
- Arduino Uno (zrobi większość innych typów)
- Komputer z Arduino IDE do programowania
- Kabel USB-A na USB-B do programowania Arduino
- Deska do krojenia chleba
- 4x przewody połączeniowe
- Przycisk lub inny przełącznik
- Rezystor 10 kΩ
- Brzęczyk pasywny (tj. głośnik piezoelektryczny)
-
Do instalacji stałej:
- Zasilacz 9V DC lub bateria 9V do zasilania Arduino
- 2x długie przewody do okablowania przycisku na zewnątrz drzwi
Krok 1: Konfiguracja sprzętu
![Konfiguracja sprzętu Konfiguracja sprzętu](https://i.howwhatproduce.com/images/001/image-756-2-j.webp)
![Konfiguracja sprzętu Konfiguracja sprzętu](https://i.howwhatproduce.com/images/001/image-756-3-j.webp)
![Konfiguracja sprzętu Konfiguracja sprzętu](https://i.howwhatproduce.com/images/001/image-756-4-j.webp)
Najpierw skonfigurujemy sprzęt. Zaczniemy od brzęczyka pasywnego (tj. głośnika). Chcemy podłączyć dodatni koniec pasywnego buzzera (oznaczony znakiem „+”) do cyfrowego pinu 8 w Arduino. Podłączymy drugi koniec brzęczyka passize do masy.
Następnie zainstalujemy przycisk do dzwonka. Do przełącznika użyjemy zewnętrznego rezystora pulldown 10 kOhm, dzięki czemu na wejściu Arduino nie występuje napięcie ani niestabilny stan. Korzystając z rezystora pulldown, Arduino odczytuje napięcie jako 0 V, gdy przycisk nie jest wciśnięty i 5 V, gdy przycisk jest wciśnięty. Więcej informacji na temat rezystorów pullup lub pulldown można znaleźć w tym artykule:
Jedną stronę przycisku podłączymy do 5V. Druga strona przycisku zostanie podłączona do masy przez rezystor ściągający 10 kOhm. Pamiętaj: przyciski są połączone wewnętrznie poziomo. Są one połączone tylko w pionie po naciśnięciu. Więcej informacji znajduje się w tym artykule:
Krok 2: Konfiguracja oprogramowania
Cały kod jest załączony. Poniżej znajdują się opisy każdej z funkcji wraz z migawkami kodu.
Ustawiać:
W funkcji setup() chcemy skonfigurować piny cyfrowe dla naszego przycisku i głośnika. Chcemy skonfigurować pin 2 jako wejście dla naszego przycisku i chcemy skonfigurować pin 8 jako wyjście dla naszego głośnika.
Chcemy również „zasiać” nasz generator liczb losowych do losowego wybierania melodii, gdy ktoś zadzwoni do naszego dzwonka. Zaszczepienie naszego generatora liczb losowych oznacza podanie mu losowych danych wejściowych. Zasilimy nasz generator liczb losowych wartością napięcia na wejściu analogowym 0. Ponieważ nic nie jest podłączone do tego wejścia, na tym styku pojawi się „losowe”, zmienne napięcie, które zapewni naszemu generatorowi liczb losowych wiele różnych wartości. Gwarantuje to, że dla naszego dzwonka do drzwi będziemy mieć inną kolejność wyboru utworów. Więcej informacji na temat funkcji Arduino random() można znaleźć tutaj:
#include "smoły.h"
#include "songs.h" #define BUTTON_PIN 2 #define SPEAKER_PIN 8 /* konfiguracja funkcji */ void setup() { // włączenie pinów wejścia/wyjścia pinMode(BUTTON_PIN, INPUT); pinMode (SPEAKER_PIN, WYJŚCIE); // zainicjuj funkcję random(), aby otrzymać inną kolejność randomSeed(analogRead(0)); }
pętla:
W naszej funkcji loop() będziemy stale sprawdzać, czy przycisk jest wciśnięty (cyfrowy pin 2 jest wysoki). Jeśli pin jest wysoki, czekamy 50 ms i ponownie sprawdzamy, czy nadal jest wysoki. Gwarantuje to, że przycisk jest wciśnięty i nie było zabłąkanych szumów na pinie wejścia cyfrowego powodującego fałszywie dodatni wynik.
Po potwierdzeniu, że przycisk został wciśnięty, używamy naszego generatora liczb losowych, aby wybrać jeden z 5 utworów za pomocą instrukcji switch. Dane tych utworów są przechowywane w „songs.h”, a informacje o wysokości dźwięku są przechowywane w „pitches.h”. Po wybraniu utworu przekazujemy te informacje do funkcji play_song().
/* główna funkcja pętli while */
void loop() { // sprawdź, czy przycisk jest wciśnięty if (digitalRead(BUTTON_PIN) == HIGH) { //opóźnij 50 ms, aby upewnić się, że nadal jest wciśnięty // pozwala uniknąć zabłąkanych błędnych odczytów delay(50); if(digitalRead(BUTTON_PIN) == HIGH) { // losowo wybierz utwór int song_choice = random(5); // wybierz piosenkę do odtworzenia switch (song_choice) { case 0: play_song(strzyżenieDługość, strzyżenie, strzyżenieCzas trwania, strzyżenie Tempo); przerwa; przypadek 1: play_song(marioLength, mario, marioDurations, marioTempo); przerwa; przypadek 2: play_song(miiLength, mii, miiDurations, miiTempo); przerwa; przypadek 3: play_song(hpLength, hp, hpDurations, hpTempo); przerwa; przypadek 4: play_song(takeonmeLength, takeonme, takeonmeDurations, takeonmeTempo); przerwa; domyślnie: play_song(miiLength, mii, miiDurations, miiTempo); przerwa; } } } }
Graj piosenkę:
play_song() przyjmuje 4 argumenty: całkowitą liczbę nut w utworze, całkowitą tablicę wysokości tonów w melodii, całkowitą tablicę czasu trwania i całkowitą szybkość dla tej konkretnej piosenki. Musisz określić każdy z nich dla każdego utworu, który chcesz odtworzyć. Więcej informacji na temat korzystania z funkcji tonów Arduino można znaleźć w tym samouczku: https://www.arduino.cc/en/Tutorial/ToneMelody. Dodałem kilka funkcji do tego samouczka dla notatek z kropkami. Jeśli wartość w tablicy czasu trwania nuty jest ujemna, oznacza to, że jest to nuta z kropką (długość jest 1,5 raza większa).
/* odtwarza piosenkę */
void play_song(int num_notes, int melody, int noteDurations, int tempo) { // przejdź i zagraj wszystkie nuty for (int i=0; i 0) { duration = tempo / noteDurations; } // jeśli jest to liczba ujemna, oznacza nutę z kropką // zwiększa czas trwania o połowę dla nut z kropkami else if (noteDurations < 0) { duration = tempo / abs(noteDurations) * 1.5; } ton(SPEAKER_PIN, melodia, czas trwania); // aby odróżnić nuty, ustaw minimalny czas między nimi. // czas trwania nuty + 30% wydaje się działać dobrze: int pauseBetweenNotes = czas trwania * 1.30; opóźnienie(pauzaMiędzyNotatkami); // zatrzymaj odtwarzanie dźwięku: noTone(SPEAKER_PIN); } }
Przykładowe utwory.h:
Poniżej znajduje się próbka jednej z piosenek w "songs.h". Notatki są makrami zdefiniowanymi w "pitches.h". Liczby odpowiadają częstotliwościom nut w hercach (Hz). Czas trwania nut jest zdefiniowany jako: 1 = cała nuta, 2 = półnuta, 4 = ćwierćnuta, 8 = ósemka, -4 = ćwierćnuta z kropką, itd. Długość to całkowita liczba nut w utworze. Tempo jest dzielnikiem szybkości utworu (wyższa liczba oznacza wolniejsze tempo). Będziesz musiał bawić się tym numerem, aż uzyskasz tempo, które lubisz.
/* Harry Potter */
int hp = { NOTE_D4, NOTE_G4, NOTE_AS4, NOTE_A4, NOTE_G4, NOTE_D5, NOTE_C5, NOTE_A4, NOTE_G4, NOTE_AS4, NOTE_A4, NOTE_F4, NOTE_GS4, NOTE_D4 }; int hpDurations = { 4, -4, 8, 4, 2, 4, -2, -2, -4, 8, 4, 2, 4, 1 }; int hpLength = 14; int hpTempo = 1050;
Krok 3: Poprawki
Dodaj więcej piosenek! Postępuj zgodnie z formatem pokazanym w "songs.h" i skorzystaj z samouczka, aby uzyskać pomoc: https://www.arduino.cc/en/Tutorial/ToneMelody. Dla każdej nowej piosenki, którą dodasz, pamiętaj, aby dodać nową wielkość liter do instrukcji switch i zwiększyć maksymalną liczbę, jaką może wygenerować funkcja random(). Udanego kodowania!
Krok 4: Więcej projektów
Więcej projektów znajdziesz na moich stronach:
- https://dargen.io/
- https://github.com/mjdargen
- https://www.instructables.com/member/mjdargen/
Zalecana:
Jak zrobić bezdotykowy dzwonek do drzwi, wykrywanie temperatury ciała, GY-906, 433 MHz za pomocą Arduino: 3 kroki
![Jak zrobić bezdotykowy dzwonek do drzwi, wykrywanie temperatury ciała, GY-906, 433 MHz za pomocą Arduino: 3 kroki Jak zrobić bezdotykowy dzwonek do drzwi, wykrywanie temperatury ciała, GY-906, 433 MHz za pomocą Arduino: 3 kroki](https://i.howwhatproduce.com/images/001/image-194-12-j.webp)
Jak zrobić bezdotykowy dzwonek do drzwi, wykrywanie temperatury ciała, GY-906, 433 MHz za pomocą Arduino: Dzisiaj zrobimy bezdotykowy dzwonek do drzwi, który wykryje temperaturę ciała. W obecnej sytuacji bardzo ważne jest, aby wiedzieć, czy temperatura ciała kogoś jest wyższa niż normalnie, gdy ktoś się wali. Ten projekt pokaże czerwone światło, jeśli wykryje jakikolwiek
Dzwonek z nadrukiem 3D na pedał: 3 kroki
![Dzwonek z nadrukiem 3D na pedał: 3 kroki Dzwonek z nadrukiem 3D na pedał: 3 kroki](https://i.howwhatproduce.com/images/001/image-1242-39-j.webp)
Dzwonek do drzwi sterowany pedałem z nadrukiem 3D: Sam złożyłem wiele zamówień w Amazon w ciągu ostatnich kilku miesięcy. Dostawcy realizujący wszystkie te zamówienia są narażeni na ciągłe ryzyko, ponieważ dzwonią setkami dzwonków i pukają do niezliczonych drzwi w ciągu jednego tygodnia. Aby w tym pomóc, mam
Zmień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z IFTTT: 8 kroków
![Zmień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z IFTTT: 8 kroków Zmień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z IFTTT: 8 kroków](https://i.howwhatproduce.com/images/003/image-6429-9-j.webp)
Zmień swój przewodowy dzwonek w inteligentny dzwonek z IFTTT: Dzwonek WiFi zamienia istniejący przewodowy dzwonek w inteligentny dzwonek. https://www.fireflyelectronix.com/product/wifidoor
Zamień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z asystentem domowym: 6 kroków
![Zamień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z asystentem domowym: 6 kroków Zamień swój przewodowy dzwonek do drzwi w inteligentny dzwonek z asystentem domowym: 6 kroków](https://i.howwhatproduce.com/images/005/image-13963-22-j.webp)
Zmień swój przewodowy dzwonek w inteligentny dzwonek z Home Assistant: Zmień swój przewodowy dzwonek w inteligentny dzwonek. Otrzymuj powiadomienie na telefon lub sparuj z istniejącą kamerą przy drzwiach wejściowych, aby otrzymać powiadomienie o zdjęciu lub wideo za każdym razem, gdy ktoś zadzwoni do Twojego dzwonka.Więcej informacji na: fireflyelectronix.com/pro
Dzwonek do drzwi Arduino z miernikiem VU: 4 kroki (ze zdjęciami)
![Dzwonek do drzwi Arduino z miernikiem VU: 4 kroki (ze zdjęciami) Dzwonek do drzwi Arduino z miernikiem VU: 4 kroki (ze zdjęciami)](https://i.howwhatproduce.com/images/001/image-2034-65-j.webp)
Dzwonek do drzwi Arduino z miernikiem VU: Podstawowa idea jest taka - po naciśnięciu przycisku dzwonka do drzwi diody zaczną rytmicznie świecić wraz z dźwiękiem brzęczyka, po chwili dwa zdarzenia automatycznie się zatrzymają. Diody LED mogą znajdować się na zewnątrz drzwi, aby bawić gościa lub w środku. W tym ja