Innehållsförteckning:

The Not So Crap Clock: 4 steg
The Not So Crap Clock: 4 steg

Video: The Not So Crap Clock: 4 steg

Video: The Not So Crap Clock: 4 steg
Video: Bad Day at Black Rock - Spencer Tracy, 1955 2024, November
Anonim
The Not So Crap Clock
The Not So Crap Clock
The Not So Crap Clock
The Not So Crap Clock
The Not So Crap Clock
The Not So Crap Clock

Av davidjwattsdavidjwatts.com Följ mer av författaren:

PiBot: Beräkning av Pi med en Arduino Uno
PiBot: Beräkning av Pi med en Arduino Uno
PiBot: Beräkning av Pi med en Arduino Uno
PiBot: Beräkning av Pi med en Arduino Uno

Först, varför kalla det Crap Clock? Jo, det sänker förväntningarna med hopp om att överträffa dem:-) Jag skojar förstås, klockan representerar många av mina misslyckanden och framgångar i lika stor utsträckning. Den fysiska representationen av underdogen inom elektronik.

För det andra, det här är inte riktigt hur man gör "saken" mer en reflektion över designval och allt material du behöver för att bygga ditt eget.

Crap Clock är en klocka som körs från en ATMEGA328 som driver 82 lysdioder via en 74HC595 som driver raderna och en TLC5940 som sänker strömmen över kolumnerna. Eftersom DS3231 håller tiden och kan köras med batteriingångarna. Klockan har flera "lägen" för att visa tid, datum, år, temperatur och sedan lägen för att ställa in tid och datum med de två knapparna. Lysdioderna kan dimmas med TLC5940 och sekundvisningen (rosa lysdioder ovan) kan användas för att visa en kontextuell bokstav vid sidan av läget som klockan är i.

Det finns ett par funktioner som jag inte har använt eller har tagit ur PCB som Li-ion batteriladdning, jag gjorde det i den här versionen för att minska kostnaden för delarna och eftersom DS3231 verkligen bara dricker en liten mängd ström. Det finns fortfarande stift för det inbyggda DS3231 -larmet INT/SQW -stift och en summernål från ATMEGA. Pin 10 bryts ut för allmänt bruk och det finns också en analog pin för en funktion som en LDR för att ändra ljusstyrkan baserat på omgivande ljus.

Jag satte ihop en spellista med alla videor där jag kan komma ihåg att prata om eller designa Crap Clock.

Steg 1: Steg 1: PCB och schematisk

Steg 1: PCB och schematisk
Steg 1: PCB och schematisk
Steg 1: PCB och schematisk
Steg 1: PCB och schematisk

PCB-layouten och schematisk designades i Eagle, det tog lång tid;-) men det var också mycket roligt och lärde mig verkligen mycket om design. Oroa dig inte, det finns fortfarande många misstag om alla andra projekt jag har gjort, inklusive alla jag inte känner till i det här.

Jag ville att klockan skulle ha en matrisdisplay och att allt skulle existera på ett kort, så jag började skapa en rund bräda för att efterlikna en analog klocka. Ja…. som inte fastnade, det var en fruktansvärd form att gå runt och krävde miljoner (kanske hundratals) lysdioder. Därefter bestämde jag mig för att göra en matrisformad display med lysdioderna, ursprungligen alla drivna med skiftregister (den ärade 74HC595) men jag bestämde mig till slut att den välkända TLC5940 LED -drivrutinen skulle vara bra att sänka strömmen från dessa lysdioder och ger det fantastiska funktion av PWM -dimning.

Här är materialförslaget:

1 x 16 MHz kristall SM49

82 x 0603 lysdioder (i stort sett vilken färg du vill)

1 x Mini USB typ B (behövs inte, det är bara för ström som bryts ut till stiften ändå)

7 x 100nf 0805 kondensatorer

9 x 10k 0805 motstånd

2 x 10uf 0805 kondensatorer (behövs inte riktigt för att vara ärlig och 0805 är dyra)

5 x 1k 0805 motstånd

1 x 2k 0805 motstånd

5 x 2n3906 SOT23

2 x 22pf 1206 motstånd

16 x 470 ohm 0805 motstånd

1 x 74HC595D SO16

1 x ATMEGA328P-AU

1 x DS3231 SO16W

2 x SMD-taktil omkopplare DTSM-3

1 x TLC5940PWP

Steg 2: Steg 2: Skitkoden

Steg 2: Skitkoden
Steg 2: Skitkoden

Koden var lite av en mardröm, det visade sig att kodning av en klocka med en homebrew -matrisdisplay inte är så lätt även när du använder ett par bibliotek.

Det är naturligtvis inte bra kod, det är skitkod. Men det fungerar och är enkelt att modifiera, jag har ingen aning om hur man gör ett bibliotek så det här är lite av ett tågvrak. Ha ha, men ärligt talat arbetar jag för att göra min kod bättre och lära mig att skapa mina egna bibliotek.

Det skrevs i Arduino IDE och använder några bibliotek (Shifter.h, MD_DS3231.h och Tlc5940.h) skapade av människor som är mycket smartare än I. Du måste ladda upp detta med en programmerare, jag använde en Arduino som ISP och kopplade den till återställningen, 11, 12, 13 stift på brädet.

Knapparna:

Det finns två knappar, de har flera funktioner beroende på vilket läge klockan är i. Du kan använda dem för att ändra visningsläget framåt och bakåt, genom tid, datum, år, temperatur och sedan för att ställa in tiden.

Steg 3: Steg 3: Skitfodralet

"loading =" lat "kan jag säga, det är lite skit men jag är ganska kär i det. Den nya versionen av PCB-designen har inte de där snygga bodgtrådarna;-) De färdiga jag har är baserade på mina prototypbrädor.

Riv gärna sönder den, remixa den och använd alla delar du tycker är användbara. Jag har hjälpts massor av människor från YouTube -communityn under hela projektets längd så det är alla i slutändan.

Rekommenderad: