Stap 2: Het instellen.
Voor dat MAX-7219 op deze plek vindt u een zeer mooie informatieblad:
https://www.Sparkfun.com/datasheets/Components/gen...
Ik zal niet verder op dat gegevensblad, maar het is waard het gebruiken van het, het is een soort van "fun" IC.
Een sprong naar de Arduino.
Op dit schema Zie je een zeer eenvoudige constructie: Ik gebruik SDA en SCL te gebruiken van de klok (een breakout 1307), en vier meer uitgangen: DataIn, klok en Chipselect die naar de MAX-7219 en uit 13 die we voor onze knipperende "seconden" LED gebruiken.
De meeste dingen gebeuren in de Arduino: leest de klok, zet deze om in de verschillende soorten van uitvoer, en stuurt de gegevens naar de 7219.
Wanneer u de code leest, ziet u ik gebruik gewoon mijn eigen taal, Nederlandse, daarvoor. Bijvoorbeeld: de int "vijfuren" Ik gebruik is de variabele die "Vijf-uur", hetzelfde geldt voor de "vijfminuten" en "vijfminuten1 telt": zij geven de "Vijf-minuten" output.
In de sketch gebruik ik ook het jaar, de maand, de dag van de maand en weekdag, in deze bijzonder schets ik hoef niet hen, maar misschien kan ik later een kalender toevoegen aan het.
In de Fritzing(c) lay-out, is de IC niet bedraad: ik deed dat voor het gemak van het, zoals het heeft veel uitgangen.
Laat ze samenvatten:
pin 4 en 9 worden aangesloten op de GND,
19 is VCC
18, ISet, is aangesloten op VCC met een weerstand: dit beperkt de stroom die naar de uitgangen gaat. Ten eerste, ik probeerde met een 20K Ohm weerstand, maar na 10 minuten of zo, alles ging donker... Nu, met een 686K Ohm weerstand, de klok draait nog steeds (na meer dan 24 uur). Maar er is een verschil tussen de helderheid van het rood en geel, ik denk dat het wijten aan het feit dat de rode in feite RGB LED's zijn. Ik heb dat uitzoeken...
pin 1 is DataIn, dit komt uit de Arduino, pin 12
pin 12 is belasting, afkomstig uit de Arduino pin 10
pin 13 is Clk, Arduino 11 vandaan.
Tot nu toe voor de ingangen van de 7219.
Een kijkje nemen op de uitgangen:
De 7219 heeft de mogelijkheid voor het aandrijven van 8 7seg displays.
Deze uitgangen, DIG 0 tot en met 4 graven worden hier gebruikt om te rijden de "lijnen" van de LED's: sinds de "vijf-minuten'-lijn heeft 11 LED's erin, ik gebruik 1 graven en graven 2 om ze te rijden.
De andere uitgangen: segmenten A tot G een DP (van een normale 7Seg display).
Ik dit geval (met LedControl), stuur ik binaire woorden naar hen (byteform, zoals B01010100).
En daar ik een fout gemaakt. Enkele logica vertelde me dat SEG A zou de MSB, B de tweede meest significante bit, en zo verder, tot DP, waarvan ik dacht zou het minste significante beetje (LSB). Verkeerd... Voor een of andere reden dacht de makers van de IC dat DP zou de MSB. Kan niet zien de logica van die...
Dat maakte mij wijzigen mijn codering, zoals ik reeds de LED's gesoldeerd...