Hallo,
zoals je uit mijn vorige posts waarschijnlijk al weet, ben ik bezig met het experimenteren met een LCD.
Natuurlijk heeft deze LCD een input nodig (natuurlijk microprocessor), deze microprocessor heeft ook input nodig (om het goedkoop te houden ---> tactileschakelaar)
hoe kan ik laat ons zeggen 50 tactileschakelaars controleren met mijn pic16f627 en niet te duur!
ik had ook gedacht aan een soort "caps-lock"-systeem, om het aantal toetsen naar beneden te trekken
kan iemand mij helpen?
PS: kan een tactileschakelaar op een breadboard?
60 schakelaars op n breadbordje... 
Waarschijnlijk ga je de schakelaars moeten multiplexen. Zo doen ze het op een gewoon toetsen bord ook.
Met een 4017 moet het lukken met 10 uitgangen. Evt kan je ze ook op een speciale manier schakelen, weet zo niet hoe deze heet, maar het komt er op neer dat pinnen van je uC als in en uitgang dienen.
Op 12 maart 2007 18:20:45 schreef Mr GAmba: Evt kan je ze ook op een speciale manier schakelen, weet zo niet hoe deze heet, maar het komt er op neer dat pinnen van je uC als in en uitgang dienen.
Is dat niet zo dat hij eerst de ene reeks schakelaars "hoog" maakt en dan kijk welke er reageert, dan de volgende reeks, dan de volgende reeks, enz...
?
Ibanez
Een atx voeding is geen labvoeding, en je kunt er geen auto mee starten ook
dit is het idee
artikeltje:
http://en.wikipedia.org/wiki/Multiplexer
Kan men ook een 74-150 gebruiken?
daarbij heb je 4 selects, en a.d.h.v. die selects selecteert de pic dan welk signaal hij wil controleren.
Kan dit?
Kan men ook gemultiplexte signalen nog eens multiplexen?
Waarom zet je de switches niet in een matrix?
49 toetsen kost je 7+7 lijnen van je PIC. Als je de interne pullups gebruikt heb je geen enkel extra component nodig 
Een wat 'grotere' PIC kost je de kop ook niet.
Ik zie regelmatig dat mensen met die ouderwetse en dure PICs werken, pak een moderne, ze kosten geen drol meer tegenwoordig.
is dat dan ook het systeem van de ene lijn hoog, kijken welke ook hoog komt,...
?
Welke pics bedoel je dan? pic...
-Voor de capslock functie, kan ik dan gewoon een extra bit sturen naar mijn pic, zodat de pic dat dan kan verwerken als een ander signaal? en voor het vasthouden, een and of or? en om los te laten het signaal leeg trekken?
[Bericht gewijzigd door Electro op ]
Ja, de PIC scant de toetsen continu.
Op het internet staan wel voorbeelden. Als je zoekt op 'PIC code lock' of 'PIC matrix keyboard' o.i.d. kan je wel het e.e.a. vinden.
Een stukje assembler code om te scannen heb ik evt. ook wel voor je.
Ik begrijp niet goed wat je bedoelt met dat caps lock, dat is toch ook gewoon eenmalig de caps lock indrukken zoals op de PC ?
Ik weet niet hoeveel I/O je nodig hebt, je kunt op www.microchip.com de 'beste' PIC uitzoeken.
Zelf gebruik ik de 16F685 nogal eens, een hele zuinige die veel in huis heeft. Kost bij Farnell maar 2 euro o.i.d.
[Bericht gewijzigd door Zonnepaneeltje op ]
Op 12 maart 2007 19:10:22 schreef Zonnepaneeltje:
Ik begrijp niet goed wat je bedoelt met dat caps lock, dat is toch ook gewoon eenmalig de caps lock indrukken zoals op de PC ?
Als je de capslock indrukt op de pc, dan blijft die aan en zendt die bij iedere aanslag een ander signaal, dit wil ik ook proberen maar ik denk dat ik al gevonden heb hoe.
Dank u voor het matrix-id
en bedankt voor de geldbesparing (zie pics)
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
met 3 poten van je pic stuur je de addresslijnen van een 74138 aan. de 8 uitgangen van de 74128 zijn dan je scan lijnen. daar heang je de matrix aan.
de andere kant van de matrix gaat naar een 74147 ( decimal to bcd encoder ) en dat gaat terug naar je pic.
nu heb je 7 bits die je direct je scancode geven ( de 3 die je zelf genereert + de 4 die terugkeren. ) en je kan er 64 keys aanhangen.
kind kan de was doen
of je maakt het nog eenvoudiger en plept dat gans stuk scanlogica in een klein cpldtje. die doet dan ontdendering en alles.
hier staat de bdf file :
kan iemand een stukje code posten (asm) voor zo'n systeem, want wanneer ik zo'n code maak, werkt het niet.
Kan iemand ook eens zeggen hoe je met een pic (asm) bytes inleest?
en hoe je dingen in het eeprom opslaat
+ de 74-147 heeft 9 inputs, welke moet ik gebruiken?
[Bericht gewijzigd door Electro op ]
Subroutine voor het scannen van een 4x4 matrix (PIC16F685)
Matrix zit aangesloten op portB 4-7 en portC 0-3
Deze routine wordt aangeroepen als er een toets wordt ingedrukt, dit kun je detecteren met de Interrupt On Change functie.
keyscan ; scan the keyboard
clrf keycode ;
movlw 4 ; set number of
movwf rowcnt ; rows to 4
movlw TRISC ; set
movwf FSR ; PORTC
movlw 0xfe ; to scan
movwf INDF ; select row 0;
rowscan movlw 0x5 ; delay for 5 --- WAS 50 msec
call udelay ;
swapf PORTB, W ; swap nibbles
movwf colstatus ;
movlw 4 ; set number of
movwf colcnt ; colums to 4
colscan incf keycode, F ; scan next
rrf colstatus, F ; key
btfss STATUS, C
return ; a key was found;
decfsz colcnt, F
goto colscan ;
bsf STATUS, C ;
bank1
rlf TRISC, F ; select next row
bank0
decfsz rowcnt, F ; alles gescand?
goto rowscan ; nee
clrw ; ja
movwf keycode
retlw 0 ; no key was found;
Een 'Caps-Lock' bewaart z'n instelling. Met een 'Shift' verdubbel je het aantal toetsen, elke toets een dubbele functie, een extra lijntje naar de PIC.
Move /Digitaal