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... :S

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.

hoe werkt die 4017 ---> op de datasheet zie ik alleen maar uitgangen

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...

?

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)

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 :

http://www.uploadarchief.net/files/download/keyscan.zip

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