Spisu treści:
Wideo: Zegar czasu rzeczywistego otoczenia: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Cel
Zrobiłem ten zegar, ponieważ mam w pobliżu adresowalną taśmę LED i chcę go użyć. Potem zobaczyłem, że w moim pokoju nie ma dobrego Zegara, który pasowałby do ścian. Postanowiłem więc zrobić Zegar, który może zmieniać kolory w zależności od nastroju użytkownika lub koloru ściany.
Krok 1: Film z YouTube
Obejrzyj ten film na YouTube, aby uzyskać pełne instrukcje
Krok 2: Procedura
Najpierw wziąłem płytę ze sklejki o wymiarach 24 x 15 cali.
Pokrój taśmę LED na kawałki i wklej je na płytkę Następnie po przylutowaniu zakrywam całość czarnym papierem wykresowym Następnie wklejam na niego arkusz termowęgla i przecinam termowęgiel ostrym nożem w kształcie 4 wyświetlaczy siedmiosegmentowych wraz z dwa otwory w środku. Następnie przygotowałem mój obwód za pomocą schematu obwodu podanego poniżej
i wkleiłem to wszystko za tablicą. Zamówiłem również niestandardową płytkę drukowaną na to samo z https://jlcpcb.com, która zapewnia najlepsze prototypy pcb za najniższą cenę z Chin i wysyłamy na cały świat szybko i bezpiecznie. po przylutowaniu wszystkich elementów do płyty wyjąłem płytkę stykową i naprawiłem wszystko za płytą i zakryłem przednią część cienką, półprzezroczystą kalką. Zegar wygląda niesamowicie i zwiększa piękno ściany. kolory dostosowywania sprawiają, że idealnie nadaje się do każdej ściany.
Jeśli podoba Ci się ten projekt, uprzejmie zasubskrybuj na youtube lub odwiedź naszą stronę https://robocircuits.com Dziękujemy za przeczytanie!
Krok 3: Kod
/* Kodeks został zaprojektowany przez RoboCircuits
* Odwiedź naszą stronę internetową https://robocircuits.com, aby uzyskać pomoc dotyczącą tego kodu * Ten kod używa biblioteki DS3231.h, pobierz go z https://robocircuits.com * Aby uzyskać pełny samouczek, Obejrzyj wideo na naszym kanale YouTube https://youtube. com/obwody robota */
#włącz #włącz
int i=0, j=0, k=150;
// Uruchom DS3231 używając interfejsu sprzętowego DS3231 rtc(SDA, SCL);
#ifdef _AVR_ #include #endif
// Który pin w Arduino jest podłączony do NeoPixels? // Na Trinket lub Gemma sugerujemy zmianę na 1 #define PIN 6
// Ile NeoPixeli jest podłączonych do Arduino? #define NUMPIXELS 45
// Kiedy konfigurujemy bibliotekę NeoPixel, mówimy jej, ile pikseli i którego pinu użyć do wysyłania sygnałów. // Zauważ, że w przypadku starszych pasków NeoPixel może być konieczna zmiana trzeciego parametru - zobacz przykład strandtest //, aby uzyskać więcej informacji o możliwych wartościach. Adafruit_NeoPixel piksele = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int opóźnienie = 500; // opóźnienie o pół sekundy
void setup() { // To jest dla Trinket 5V 16MHz, możesz usunąć te trzy linie, jeśli nie używasz Trinket #if zdefiniowany (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // Koniec specjalnego kodu drobiazgu
piksele.początek(); // Inicjuje bibliotekę NeoPixel. // Konfiguracja połączenia szeregowego Serial.begin(115200); // Zainicjuj obiekt rtc rtc.begin(); // Poniższe wiersze można odkomentować, aby ustawić datę i godzinę //rtc.setDOW(ŚRODA); // Ustaw dzień tygodnia na NIEDZIELĘ //rtc.setTime(12, 0, 0); // Ustaw czas na 12:00:00 (format 24-godzinny) //rtc.setDate(1, 1, 2014); // Ustaw datę na 1 stycznia 2014 }
void loop() { if(digitalRead(2)==HIGH) { int a=analogRead(A0); int b= odczyt analogowy (A1); int c= odczyt analogowy (A2); i=mapa(a, 0, 1025, 0, 150); // Zielony kolor j=map(b, 0, 1025, 0, 150); // Kolor niebieski k=map(c, 0, 1025, 0, 150); // kolor czerwony } else { i= 0; j= 0; k= 150; }
// Kod podświetlenia for(int x=29;x<=45;x++) { piksele.setPixelColor(x, piksele. Color(i, j, k)); piksele.pokaż(); }
// Pobieranie czasu rzeczywistego z rtc String x=rtc.getTimeStr(); // Wyślij czas Serial.println(rtc.getTimeStr()); int godzina1= x.charAt(0); int godzina2= x.charAt(1); int min1= x.charAt(3); int min2= x.charAt(4); godzina1=godzina1-48; godzina2=godzina2-48; min1=min1-48; min2=min2-48;
// Wyświetlanie czasu na Zegar switch(hour1) { //case 0: zero(0); //przerwa; przypadek 1: jeden(0); przerwa; przypadek 2: dwa(0); przerwa; domyślnie: null(0); przerwa; } switch(hour2) { case 0: zero(7); przerwa; przypadek 1: jeden(7); przerwa; przypadek 2: dwa(7); przerwa; przypadek 3: trzy(7); przerwa; przypadek 4: cztery(7); przerwa; przypadek 5: pięć(7); przerwa; przypadek 6: sześć(7); przerwa; przypadek 7: siedem(7); przerwa; przypadek 8: osiem(7); przerwa; przypadek 9: dziewięć(7); przerwa; domyślnie: null(7); przerwa; } switch(min1) { przypadek 0: zero(15); przerwa; przypadek 1: jeden(15); przerwa; przypadek 2: dwa(15); przerwa; przypadek 3: trzy(15); przerwa; przypadek 4: cztery(15); przerwa; przypadek 5: pięć(15); przerwa; domyślnie: null(15); przerwa; } switch(min2) { przypadek 0: zero(22); przerwa; przypadek 1: jeden(22); przerwa; przypadek 2: dwa(22); przerwa; przypadek 3: trzy(22); przerwa; przypadek 4: cztery(22); przerwa; przypadek 5: pięć(22); przerwa; przypadek 6: sześć(22); przerwa; przypadek 7: siedem(22); przerwa; przypadek 8: osiem(22); przerwa; przypadek 9: dziewięć(22); przerwa; domyślnie: null(22); przerwa; } piksele.setPixelColor(14, piksele. Color(i, j, k)); piksele.pokaż(); opóźnienie(250); piksele.setPixelColor(14, piksele. Color(0, 0, 0)); piksele.pokaż(); opóźnienie(250); }
void zero(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void one(int a) { piksele.setPixelColor(a+0, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Kolor(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void two(int a) { piksele.setPixelColor(a+0, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Kolor(0, 0, 0)); piksele.pokaż(); } void three(int a) { piksele.setPixelColor(a+0, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void four(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Kolor(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void five(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void six(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void seven(int a) { piksele.setPixelColor(a+0, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Kolor(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void eight(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void nine(int a) { piksele.setPixelColor(a+0, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Color(i, j, k)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Color(i, j, k)); piksele.pokaż(); } void null(int a) { piksele.setPixelColor(a+0, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+1, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+2, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+3, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+4, piksele. Color(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+5, piksele. Kolor(0, 0, 0)); piksele.pokaż(); piksele.setPixelColor(a+6, piksele. Kolor(0, 0, 0)); piksele.pokaż(); }
Krok 4: Dziękuję
odwiedź
Zalecana:
Zegar czasu rzeczywistego przy użyciu AT89s52: 3 kroki
Zegar czasu rzeczywistego używający AT89s52: WITAJCIE Z POWROTEM, Tu shubham Trivedi. Dzisiaj mam zamiar zaprojektować zegar czasu rzeczywistego używając mikrokontrolera At89s52. Sercem tego projektu jest mikrokontroler AT89S52. DS1307 IC jest używany jako RTC. Ten układ scalony DS1307 wymagał interfejsu I2C, ale 89
Zegar czasu rzeczywistego z Arduino: 3 kroki
Zegar czasu rzeczywistego z Arduino: W tym projekcie wykonamy zegar za pomocą modułu Arduino i RTC. Jak wiemy Arduino nie może wyświetlać aktualnego czasu, dlatego użyjemy modułu RTC, aby wyświetlić właściwy czas na wyświetlaczu LCD. Przeczytaj uważnie wszystkie kroki, pomoże ci to
Dokładne, szybkie i automatyczne ustawianie DS3231 RTC (zegar czasu rzeczywistego) za pomocą języka Java (+-1 s): 3 kroki
Dokładne, szybkie i automatyczne ustawianie zegara czasu rzeczywistego DS3231 (zegar czasu rzeczywistego) za pomocą języka Java (+-1 s): Ta instrukcja pokaże, jak ustawić czas w zegarze czasu rzeczywistego DS3231 za pomocą Arduino i małej aplikacji Java, która używa połączenie szeregowe Arduino.Podstawowa logika tego programu:1. Arduino wysyła żądanie szeregowe
DS1307 Zegar czasu rzeczywistego RTC z Arduino: 4 kroki
DS1307 Zegar czasu rzeczywistego RTC z Arduino: W tym samouczku dowiemy się o zegarze czasu rzeczywistego (RTC) oraz o tym, jak Arduino i amp; Układ scalony zegara czasu rzeczywistego DS1307 jest złożony jako urządzenie do pomiaru czasu.Zegar czasu rzeczywistego (RTC) służy do monitorowania czasu i utrzymywania kalendarza.W celu korzystania z zegara czasu rzeczywistego
Tworzenie zegara za pomocą M5stick C przy użyciu Arduino IDE - Zegar czasu rzeczywistego RTC z M5stack M5stick-C: 4 kroki
Tworzenie zegara za pomocą M5stick C przy użyciu Arduino IDE | Zegar czasu rzeczywistego RTC z M5stack M5stick-C: Cześć chłopaki, w tej instrukcji dowiemy się, jak zrobić zegar za pomocą płytki rozwojowej m5stick-C m5stack przy użyciu Arduino IDE. Tak więc m5stick wyświetli datę, godzinę i amp; tydzień miesiąca na wyświetlaczu