Cuprins:
- Pasul 1: Adunarea pieselor și prelucrarea lemnului
- Pasul 2: cercuri acrilice
- Pasul 3: lipire
- Pasul 4: Codul
- Pasul 5: Ulei danez
Video: Ceas Ish: 5 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
De multe ori îmi găsesc singuri cumpărând lucruri cu care habar n-am cu ce voi face. Acest proiect este rezultatul achiziționării unui inel care are 12 LED-uri WS2812b aprinse. Nu aveam planuri pentru asta, dar părea grozav online, așa că am înfipt unul în coșul meu, m-am jucat o vreme când a sosit și apoi am uitat totul.
O vreme mai târziu mă gândeam să fac un ceas și mi-am amintit că stătea acolo, fără să facă nimic. Mă gândeam să cumpăr un al doilea inel cu 60 de LED-uri aprinse pentru a compune minutele, dar apoi am început să mă gândesc cum tindem să privim ora și să o rotunjim la cele mai apropiate 5 minute.
Cu asta în al meu, am pornit cu inelul meu cu 12 LED-uri pentru a face ceasul ish. Afișează 1 LED la un moment dat timp de 1 secundă, pentru a indica ora (LED albastru) și apoi minutele (LED roșu) rotunjite în jos
Pasul 1: Adunarea pieselor și prelucrarea lemnului
Am avut mare noroc că am ajuns la locul de muncă într-o zi și am văzut un palet. Acest palet mi-a ieșit, deoarece nu arăta ca standardul tău, rulat de paleta morii. Era stejar curat, tratat termic și cel mai neobișnuit de solid.
Acest proiect este realizat dintr-una din piesele acelui palet. (L-am întrebat pe șef înainte să-l duc acasă)
De asemenea, folosit:
- Inel LED de 12 pixeli ws2812b
- Modul Ceas în timp real (RTC) (folosesc un DS3231 cu I2C)
- Compatibil cu Arduino Nano v3.0
- Foi acrilice (5mm)
- Sârmă colorată
Instrumente
- Burghiu electric
- Router
- Vârf de lemn plat reglabil
- Șlefuitor electric
- Fierastrau
- Ciocan de lipit
- Pistol de lipit fierbinte
- Hârtie de nisip
- Ulei danez
Șlefuire
Am început prin a folosi mașina de șlefuit pentru a îndrepta și curăța blocul de lemn până când toate părțile sunt curate și netede. Am lăsat unele imperfecțiuni vizibile și nu sunt perfect drepte sau pătrate, deoarece îmi place să pot vedea o parte din istorie în pădure.
Marcarea și tăierea găurilor
După șlefuire am ales partea pe care doream fața ceasului și am marcat centrul trasând linii din fiecare colț. Am setat un pic de lemn reglabil puțin mai mare decât inelul cu led, astfel încât să existe un raft pentru acrilic să stea și să taie aproximativ 5 mm adâncime, apoi reglați tăietorul cu puțin peste dimensiunea inelului cu LED și am tăiat încă 5 mm sau cam așa ceva.
Rutare și găuri de cablu
Folosind routerul meu cu bitul de 12 mm, am direcționat o adâncitură în partea de jos a blocului pentru a ascunde RTC și Arduino. Are o adâncime de aproximativ 15 mm și nu mai puțin de 5 mm de orice margine. Am marcat centrul (ish) din partea de jos și am forat folosind un bit de 10 mm chiar la jumătatea drumului pentru a permite firele LED. Apoi, folosind un bit de 5 mm, am forat din centrul locașului LED pentru a întâlni gaura de 10 mm din partea de jos.
Încă o gaură de 4 mm din spate pentru ca puterea să intre și și folosind un bit de router mai mic pentru a crea un canal pentru firele din spatele inelului cu LED-uri și lucrul cu lemnul este terminat.
Pasul 2: cercuri acrilice
Pentru a face acrilul pentru partea din față a ceasului, am spus să tai o bucată pătrată care era doar mai mare decât gaura pe care trebuia să o umple. Apoi, folosind șlefuitorul electric pentru a începe, am început să îndepărtez colțurile până când avea forma și dimensiunea potrivite. Am trecut apoi pe șlefuirea manuală, așa că nu am tras prea mult și trebuie să o iau de la capăt.
A fost un proces lent și obositor de încercare și eroare până când s-a potrivit corect, dar cred că rezultatul final a meritat. Am terminat folosind o hârtie granulată foarte fină pentru a da faței acrilului un aspect mat.
Pasul 3: lipire
Îmi place să folosesc un sistem de culoare pentru firele mele cu această ocazie pe care o aleg:
- Roșu pentru putere (5v)
- Alb pentru sol
- Galben pentru date
- Verde pentru Ceas
Am început prin lipirea celor 3 fire necesare pe inelul LED folosind sistemul de mai sus și împingerea firelor în josul găurii. Deoarece nu ar trebui să fie expus unor forțe reale, am folosit un pic de clei fierbinte pentru a menține inelul în poziție. (S-ar putea să trebuiască să-l schimb cândva) și să instalez acrilul cu doar puțin adeziv fierbinte în jurul marginii.
Am lipit apoi cele 4 fire pe RTC folosind sistemul de mai sus. Pentru a menține lucrurile puțin mai îngrijite, am decis să atrag puterea pentru RTC de la Arduino. Apoi a conectat totul la Arduino și a lipit 1 cablu pentru alimentare și altul pentru masă la Arduino.
RTC
- SCL (ceas) la pinul analogic 5
- SDA (date) la pinul analogic 4
- VCC la 5V
- GND către orice GND de pe Arduino
Inel cu LED
Din la pinul digital 6
Aveam un cablu USB vechi, așa că am decis să îl folosesc pentru a alimenta ceasul. Am tăiat capătul care în mod normal se va conecta la ceva și l-am împins prin gaura din spate. Apoi a dezbrăcat și tăiat capetele înainte de a lipi VCC pe Arduino și inelul LED pe partea pozitivă și Masa de la Arduino și LED la Masă. Căldura mică se micșorează mai târziu și arăta bine, Pistolul de lipit fierbinte a ieșit din nou pentru a ține totul apăsat. Am decis să părăsesc Arduino cu suficient joc pentru a putea accesa portul USB pentru a-l programa în viitor, dar nu atât de mult încât aș putea să cad.
Pasul 4: Codul
Acum ar trebui să puteți încărca acest cod pe Arduino.
Dacă RTC nu rulează, acest cod va seta ora în funcție de momentul în care a fost compilat codul, deci asigurați-vă că apăsați doar butonul de încărcare și nu verificați.
alternativ, acest lucru funcționează foarte bine și pentru setarea timpului.
www.instructables.com/id/Setting-the-DS130…
O mare parte din acest cod l-am împrumutat de la biblioteca Adafruit NeoPixel și unele de la o bibliotecă RTC pe care le-am găsit, iar altele le-am compus singure.
// include codul bibliotecii: #include
#include
#include
// defineste pinii
#define PIN 6
#define BRIGHTNESS 20 // setează luminozitatea maximă
#define r 5
#define g 5
#define b 5
RTC_DS3231 rtc; // Stabiliți obiectul de ceas
Adafruit_NeoPixel strip = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800); // obiectul strip
configurare nulă () {
Wire.begin (); // Începeți I2C
rtc.begin (); // începe ceasul
Serial.begin (9600);
// setează moduri de pin
pinMode (PIN, OUTPUT);
if (rtc.lostPower ()) {
Serial.println ("RTC a pierdut puterea, permite să setăm ora!");
// următoarea linie setează RTC la data și ora la care a fost compilată această schiță
rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_))));
// Această linie setează RTC cu o dată și o oră explicite, de exemplu pentru a seta
// 21 ianuarie 2014 la ora 03:00 sunați la:
// rtc.adjust (DateTime (2014, 1, 21, 3, 0, 0));
}
strip.begin ();
strip.show (); // Inițializați toți pixelii la „dezactivat”
DateTime theTime = rtc.now (); // ia în calcul DST
octet secondval = theTime.second (); // obține secunde
byte minuteval = theTime.minute (); // obține minute
int hourval = theTime.hour ();
punct (strip. Color (0, g, 0), 50);
}
bucla nulă () {
// Fă-ți timp
DateTime theTime = rtc.now (); // ia în calcul DST
int minuteval = theTime.minute (); // obține minute
int hourval = theTime.hour (); // obțineți ore
int secondval = theTime.second ();
if (minuteval 0) {
strip.setPixelColor (0, r, 0, 0);
strip.show ();}
else if (minuteval <= 9) {
strip.setPixelColor (1, r, 0, 0);
strip.show ();}
else if (minuteval <= 14) {
strip.setPixelColor (2, r, 0, 0);
strip.show ();}
else if (minuteval <= 19) {
strip.setPixelColor (3, r, 0, 0);
strip.show ();}
else if (minuteval <= 24) {
strip.setPixelColor (4, r, 0, 0);
strip.show ();}
else if (minuteval <= 29) {
strip.setPixelColor (5, r, 0, 0);
strip.show ();}
else if (minuteval <= 34) {
strip.setPixelColor (6, r, 0, 0);
strip.show ();}
else if (minuteval <= 39) {
strip.setPixelColor (7, r, 0, 0);
strip.show ();}
else if (minuteval <= 44) {
strip.setPixelColor (8, r, 0, 0);
strip.show ();}
else if (minuteval <= 49) {
strip.setPixelColor (9, r, 0, 0);
strip.show ();}
else if (minuteval <= 54) {
strip.setPixelColor (10, r, 0, 0);
strip.show ();}
else if (minuteval <= 59) {
strip.setPixelColor (11, r, 0, 0);
strip.show ();}
întârziere (1000);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
if (hourval == 0) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
else if (hourval == 1) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
else if (hourval == 2) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
else if (hourval == 3) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
else if (hourval == 4) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
else if (hourval == 5) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
else if (hourval == 6) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
else if (hourval == 7) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
else if (hourval == 8) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
else if (hourval == 9) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
else if (hourval == 10) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
else if (hourval == 11) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
else if (hourval == 12) {
strip.setPixelColor (0, 0, 0, b);
strip.show ();}
else if (hourval == 13) {
strip.setPixelColor (1, 0, 0, b);
strip.show ();}
else if (hourval == 14) {
strip.setPixelColor (2, 0, 0, b);
strip.show ();}
else if (hourval == 15) {
strip.setPixelColor (3, 0, 0, b);
strip.show ();}
else if (hourval == 16) {
strip.setPixelColor (4, 0, 0, b);
strip.show ();}
else if (hourval == 17) {
strip.setPixelColor (5, 0, 0, b);
strip.show ();}
else if (hourval == 18) {
strip.setPixelColor (6, 0, 0, b);
strip.show ();}
else if (hourval == 19) {
strip.setPixelColor (7, 0, 0, b);
strip.show ();}
else if (hourval == 20) {
strip.setPixelColor (8, 0, 0, b);
strip.show ();}
else if (hourval == 21) {
strip.setPixelColor (9, 0, 0, b);
strip.show ();}
else if (hourval == 22) {
strip.setPixelColor (10, 0, 0, b);
strip.show ();}
else if (hourval == 23) {
strip.setPixelColor (11, 0, 0, b);
strip.show ();}
întârziere (1000);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();
}
// pentru depanare în serie
Serial.print (hourval, DEC);
Serial.print (':');
Serial.print (minuteval, DEC);
Serial.print (':');
Serial.println (secondval, DEC);
}
punct gol (uint32_t c, uint8_t așteptați) {
for (int j = 0; j <3; j ++) {
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, c);
strip.show ();
întârziere (așteptați);
for (int i = 0; i <12; i ++) {
strip.setPixelColor (i, 0, 0, 0);
strip.show ();}
}
}
}
Pasul 5: Ulei danez
Pasul final și opțional este de a aplica ulei danez pe lemn. Îmi place foarte mult modul în care scoate cerealele plus oferă o oarecare protecție împotriva petelor și umezelii. Așa că o recomand cu drag.
O poți peria sau pur și simplu folosesc o cârpă veche pentru a o șterge.
Acum nu mai rămâne decât să îl conectați și să vă bucurați.
Recomandat:
Ceas de pensionare / Count Up / Ceas Dn: 4 pași (cu imagini)
Ceas de pensionare / Count Up / Dn Clock: Am avut câteva dintre aceste afișaje cu matrice de puncte LED 8x8 în sertar și mă gândeam ce să fac cu ele. Inspirat de alte instructabile, mi-a venit ideea să construiesc un afișaj de numărătoare inversă / în sus pentru a număra înapoi până la o dată / oră viitoare și dacă timpul țintă p
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
C51 Ceas electronic cu 4 biți - Ceas din lemn: 15 pași (cu imagini)
C51 Ceas electronic cu 4 biți - Ceas din lemn: a avut ceva timp liber în acest weekend, așa că am mers mai departe și am asamblat acest 2,40 USD Ceas digital digital cu 4 biți, pe care l-am cumpărat de la AliExpress acum ceva timp
Crearea unui ceas dintr-un ceas: 11 pași (cu imagini)
Crearea unui ceas dintr-un ceas: în acest instructabil, iau un ceas existent și creez ceea ce simt că este un ceas mai bun. Vom trece de la imaginea din stânga la imaginea din dreapta. Înainte de a începe cu propriul ceas, vă rugăm să știți că reasamblarea poate fi o provocare ca piv
Microdot - Ceas pentru încheietura mâinii Ceas cu model: 7 pași (cu imagini)
Microdot - Ceas pentru încheietura mâinii Ceas cu model: O altă producție RGB Sunset Productions! Acest proiect este o placă de circuite pentru realizarea unei versiuni de dimensiuni de ceas de mână a ceasului meu minidot: https: //www.instructables.com/id/EEGLXQCSKIEP2876EE/cu câteva altele funcții mai aplicabile unui dispozitiv portabil. A