Led Matrix en PIC16F628A

Bavelt

Golden Member

Ik ben me aan het inwerken in PIC Microcontrollers via diverse kleine toepassingen.

Ik heb een LED Matrix van 8*8. Als proefje wil ik deze Matrix achter elkaar alle letters van het alfabet en de cijfers 0-9 laten weergeven met een tussenpauze van een seconde.
Dat wil ik doen met de PIC16F628A en PICBasic als taal.

Wie helpt me even op weg wat de handigste manier is om dit te realiseren? Moet ik bv een externe driver gebruiken of hoeft dat niet, en wat is de handigste manier om dit in het programma te stoppen?
Hoeft niet volledig, ik zoek een beginnetje.

Fouten zijn het bewijs dat je het probeert..
Arco

Special Member

Makkelijkst is iets als een MAX7219: (voor direct aansturen heeft de 628a te weinig pinnen)

https://howtomechatronics.com/wp-content/uploads/2017/04/How-It-Works-MAX7219-8x8-LED-Matrix.png

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bavelt

Golden Member

Ok, Arco,Nu moet ik echter het geheel aansturen vanuit de PIC.
Dat werkt met een CLK en data begreep ik om de betreffende led te selecteren.
Is dat weer een serieel protocol (zoals bv I2C)?

Een Segment Driver zit er ook tussen zie ik. Is dat iets als ULN2803?

Fouten zijn het bewijs dat je het probeert..
Arco

Special Member

De MAX7219 heeft een SPI interface (ook serieel). Leds kun je zonder driver aansluiten. Wat beter plaatje:

http://www.talkingelectronics.com/projects/Running%20Display/images/8x8DisplayPinout-2.gif

Het aansturen van de leds en de stroombronnen verzorgt 't ic allemaal, je hoeft alleen te vertellen wat er wel/niet aan moet...
Voor een paar euro heb je een complete print met 8x8 led matrix en 7219 erop: https://www.banggood.com/MAX7219-Dot-Matrix-Module-8x8-LED-Display-Boa…

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Turbokeu

Golden Member

Op 23 september 2019 23:23:55 schreef Arco:
Makkelijkst is iets als een MAX7219: (voor direct aansturen heeft de 628a te weinig pinnen)

Met de twee 8-bits poorten (RA/RB) van de 628A (let op, RA4 is open collector output, en RA5/MCLR is enkel input) zou het te doen zijn met een 5x7 dotmatrix display, alhoewel je dan nog steeds column/row drivers nodig hebt (bvb. UDN2981/ULN2008) voor de aansturing van de LEDs vermits de maximum stroom per uitgang van een PIC slechts ca. 20mA bedraagt.

Met een 74238 multiplexer maak je met 3 uitgangen van de PIC 8 uitgangen naar een 8x8 dotmatrix zodat het met het beperkt aantal poorten van een 628A toch nog lukt (3+8+CLK+DIN = 13 I/O's), of zelfs 2x 74238 (3+3+CLK+DIN = 8 I/O's).
Je hebt wel nog steeds column/row drivers nodig (UDN/ULN), het is maar wat je wenst of liggen hebt.

Zoals Arco zegt blijft het het eenvoudigst met een MAX7219 (slechts 3 I/O's en géén row/column drivers benodigd, zelfs voor meerdere 8x8 dotmatrix displays).
Voor meerdere displays één MAX7219 per display, en DOUT van de vorige MAX7219 naar DIN van de volgende (de CLK ingangen allemaal parallel).

I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"
Bavelt

Golden Member

Fouten zijn het bewijs dat je het probeert..

Op 24 september 2019 14:08:39 schreef Bavelt:
€ 0,75...

Let op: In dit geval lijkt dat inderdaad de prijs te zijn, maar soms dan verstoppen ze de helft van de artikelprijs in de verzendkosten. De prijs die je moet betalen loopt op met een belangrijk deel van de prijs van je artikel. Maar hier is ie inderdaad gewoon 83ct voor 1-5 stuks, daarboven 2.93 voor "standard shipping" (met tracking).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Bavelt

Golden Member

Fouten zijn het bewijs dat je het probeert..
buckfast_beekeeper

Golden Member

Van Lambiek wordt goede geuze gemaakt.
Bavelt

Golden Member

Het zijn vaak bedragen waarbij je denkt dit kan toch niet helemaal waar zijn.
Ik heb wel eens iets gekocht voor € 0,82, inclusief bezorgkosten, waarbij er nog een PostNL autotootje voor de deur het kwam afleveren.

Maar tot nu toe heb ik nooit kapotte dingen of zo ontvangen.
Zo werken alle TTL IC's waarmee ik een tijd heb lopen spelen allemaal.

Daarbij vraag ik me af: dezelfde dingen kun je hier in de reguliere hobbywinkel kopen. Maar ook dat spul komt vaak uit China, Taiwan, HongKong, etc. De lage lonen landen dus.
En al helemaal de webwinkels, waarvan ik wel eens denk die kopen de spullen ook bij Alie en verkopen het hier voor een factor 4 a 5.
Met wel als grote voordeel dat je snelle levertijden hebt, vaak binnen één dag.
Alhoewel 'Alie' ook sneller lijkt te worden.

Fouten zijn het bewijs dat je het probeert..
Bavelt

Golden Member

Op 24 september 2019 03:05:28 schreef Arco:
je hoeft alleen te vertellen wat er wel/niet aan moet...

Dat wordt dan weer puzzelen vanuit PICBasic.

Ik zie zoveel voorbeelden die op de Arduino zijn geënt en C (of C#) als programmeertaal. Soms voel ik me als een Windows-mobile gebruiker onder het Android en IOS geweld...

Fouten zijn het bewijs dat je het probeert..
Arco

Special Member

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bavelt

Golden Member

Deze had ik inderdaad niet gezien, Arco.
Maar als je op internet speurt is het wel veel Arduino en C vind ik zelf.

Dit topic gaat over 7-segment aansturing door een MAX7219 (heb er inmiddels al eentje besteld hier in Nederland, die krijg ik morgen).

Ik moet nu nog de vertaalslag maken van 7-segment naar een Matrix led 8*8.

Fouten zijn het bewijs dat je het probeert..
buckfast_beekeeper

Golden Member

Welke ledjes er moeten oplichten haal je eenvoudig uit een datasheet van een LCD display. Hoef je niet alles zelf uit te tekenen. Je zal dan een lijstje moeten maken wat je vast in het geheugen zet.

Van Lambiek wordt goede geuze gemaakt.
Bavelt

Golden Member

Op 24 september 2019 19:03:20 schreef buckfast_beekeeper:
Welke ledjes er moeten oplichten haal je eenvoudig uit een datasheet van een LCD display. Hoef je niet alles zelf uit te tekenen. Je zal dan een lijstje moeten maken wat je vast in het geheugen zet.

Ik heb een led matrix 8*8 en wilde een aantal cijfers laten tonen en een paar karakters, bv a, b en c
Gewoon om te leren hoe je de ledjes kunt laten branden in de matrix vanuit het (PICbasic) programma.

Fouten zijn het bewijs dat je het probeert..
Bavelt

Golden Member

Een hele avond lopen speuren, maar nergens een voorbeeldje kunnen vinden hoe je in PICBasic een ledje kunt laten branden op een led matrix 8*8 (via Max7219)

Wie o wie heeft een voorbeeldje?

[Bericht gewijzigd door Bavelt op woensdag 25 september 2019 00:36:28 (75%)

Fouten zijn het bewijs dat je het probeert..

Op 24 september 2019 15:10:27 schreef Bavelt:
[...]
Soms voel ik me als een Windows-mobile gebruiker onder het Android en IOS geweld...

Door het succes van Arduino bestaan er idd veel meer programma's die je kunt knippen en plakken, maar het blijft een evengrote uitdaging als je zelf iets wilt ontwikkelen met een Arduino.

Als je altijd maar van de ene naar de andere toepassing springt die je niet werkend krijgt door de hoge moeilijkheidsgraad dan zal het niet lang duren voor de boel in het onderste schuif belandt.

Maak iets eenvoudiger en programmeer het zelf zonder copy/paste, je zult er veel meer plezier aan beleven en gaandeweg programma's kunnen lezen die veel moeilijker zijn.
Blijf ook bij een paar vaste controllers die je na een tijdje beter zult kennen omdat je dan regelmatig in hun datasheet zult moet lezen.

En al eens de zoekfunctie gebruikt van dit forum? hier is wel wat te vinden maar iets specifiek die aan al uw wensen voldoet zul je nergens vinden.

LDmicro user.
Bavelt

Golden Member

Je hebt wel een punt, MGP.

Bij mij is het zo gegaan: ik pakte mijn oude elektronica hobby na vele jaren weer op.
Dan ondervind je dat dat deze wereld behoorlijk is veranderd. Technische realisaties worden nu veel opgelost met microprocessors.
Ok, dan daar maar eens naar kijken. Ik heb gekozen voor de PICBasic cursus, temeer omdat ik veel heb gewerkt in Visual Basic.NET voor PC-toepassingen. Redelijk herkenbaar voor mij.
Met C of C# heb ik nooit wat gehad.

Ik wilde inderdaad ook bij één processor blijven, de PIC16F628A omdat deze ook in de cursus werd behandeld.
En dan inderdaad een paar simpele toepassingen maken. Ledje knipperen, geluidje maken, etc.
Als ras merk je dat deze uC al mer dan 20 jaar oud is en zijn beperkingen kent (zoals I2C ondersteuning).
Daarom nu naast de 628 ook de 1826 besteld.

Hetgeen ik nu wilde proberen is iets wat in mijn ogen ook vrij simpel klinkt; een cijfer of karakter op een Led Matrix zichtbaar maken.
Het is niet de bedoeling dat ik ga zitten knippen en plakken, maar een voorbeeldprogrammaatje is voor mij genoeg om een 'zetje' te krijgen.
Waarbij de datasheet ook meer begrijpelijk wordt.
En dat het heel veel uitzoekwerk, vallen en opstaan voor me betekent, is all in the game. Ik ben er vrijwel continu mee bezig.

Fouten zijn het bewijs dat je het probeert..

Op 25 september 2019 10:39:40 schreef Bavelt:
Als ras merk je dat deze uC al mer dan 20 jaar oud is en zijn beperkingen kent (zoals I2C ondersteuning).
Daarom nu naast de 628 ook de 1826 besteld.

Laat mij duidelijk zijn, ik ben absoluut geen tegenstander van nieuwe controllers, integendeel maar dat vereist toch wel wat ervaring in programmeren en de datasheets uitpluizen, maw een beetje onafhankelijkheid ;)

En ik zal er verder maar over ophouden om uw enthousiasme niet te fnuiken.

LDmicro user.
Arco

Special Member

Het voorbeeld uit mijn link is wel voor 7 segment, maar werkt ook met een matrix.
Alleen wat je ziet op het display zal wat irrationeel zijn, omdat de data voor 7 segment is, dat moet je aanpassen in wat je zien wilt...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Bavelt

Golden Member

Ik hoop vandaag mijn MAX7219 Met Led Matrix te ontvangen en ga er meteen mee aan de slag!

Fouten zijn het bewijs dat je het probeert..
Bavelt

Golden Member

Nou, na een avondje of twee is het gelukt om de Matrix Led met de MAX7219 aan te sturen vanuit PICBASIC!
Ik kan nu iedere willekeurige led aan of uitzetten.

Fouten zijn het bewijs dat je het probeert..

Zo zien we het graag...

En ga je uw kennis niet delen met anderen? ik denk dat je nu of in de toekomst wel een paar mensen gelukkig kunt maken.

LDmicro user.
Bavelt

Golden Member

Was ik inderdaad van plan!
Ik speel nog wat met ledjes, karakters tonen, etc en dan plaats ik het hier.

Zo kan ik ook een keer mijn bijdrage leveren na de vele input die ik kreeg.

NB Moet ik daar een apart topic van maken of kan dat gewoon hier?

[Bericht gewijzigd door Bavelt op vrijdag 27 september 2019 12:20:07 (16%)

Fouten zijn het bewijs dat je het probeert..

Het is uw topic, dan kan je doen wat je wilt ;) en het is beter van dat hier te houden omdat de titel daar perfect bij past.

LDmicro user.