Sida 1 av 1

Knappsats

Postat: 8 januari 2007, 19:07:23
av ejohsjo
Jag ska bygga en kodströmbrytare, väldigt enkel en.
Den ska driva en liten solenoid fram och tillbaka

hade tänkt att den ska fungera så att man trycker sin kod och sedan "hänglås öppet" likadant för att låsa
(datablad på solenoiden http://www.magnet-schultz.de/Uk/downloa ... 29&dlid=66

Postat: 8 januari 2007, 21:28:59
av squiz3r
du kan använda en sån här, väldigt enkel lösning:
http://www.kjell.com/?item=87656&path=

Postat: 9 januari 2007, 00:09:30
av jojje
Bara en liten undran om Kjellelåset.

Det står: "Mer än 6000 olika koder (4 siffror)".

Med 4 siffror, blir det inte 9999 olika då, hmm... :?:

Postat: 9 januari 2007, 00:25:27
av tobbe
men de är ju mer än 6000 =)

Postat: 9 januari 2007, 00:57:09
av jojje
:D så klart, men varför inte passa på att skriva "Mer än 9000 ...".
Måste varit ett kontorshjo som skrivit infon.

Postat: 9 januari 2007, 04:55:55
av JimmyAndersson
ejohsjo
Det vore kul att höra lite mer om det här projektet. Det är ju postat i Projekt-delen... :)

Hur ska du fixa delen som kollar om man slagit in rätt kod? Thyristorer eller någon microkontroller (typ PIC/AVR) ?

Thyristorer har den trevliga egenskapen att de fortsätter släppa igenom ström när de fått en gate-signal. Sätter man några sådana i en kedja så är själva kod-kontroll-delen klar. En väldigt enkel variant, men ändå. :)

Postat: 9 januari 2007, 07:45:53
av xiron
blir inte 9^4 = 6561 alltså mer än 6000 olika kombinationer? :P

Postat: 9 januari 2007, 08:02:56
av jojje
Ahh, nu ser jag. Det finns ju ingen nolla (0) med.
Hur kunde jag missa det? :oops:

Postat: 9 januari 2007, 12:14:22
av nole
En knappsats från en gammal telefon kan användas, har själv inte kommit
så långt i mina experiment mer än att rita upp knappmatrisen långt kvar till
att fixa en PIC styrning men det blir väll..

I alla fall så var alla de knappsatser jag provade enkla knappmatriser dvs
signal in på rad ett,två,tre eller fyra och sedan detektera om man fick ut
signal i kolumn ett, två eller tre.

Nu är ju dom där gamla knappsatserna inte så snygga men du kan ju bygga
en egen knappmatris av några snygga knappar om du har lust. Själva
teorin bakom detta kanske du kan själv men lite enkelt skissat blir det
ungefär såhär.

. 1 2 3
1# # #
2# # #
3# # #
4# # #

Knapp ett (högst upp till vänster) kopplas alltså till rad ett och kolumn ett,
knapp två till rad ett kolumn två, på så sätt kan du läsa av tolv knappar
fast du bara använder 7 pinnar på din uC

Ska bli kul att följa ditt projekt och se hur du väljer att lösa detta.

Mvh
Nole.

Postat: 9 januari 2007, 14:06:33
av ejohsjo
OJ!!
:oops:
Den här tråden skulle egenteligen ligga i Allmänt!
:oops:

Men styrningen till låset ska fixa ganska snart då jag monterat dit den
:)
MVH
Johan

Postat: 9 januari 2007, 15:52:44
av JimmyAndersson
"på så sätt kan du läsa av tolv knappar fast du bara använder 7 pinnar på din uC"

Eller så kan man koppla 18 knappar till *en* pinne på µC'n genom att göra såhär:
Bild

Det schemat visar bara 6st knappar, men det är bara att fylla på med fler motstånd och knappar. Jag har förresten motståndsvärdena om någon är intresserad.

edit: Här finns tråden.


edit 2: Stavfel... "Knappar" istället för "knapar"

Postat: 12 januari 2007, 15:12:21
av sebastiannielsen
Är det inte krångligt att räkna ut vilka motståndsvärden man ska ha med det parallella schemat (man måste ju använda 1/R1 + 1/R2 + 1/Rn = 1/Rtot)

Är inte detta bättre:

Bild


Då behöver man i PICen bara läsa av ohmvärdet, sedan avrunda till jämna kohm, sedan konvertera det till X antal bitar, där X är antal motstånd, och sedan invertera detta, så vet man vilka knappar man tryckt ner (och det går ju att trycka ner flera samtidigt och den vet fortfarande vilka knappar som är nedtryckta)

Postat: 12 januari 2007, 21:47:13
av JimmyAndersson
Men man kan inte läsa av ohm-värdet i PICen. AD-omvandlaren kan bara läsa av spänningar. :)

Oavsett om man väljer din eller min lösning så behöver man varken läsa av eller räkna ut ohm-värdet.

* Välj motstånd som ligger tillräckligt långt ifrån varandra, minst ca 300ohm's skillnad är ganska lagom om man inte ska ha alldeles för många knappar.

* Plocka man fram en multimeter och mät hur mycket spänning som kommer ut vid varje knapptryckning.

* För att sedan få reda på värdet som AD'n kommer lämna så räknar man:

1023 * (spänning från knappen / matningspänning till PIC och knappar) = Värdet från ADC'n.

Denna uträkning görs alltså inte i PIC'en!

Så det enda man behöver göra i PIC'en är att läsa av ADC'n och kolla vilken knapp som trycktes ner.


Ett exempel:

För-arbetet:
Låt säga att Knapp nr 3 ger 2,5V och att knappar och PIC matas med 5V. Då räknar vi:
1023 * (2,5 / 5) = 511,5

1023 gäller alltså om man har 10bitars AD.

I PIC-koden:
PIC-koden läser av ADC'n.
Om värdet blev mellan 509 och 513 (det är bra med lite marginal) så trycktes Knapp nr 3 in.

Klart! :)


edit: Om man inte gillar att räkna så kan man göra som jag gjorde:
Välj ut motstånd som har ett värde som ligger lagom långt ifrån varandra. (Gärna så långt ifrån som möjligt.)
Löd ihop och koppla in till en analog ingång på PIC'en.
Läs av ADC'n och visa resultatet på en display eller via RS232 till datorskärmen.
Knappa in koden för att kolla vilken knapp som trycktes ner. T.ex IF value >=509 AND value <=513 THEN knapp = "nr3".