Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Podłącz obwód
- Krok 2: Przygotowanie części brzęczyka
- Krok 3: Przygotowanie panelu LED
- Krok 4: Przygotowanie przełącznika (właściwie przycisk)
- Krok 5: Przygotowanie taśmy LED
- Krok 6: Przygotowanie czujnika pojemności
- Krok 7: Przygotowanie zasilacza
- Krok 8: Podłączanie ich do Arduino
- Krok 9: Obudowa
- Krok 10: Czas programowania
- Krok 11: Mechanizm naprawczy
- Krok 12: Jak korzystać ze wszystkich funkcji
- Krok 13: Wniosek
- Krok 14: Aktualizacja: po tygodniu użytkowania
Wideo: Budzik binarny Arduino DIY: 14 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
To znowu klasyczny zegar binarny! Ale tym razem z jeszcze większą funkcjonalnością! W tej instrukcji pokażę, jak zbudować binarny budzik z Arduino, który może pokazywać nie tylko godzinę, ale także datę, miesiąc, nawet z funkcjami timera i alarmu, które mogą być również używane jako lampka nocna! Bez zbędnych ceregieli zacznijmy!
Uwaga: Ten projekt nie wykorzystuje modułu RTC, więc dokładność zależy od użytej płyty. Dołączyłem mechanizm korygujący, który skoryguje dryf czasu w określonym przedziale czasu, ale będziesz musiał poeksperymentować, aby znaleźć prawidłową wartość dla tego okresu (więcej na ten temat poniżej), a nawet z mechanizmem korygującym nadal będzie dryfował przez długi czas (w porównaniu z brakiem). Zainteresowanych zapraszam do wdrożenia modułu RTC w tym projekcie
Kieszonkowe dzieci
Dioda LED 5mm (dowolnego koloru, użyłem 13 białych diod LED z jedną diodą RGB jako wskaźnikiem) --- 14 szt
Arduino Nano (inne mogą działać) --- 1 szt
Mikroprzełącznik --- 1 szt
Mały kawałek folii aluminiowej
Płyta montażowa (do obudowy, ale możesz zaprojektować własną)
Kawałek białego papieru (lub innego koloru)
Trochę folii z tworzywa sztucznego (tej używanej jako okładka książki)
Wiązka przewodów
Brzęczyk --- 1 szt
Tranzystor NPN --- 1 szt
Rezystory 6k8 --- 14 szt, 500R --- 1 szt, 20R (10Rx2) --- 1 szt, 4k7 --- 1 szt
Zasilanie do projektu (użyłem baterii li-on)
Taśma LED 5050 i przełącznik suwakowy (opcja)
Krok 1: Podłącz obwód
Podzielę ten krok na:
1) część brzęczyka
2) Panel LED
3) Przełącznik (przycisk)
4) pasek LED
5) czujnik pojemności;
6) Zasilanie
7) Połącz je wszystkie z Arduino
W większości przypadków jest to po prostu krok „podążaj za schematem”. Więc sprawdź powyższy schemat lub nawet pobierz i wydrukuj!
Krok 2: Przygotowanie części brzęczyka
Jeśli używałeś wcześniej buzzera z Arduino, będziesz wiedział, że jeśli podłączymy go bezpośrednio do Arduino, nie będzie wystarczająco głośno. Więc potrzebujemy wzmacniacza. Do skonstruowania wzmacniacza potrzebujemy tranzystora NPN (w zasadzie każdy NPN będzie działał, użyłem S9013, bo dostałem go ze starego projektu) i rezystora ograniczającego prąd. Aby rozpocząć, najpierw zidentyfikuj kolektor, emiter i bazę tranzystora. Trochę googlowania arkusza danych będzie w tym celu działać. Następnie przylutuj kolektor tranzystora do ujemnego zacisku brzęczyka. Na dodatnim zacisku brzęczyka po prostu przylutowujemy do niego kawałek drutu, abyśmy mogli go później przylutować do naszego Arduino. Następnie przylutuj rezystor 500R (lub o podobnej wartości rezystora) do bazy tranzystora i od rezystora przylutuj kolejny kawałek drutu do wykorzystania w przyszłości. Na koniec przylutuj szeregowo dwa rezystory 10R do emitera tranzystora i podłącz drugi przewód z rezystorów.
Naprawdę, odnieś się do schematu.
p/s: W chwili pisania tego nie wiem jak dobrać rezystor do tranzystora. Użyta przeze mnie wartość jest dobierana empirycznie.
Krok 3: Przygotowanie panelu LED
Podłącz odpowiednio diody LED i rezystor do płytki prototypowej i przylutuj. Otóż to. Postępuj zgodnie ze schematem. Jeśli interesuje Cię zastosowany odstęp, 3 otwory na każdą kolumnę i 2 otwory na każdy rząd (patrz rysunek). A kontrolka LED? Podłączyłem go losowo.
Po przylutowaniu diod i rezystora do płytki połącz ze sobą wszystkie dodatnie zaciski diod. Następnie przylutuj przewody jeden po drugim do każdego z rezystorów na ujemnych zaciskach diod LED, abyśmy mogli później przylutować je do Arduino.
UWAGA: Ten krok może Cię pomylić. Pamiętaj, zamiast łączyć wszystkie masy razem, łączymy wszystkie zaciski dodatnie razem, a zacisk ujemny do pojedynczego pinu w Arduino. Dlatego używamy pinu Arduino GPIO jako uziemienia, a nie Vcc. W przypadku, gdy przypadkowo połączysz go z powrotem, nie martw się. Możesz zmienić wszystkie wartości HIGH na LOW i LOW na HIGH w funkcji ledcontrol.
Krok 4: Przygotowanie przełącznika (właściwie przycisk)
Do przełącznika (nazwę go przełącznikiem, bo użyłem mikroprzełącznika, ale wiesz, że to przycisk) potrzebujemy rezystora 4k7 pull-down i oczywiście samego przełącznika. Ach, nie zapomnij przygotować przewodów. Zacznij od przylutowania rezystora i kawałka drutu do masy (COM) mikroprzełącznika. Następnie przylutuj kolejny kawałek drutu do normalnie otwartego (NO) mikroprzełącznika. Na koniec podłącz kolejny przewód do rezystora. Zabezpiecz go gorącym klejem.
Kącik wiedzy: Dlaczego potrzebujemy rezystora pull-down?
„Jeśli odłączysz pin I/O cyfrowe od wszystkiego, dioda LED może nieregularnie migać. Dzieje się tak dlatego, że wejście jest „pływające” – to znaczy, że losowo zwróci albo WYSOKI, albo NISKI. Dlatego potrzebujesz podciągania lub rezystor pull-down w obwodzie. -- Źródło: strona Arduino
Krok 5: Przygotowanie taśmy LED
Taśma LED jest przeznaczona do lampki nocnej, która jest opcjonalna. Wystarczy połączyć szeregowo pasek LED i przełącznik suwakowy, nic specjalnego.
Krok 6: Przygotowanie czujnika pojemności
Ok patrz na zdjęcie. Zasadniczo po prostu przymocujemy przewód do małego kawałka folii aluminiowej (ponieważ folii aluminiowej nie można lutować), a następnie przykleimy go na małym kawałku płyty montażowej. Uprzejmie przypomnienie, upewnij się, że folia aluminiowa nie została całkowicie zaklejona taśmą. Pozostaw część odsłoniętą do bezpośredniego kontaktu.
Krok 7: Przygotowanie zasilacza
Ponieważ jako zasilacz używałem akumulatora litowo-jonowego, potrzebuję modułu TP4056 do ładowania i ochrony oraz konwertera doładowania do konwersji napięcia na 9v. Jeśli zdecydujesz się użyć adaptera ściennego 9V, możesz potrzebować gniazda DC lub po prostu podłączyć go bezpośrednio. Zauważ, że wartość rezystora dla wzmacniacza jest zaprojektowana dla 9V i jeśli chcesz użyć innego napięcia, być może będziesz musiał zmienić rezystor.
Krok 8: Podłączanie ich do Arduino
Postępuj zgodnie ze schematem! Postępuj zgodnie ze schematem! Postępuj zgodnie ze schematem!
Nie podłączaj złego pinu, bo rzeczy będą dziwne.
Krok 9: Obudowa
Wymiar mojego projektu to 6,5 cm * 6,5 cm * 8 cm, więc jest trochę nieporęczny. Składa się z przedniej szyby na wyświetlacz LED i górnego okienka na lampkę nocną. Dla mojego projektu, patrz zdjęcia.
Krok 10: Czas programowania
Pobierz mój szkic poniżej i wgraj do swojego Arduino. Jeśli nie wiesz, jak to zrobić, nie zawracaj sobie głowy tym projektem! Nie żartuję, oto dobry samouczek na ten temat: Prześlij szkic do arduino
Następnie otwórz monitor szeregowy i powinieneś zobaczyć, jak wyświetla bieżący czas. Aby ustawić czas, oto jak to zrobić.
Aby ustawić godzinę: h, XX -- gdzie xx to aktualna godzina
Aby ustawić minuty: min, XX -- xx to bieżąca minuta
Aby ustawić sekundę: s, XX
Aby ustawić datę: d, XX
Aby ustawić miesiąc: pon, XX
Kiedy powyższy komentarz zostanie wykonany, powinien zwrócić ci właśnie ustawioną wartość. (Na przykład, gdy ustawisz godzinę za pomocą h, 15, powinno zwrócić godzinę: 15 w monitorze szeregowym.
W przypadku czujnika pojemności może być konieczna kalibracja, zanim zacznie działać. Aby to zrobić, naciśnij dwukrotnie mikroprzełącznik i spójrz na monitor szeregowy. Powinno to wypisać kilka liczb. Teraz połóż palec na czujniku pojemności i zobacz, zwróć uwagę na zakres liczby. Następnie zmodyfikuj zmienną „captrigger”. Załóżmy, że po naciśnięciu otrzymujesz 20-30, a następnie ustawiasz wyzwalacz na 20.
Szkic korzysta z biblioteki ADCTouch, upewnij się, że go zainstalowałeś.
Krok 11: Mechanizm naprawczy
Okres czasu dla mechanizmu korekcyjnego w moim kodzie jest ustawiony na taki, który jest dla mnie właściwy. Jeśli czas nadal nie jest dokładny, należy zmienić wartość zmiennej „corrdur”
W najnowszej aktualizacji corrdur jest teraz domyślnie ustawiony na 0.
Wartość corrdur oznacza, ile milisekund zajmuje spowolnienie jednej sekundy
Aby poznać wartość korrduru, użyj wzoru:
2000/(y-x)/x)
gdzie x=rzeczywisty czas, jaki upłynął, a y=czas trwania zegara, oba w sekundach
Aby znaleźć wartość x i y, musisz przeprowadzić mały eksperyment.
Ustaw czas zegara na aktualny czas i zapisz czas początkowy (rzeczywisty czas początkowy i czas początkowy zegara powinny być takie same). Po chwili (kilka godzin) zanotuj ostateczną rzeczywistą godzinę i zegar czasu końcowego.
x=rzeczywisty czas końcowy-czas początkowy i y=czas końcowy-czas początkowy-zegar
Następnie zmień wartość corrdur w kodzie i prześlij ponownie do Arduino.
Następnie powtórz test i tym razem formuła zmieniła się na:
2000/((2/z)+(y-x/x))
Gdzie x i y to to samo, co poprzednio, podczas gdy z jest bieżącą wartością corrdur.
Prześlij ponownie i wykonuj test w kółko, aż będzie wystarczająco dokładny.
W przypadku, gdy twój zegar nadal przyspiesza, nawet jeśli corrdur jest ustawiony na 0 (oznacza brak mechanizmu korekcyjnego), musisz zmienić sekund++ na sekundę -- w części kodu mechanizmu korekcyjnego (ja to skomentowałem), ustaw corrdur na 0, następnie znajdź nie. milisekund, aby przyspieszyć jedną sekundę.
Krok 12: Jak korzystać ze wszystkich funkcji
Możesz zmienić tryb, naciskając mikroprzełącznik.
W pierwszym trybie po prostu wyświetla czas. Jeśli kontrolka miga 1 raz na sekundę, alarm jest wyłączony. Jeśli 2 razy na sekundę, alarm jest włączony. Możesz włączyć drzemkę alarmu na 10 minut w pierwszym trybie, naciskając czujnik pojemności.
W drugim trybie wyświetla datę. Naciśnięcie czujnika pojemności nic nie robi.
W trzecim trybie możesz ustawić timer. Naciśnięcie czujnika pojemności włączy timer i powinieneś zobaczyć, że kontrolka zacznie migać. Czujnik pojemności służy również do ustawiania czasu timera. Zakres timera wynosi od 1 minuty do 59 minut.
W czwartym trybie możesz ustawić godzinę alarmu za pomocą czujnika pojemności;
W piątym trybie można ustawić minutę alarmu za pomocą czujnika pojemności.
W szóstym trybie naciśnięcie czujnika pojemności resetuje minuty na 30, a sekundy na 0 bez zmiany godziny. Oznacza to, że dopóki twój zegar nie dryfuje przez 30 minut, możesz go ponownie skalibrować za pomocą tego trybu.
Siódmy tryb to tryb nic nie rób w przypadku, gdy czujnik pojemności zepsuje się podczas ładowania.
Och, aby odrzucić alarm, wystarczy nacisnąć mikroprzełącznik. (NAJNOWSZA AKTUALIZACJA DOTYCZĄCA DRZEMKI ALARMU)
A co powiesz na odczytanie zegara? To jest łatwe! Czytanie zegara binarnego -- Wikihow Na początku możesz czuć się dziwnie, ale przyzwyczaisz się do tego!
Krok 13: Wniosek
Dlaczego zacząłem ten projekt. Początkowo to dlatego, że mam stary zegarek cyfrowy, który leży w pobliżu i chcę go zamienić w budzik. Niestety stary zegarek okazał się zepsuty. Więc pomyślałem, dlaczego nie zbudować jednego za pomocą Arduino? Przy odrobinie wyszukiwania w Google znalazłem ten projekt zegara binarnego bez RTC na instruktażu Cello62. Jednak nie ma funkcji budzika, której chcę, więc biorę kod i sam go modyfikuję. I narodził się projekt. Co więcej, ostatnio widziałem konkurs z zegarem na instruktażu, co dało mi jeszcze większą motywację do tego. W każdym razie to wciąż mój pierwszy projekt wykorzystujący Arduino, więc kilka możliwych ulepszeń.
Przyszła poprawa:
1) Użyj RTC
2) Ustaw alarm, czas lub minutnik bezprzewodowo!
3) Niezależnie od funkcji, o której myślę
Krok 14: Aktualizacja: po tygodniu użytkowania
Oprócz oczywistego problemu - dryfu czasu, następnym powiedziałbym, że jest zużycie energii. Najpierw podnoszę napięcie do 9v, które następnie będzie obniżane przez regulator liniowy w Arduino. Regulator liniowy jest bardzo nieefektywny. Zegar trwa tylko JEDEN DZIEŃ. To znaczy, że muszę go ładować codziennie. To nie jest największa sprawa, dopóki nie zdasz sobie sprawy, że cały system jest wydajny tylko w około 50%. Biorąc pod uwagę, że moja bateria ma 2000 mAh, byłbym w stanie obliczyć zużycie energii każdego dnia.
Zmarnowana moc=(7.4Wh*10%)+(7.4Wh*90%*50%)=4.07Wh dziennie
Czyli 1,486 kWh rocznie! Którego można użyć do zagotowania 283 g wody (od 25 C do 100 C)? Ale tak czy inaczej zamierzam poprawić wydajność zegara. Sposobem na to jest w ogóle nie używać regulatora liniowego. Oznacza to, że musimy dostosować konwerter doładowania, aby wyprowadzał napięcie 5 V bezpośrednio na pin 5 V w Arduino. Następnie, aby jeszcze bardziej zminimalizować marnowanie energii, muszę usunąć dwie diody LED na płycie (pin13 i zasilanie), ponieważ będą one marnować 0,95 Wh dziennie. Niestety w lutowaniu SMD jestem totalnie nieznośny, więc jedynym sposobem, aby to zrobić, jest przecięcie szyny na płytce. Po tym muszę wymontować rezystor emiterowy na brzęczyku i lampce nocnej (taśma LED nie działa przy 5V). Ale czy to oznacza, że musisz zrezygnować z tej niesamowitej funkcji? Nie! Masz tutaj dwie możliwości: użyj zwykłej diody LED 5mm lub użyj taśmy LED 5V. Ale dla mnie byłem już zmęczony robieniem tego projektu przez cały zeszły tydzień, więc postanowiłem zrezygnować z tej funkcji. Jednak pierwotnie używałem przełącznika do funkcji światła do włączania lub wyłączania panelu zegara w celu dalszego oszczędzania energii, ale skończyło się na tym, że dioda LED miga, gdy ją wyłączam. Bug stał się funkcją? Nie wiem (Ktoś wie, proszę powiedz mi poniżej).
Pod koniec modyfikacji zegar trwa już ponad 2 dni!
Następnie mam mniej poważny problem z zegarem. Podczas ładowania czujnik pojemności wariował, więc dodaję kolejny tryb, który zupełnie nic nie robi.
Jeśli chodzi o dryf czasu, ponieważ bardzo niewygodne jest codzienne podłączanie komputera, aby go zresetować, dodałem inny tryb, który ustawia minuty na 30, a sekundy na 0. Oznacza to, że możesz go zresetować o pół do godziny!
Zalecana:
Inteligentny budzik: inteligentny budzik z Raspberry Pi: 10 kroków (ze zdjęciami)
Inteligentny budzik: inteligentny budzik z Raspberry Pi: Czy kiedykolwiek chciałeś mieć inteligentny zegar? Jeśli tak, to jest to rozwiązanie dla Ciebie! Zrobiłem Inteligentny Budzik, jest to zegar, w którym możesz zmienić godzinę alarmu zgodnie ze stroną internetową. Gdy alarm się włączy, rozlegnie się dźwięk (brzęczyk) i 2 światła będą
3-cyfrowy licznik binarny Arduino: 8 kroków (ze zdjęciami)
3-cyfrowy licznik binarny Arduino: Ten projekt to licznik 1-999, wykorzystujący 4 diody LED do każdej cyfry, podczas gdy jego pin kontrolny jest anodą, pozostawiając wolne katody do połączenia z odpowiednim rzędem diod LED i rezystorem między tym a pinem Arduino . Wspólne anody będą
Budzik DIY Ulica Sezamkowa (z alarmem przeciwpożarowym!): 6 kroków (ze zdjęciami)
Budzik DIY Ulica Sezamkowa (z alarmem przeciwpożarowym!): Cześć wszystkim! Ten projekt jest moim pierwszym. Ponieważ zbliżały się pierwsze urodziny mojej kuzynki, chciałam zrobić jej specjalny prezent. Słyszałem od wujka i ciotki, że jest na Ulicy Sezamkowej, więc postanowiłem z rodzeństwem zrobić budzik na
Zegar binarny Arduino - wydruk 3D: 5 kroków (ze zdjęciami)
Zegar binarny Arduino - druk 3D: Od jakiegoś czasu przyglądam się zegarom binarnym na moim biurku, jednak są one dość drogie i / lub nie mają ogromnej liczby funkcji. Więc zdecydowałem, że zamiast tego zrobię jeden. Jeden punkt do rozważenia przy tworzeniu zegara, Arduino / Atmega328
Budzik binarny oparty na Arduino: 13 kroków (ze zdjęciami)
Budzik binarny oparty na Arduino: Hej, dzisiaj chciałbym pokazać, jak zbudować jeden z moich najnowszych projektów, mój binarny budzik. W Internecie jest mnóstwo różnych zegarów binarnych, ale w rzeczywistości może to być pierwszy, wykonany z paska kolorowych adresowalnych diod LED