Segítségeteket kérném.
Egy 4x4 mátrix gombsort szeretnék működtetni.
Erre az ATMega16 B portját szeretném használni.
A gombsor oszlopait PB0-3-ig, sorait pedig PB4-7-ig kötöttem be. Egy függvény kellene nekem ami végeredményül a megnyomott gomb számát adja vissza 0-15-ig pl.
Van egy AVR topic, a kérdés oda is elfért volna..
Milyen nyelven? Bascomban pl. alapból tudja kezelni. Ha nincs ilyen, csak annyi a dolog, hogy pl. PB0-3-ig végigpöcögtetni, PB4-7-ig meg olvasni.
Legutóbb viszont én úgy csináltam meg, hogy az oszlopokra 1-2-3-4k ellenállásokat felül mind Aref-re, a sorokhoz meg 100-330-470-680 Ωot, másik fele összekötve, rá egy 4,7k, alul testre, a közös pont meg az ADC bemenetre. Meglepően jól működik miután belövögettem a tartományokat, és csak egy lábat visz el.
Ha PB0=1 és PB4=1 =Változó = elsőgomb
Ha PB0=1 és PB5=1 =Változó = ötödikgomb
Ha PB0=1 és PB6=1 =Változó = kilencedikgomb
Ha PB0=1 és PB7=1 =Változó = tizenharmadikgomb
Ha PB1=1 és PB4=1 =Változó = másodikgomb
Ha PB1=1 és PB5=1 =Változó = hatodikgomb
Ha PB1=1 és PB6=1 =Változó = tizedikgomb
Ha PB1=1 és PB7=1 =Változó = tizennegyedikgomb
És így tovább..
Vagy ellenálláslétrát használsz, és a gombokat nem mátrixba kötöd hanem tápra és az ellenálláslétra tagjára, és beolvasod az adc értéket.
Sziasztok a kódot átírtam mert nem működött most működik de csak néhány megnyomás erejéig utána "lefagy" az avr vagy nemtudom mit csinál de nem működik rajta semmi.
forráskódot csatolom hátha valamelyőtök meglátja a bajom
Sziasztok! Lehet hogy nem a legjobb helyre írok ,de nem akartam új topicot nyitni.
Szóval van egy mátrix billenytűzetem (kép) .Semmi típusjelölést nem találtam rajta ,nem tudom hogy kell használni. 20 gomb van rajta, 15 kivezetése van.
Hogy lehetne bemérni, hogy melyik kivezetés melyik gombhoz tartozik? Előre is kösz
Az a baj, hogy egy 5x5-ös billentyűzethez 10 vezeték elegendő, ha az mátrixba van kötve. Ebből gondolom, hogy ez nem mátrixos.
Ha mindenképpen ezt akarod használni, akkor nincs más, mint kifütyültetni multiméterrel.