hallo

ik ben nieuwschierig naar hoe ik een led display zou kunnen maken met me pic en pic basic.
ik wil het dus nog niet maken maar wil er van leren.
en kan het mishcien een keer gebruiken.

ik wil dus weten hoe ik en 7*5 led display aan stuur.
want ik heb al wat ic's gevonden maar ik heb geen idee welke ik moet hebben en ik weet niet precies hoe ik ze aan stuur.

Robbert

Wat bedoel je met LED display, een 7segment of een dot matrix...
Is daar geen library voor? voor een 7 segment is er een voorbeeld code dacht ik?

het gaat om losse ledjes om een licht krant mee te maken.
volgens mij is dat een 7 segment.

ik heb in de help gelkeken maar niks gevonden.
als iemand een voorbeeldje weet is het meer dan welkom :)

Robbert

Ik denk dat Robbert de led matrix bedoelt.

@Robbert,

Je kan een kant en klare matrix kopen en de datascheet lezen om te kijken hoe je hem moet aansturen.

Je kan natuurlijk ook zelf leds in elkaar solderen en daar een matrix vanmaken, daar leer je het meeste van.

Dan moet je bijvoorbeeld bedenken hoe je ze aansluit om zo minimaal aantal datalijnen te gebruiken. Gebruiken de leds allemaal dezelfde plus of juist min? Teken het eens uit ...

ik bedoel zo iets:
http://www.gniibe.org/gpl-led-display/b/P1020851.JPG

en ik vind het het leukst om zelf te maken.

Robbert

kun je in het vervolg de plaatjes iets kleiner maken? dank!

[Bericht gewijzigd door KT88 op ]

Probeer een oud messageboard/lichtkrant op de kop te tikken.
Je zal al meer dan genoeg werk hebben om het microcontroller/software gedeelte zelf te ontwikkelen (en zeker als je allerlei animatie-effecten wil toepassen).

Ik heb er zo één gratis voor niks gekregen (controllerboard was rot, displayboard perfect in orde):

http://www.turbokeu.com/myprojects/dotclock/msgboard.jpg

19 stuks rode 7x5 dotmatrix displays met 74164 schuifregisters en TD62003 (=ULN2003) buffers.
Aansturing gebeurt simpelweg via seriële datalijn en clocklijn voor de columndata, en 7 lijnen voor de rowmultiplexing.

CD :)

oke.
maar hoe stuur ik dat precies met me pic basic aan?
zijn daar opdrachten voor of kan ik gewoon print gebruiken?

een voorbeeld is ook zeer welkom.

Robbert

Begin met een simpel matrixje van 4x4, je stuurt zoiets aan met je poorten.

http://www.circuitsonline.net/forum/search.php?query=ledmatrix&mod…

oke daar ga ik eens mee beginnen.
maar dat kost me dan wel 8 poorten.
ik heb op school ook iets over multi plexers gehad.
maar daar heb ik te weinig over gehad om wat mee te doen.

maar ik zou toch wel een seriel -> parallel convertor kunnen gebruiken.
heb ik ook niet veel over gehad maar die begrijp ik better.
en lijken mij geschikter voor dit doel einde.

dat als ik bijvoorbeeld 1001 op pin 1 stuur, dat hij dan op pin 2 een 1, geeft op pin 3 een 0, op pin 4 een 0, en op pin 5 een 1.

ik weet niet zekker of dit wel een seriel -> parallel convertor is of dat het ic in mijn voorbeeld uberhaupt bestaat in ic vorm maar het leek me erg handig voor een display.

Robbert

dat was het!!!
die kan ik toch heel goed voor me display gebruiken?
want dan kan ik met 2 uitgangen bijvoorbeeld een 5 x 15 display aan sturen toch?

en op dat ic zitten toch alleen de uitgangen die verschover worden, de ingang en 2 voedings poorten?
heeft iemand een simpel schuif register dat ik hier voor kan gebruiken?

Robbert

is veel omslachtiger dan in matrix plaatsen

74LS/HC/HCT164
http://www.cs.uiowa.edu/~jones/logicsim/man/node5.html

Bedenk wel dat parallel aansturen eenvoudiger is om mee te beginnen.

[Bericht gewijzigd door Henry S. op ]

Op 16 maart 2007 18:31:09 schreef Robbertbd:
oke.
maar hoe stuur ik dat precies met me pic basic aan?
zijn daar opdrachten voor of kan ik gewoon print gebruiken?

een voorbeeld is ook zeer welkom.

Robbert

Volgens mij besef je niet helemaal op welk niveau een pic werkt. je stuurt elk ledje van de hele matrix (meestal honderden leds) individueel aan. Met dat in het achterhoofd, denk je dan dat er kant-en-klare print commando's zijn?

Wat je moet doen is een karakter rom nemen in de vorm van een I2C eprom, flash, diode matrix, etc. of rechtstreeks in de pic code als er genoeg programmageheugen is.

De makkelijke manier is om een 'video geheugen' te nemen en daar in te schrijven. Dan kan je het hele video geheugen makkelijk in volgorde naar het display sturen.

1 probleempje, bijna geen enkele pic heeft zoveel geheugen.

Wat je kan doen is het volgende: In volgorde scan je de 7 rijen (of 16, in jouw gnu plaatje) af en voor elke rij pak je telkens de zoveelste bit van het juiste karakter op dezelfde rij en die stuur je het schuifregister in. (uitgaande van een seriele decoder op het display)

Klinkt ingewikkeld he?

neem een hd44780 IC en veel vrije tijd?

dan is een aantal 74164 toch makkelijker :P
http://www.digigen.nl/~zombie/files/HPIM0036.jpg
(25x7 matrix controller)
En het bijbehorende display (Helaas heb ik geen vooraanzicht meer. De website die de foto's hostte is gone.)
http://www.digigen.nl/~zombie/files/Hpim1110a.jpg
waarschuwing: het is niet aan te raden een 32-aderige kabel zelf te vlechten :P

Op 16 maart 2007 19:28:24 schreef Zom-B:
Wat je kan doen is het volgende: In volgorde scan je de 7 rijen (of 16, in jouw gnu plaatje) af en voor elke rij pak je telkens de zoveelste bit van het juiste karakter op dezelfde rij en die stuur je het schuifregister in. (uitgaande van een seriele decoder op het display)

Klinkt ingewikkeld he?

oke het eerste deel begrijp ik geen hol van en heb ook geen idee hoe ik dat doe :P

maar dat laatste klinkt wel begrijpelijk.
je bedoeld dat ik mijn leds zo schakel:http://file01.uploaddump.nl/~file01/uploads/kkmqamaoqokmq-xfh.png
en dat ik bijvoorbeeld 2 hoog maak en 11 laag? om led A1 aan te krijgen?

en is de 74164 ook een schuif register?

Robbert

is na msn google ookal stukgevallen?

Afbeelding is inderdaad een goede matrix

heb net de data sheet van de 74164 bekeken en die begrijp ik :D
is me eerste data sheet die ik begrijp :p

maar het is een schrijfrgister met twee inputs.

en ik maak voor iedere letter een gosub.

Robbert

[Bericht gewijzigd door Robbertbd op ]

misschien kun je beter eerst met een looplicht starten...

*hersenspinsel:

Het is misschien met i²c goed mogelijk ism IO-expanders en routers om zou een lichtkrant te maken. Dan is het in mijn ogen gemakkelijker te programmeren met een lookup table

oke ik ga maandag een 74164 halen bij dil en ga dan lekker proberen :D

en als ik de uitgangen van het schuif register heb zet ik toch de klok stil?

Robbert

[Bericht gewijzigd door Robbertbd op ]

ik heb nu dit gemaakt:


DEVICE 16F628A                ; Gebruik een 16F628A type
; interne klok gebruiken
CONFIG INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_OFF
ALL_DIGITAL TRUE              ; Alle ingangen digitaal
portb_pullups on              ; pullup weerstanden aan

;        76543210
porta = %11111111
portb = %11111111
trisa = %11111100
trisb = %11111111

; symbol's
symbol klok = porta.1
symbol puls = porta.0

; clear memory en screen
clear
cls

; het programma
puls = 1
klok = 1
klok = 0

puls = 1
klok = 1
klok = 0

puls = 0
klok = 1
klok = 0

puls = 1
klok = 1
klok = 0
; einde porgramma

end 

klopt het dat er nu op de uitgngen 1101 staat.
en om dat de klok nu stil staat die 1101 ook blijft staan?

Robbert

klopt. het is denk ik een leukere uitdaging om het automatisch te doen ipv handmatig. dus zo iets (ik ken geen pic basic maar ik hoop genoeg geleerd te hebben van jouw voorbeeld)

symbol data = 0x20 'Eerste ram locatie
symbol count = 0x21
symbol schuif = 0x22

data = %00001101;

'schuif!
schuif = data;
count = 4
do
  if schuif.0 = 1 then puls = 1 else puls = 0
  klok = 1
  klok = 0
  schuif = schuif / 2; '00001101 wordt 00000110, etc.
  count = count - 1
loop while count > 0

dat vind ik een geweldig idee :)
ik ga er mee aan de slag.
dat scheelt een hele hoop tekst.
ik heb me 74LS164 gehaald.
en ga er mee proberen.

Robbert