Berlin klockan (2 / 4 steg)
Steg 2: Installera den.
Du kan hitta en mycket trevlig datablad för att MAX 7219 på denna plats:
https://www.Sparkfun.com/datasheets/Components/gen...
Jag kommer inte att gå det datablad längre, men det är värt att använda det, det är en typ av "kul" IC.
Ett hopp till Arduino.
Om det systemet du ser en mycket enkel konstruktion: Jag använder SDA och SCL använda klockan (en 1307 breakout), och fyra fler utgångar: DataIn, klocka och Chipselect att gå till MAX 7219 och ut 13 som vi använder för våra blinkande "sekunder" LED.
Den mest saker händer i Arduino: det läser klockan, konverteras den till olika typer av produktion och sedan skickar data till 7219.
När du läser koden, ser du jag använder bara mitt eget språk, nederländska, för detta. Till exempel: int "vijfuren" Jag använder är den variabel som räknas "Fem-timmar", samma sak för "Vijfminuten" och "vijfminuten1": de ge "Fem minuter" utdata.
I skissen jag också använda den år, månad, dag av månads- och veckodagsnamn, i denna särskilt skiss jag behöver inte dem, men kanske senare, jag skulle kunna lägga till en kalender i den.
I Fritzing(c) layout, IC inte kopplats: Jag gjorde det för att underlätta för den, som det har massor av utgångar.
Kan sammanfatta dem:
stift 4 och 9 är anslutna till GND,
19 är VCC
18, ISet, är ansluten till VCC med ett motstånd: detta begränsar den ström som går till utgångarna. Först försökte jag med en 20K motstånd, men efter 10minutes eller så, allt gick mörka... Nu, med en 686K resistor, klockan är fortfarande körs (efter mer än 24 timmar). Men det finns en skillnad mellan ljusstyrkan på röda och gula, jag tycker det är på grund av att röda är i själva verket RGB-lysdioder. Jag måste lösa som...
stift 1 är DataIn, detta kommer från Arduino, stift 12
stift 12 är belastning, kommer från Arduino stift 10
stift 13 är Clk, kommer från Arduino 11.
Så långt för 7219 ingångar.
Ta en titt på utgångarna:
7219 har möjlighet att driva 8 7seg visar.
Dessa utgångar, gräva 0 till gräva 4 används här att köra "lines" lampa: sedan de "fem minuterna"-raden har 11 LED i det, jag använder gräva 1 och gräva 2 för att driva dem.
De andra utgångarna: segment A till G en DP (av en normal 7Seg display).
Jag detta fall (med LedControl), jag skicka binära ord till dem (byteform, som B01010100).
Och det jag gjorde ett misstag. Viss logik berättade att SEG A skulle vara MSB, B den näst mest signifikanta biten, och så vidare, tills DP, vilket jag trodde skulle vara den minst signifikanta biten (LSB). Fel... För en eller annan anledning trodde skaparna av IC DP att MSB. Kan inte se logiken i att...
Det fick mig att ändra min kodning, som jag redan lödda lysdioder...