Fórum témák

» Több friss téma
Fórum » Mátrix gombsor AVR
 
Témaindító: fillx, idő: Feb 1, 2010
Témakörök:
Lapozás: OK   1 / 1
(#) fillx hozzászólása Feb 1, 2010 /
 
Sziasztok!

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.

Előre is köszi

fillx
(#) Cavalier válasza fillx hozzászólására (») Feb 1, 2010 / 4
 
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 ohmot, 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.
(#) fillx válasza Cavalier hozzászólására (») Feb 1, 2010 /
 
Szia!

C nyelven kellene nekem.
Jó megoldás lenne az A/D megoldás is csak az A portot már használom

fillx
(#) Cavalier válasza fillx hozzászólására (») Feb 1, 2010 /
 
Atmel Appnote plusz forráskód.
(#) fillx hozzászólása Feb 1, 2010 /
 
Sziasztok köszi a segítséget!

Megpróbálom az ötleteket megvalósítani c-ben.
majd jövök később és beszámolok az eredményről.


fillx
(#) fillx hozzászólása Feb 2, 2010 /
 
Sziasztok!

na itt van az alkotásom

  1. PORTB = 0;
  2. DDRB = 0x0f;
  3.  
  4. static unsigned char keyMatrixPressed(void)
  5. {
  6.         unsigned char i, j = 1;
  7.  
  8.         PORTB = 1;
  9.         for (i = 0; i < 4; i++)
  10.         {
  11.                 if(PINB4)
  12.                 {
  13.                         return j;
  14.                 }
  15.                 if(PINB5)
  16.                 {
  17.                         return j+1;
  18.                 }
  19.                 if(PINB6)
  20.                 {
  21.                         return j+2;
  22.                 }
  23.                 if(PINB7)
  24.                 {
  25.                         return j+3;
  26.                 }
  27.                 j += 4;
  28.                 PORTB <<= 1;
  29.         }
  30.         return 0;
  31. }


nem teszteltem még csak elképzelés

fillx
(#) fillx hozzászólása Feb 2, 2010 /
 
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. :no:

forráskódot csatolom hátha valamelyőtök meglátja a bajom


MIDI.ZIP
    
(#) gabi20 hozzászólása Feb 20, 2010 /
 
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
(#) gabi20 hozzászólása Feb 20, 2010 /
 
Elfelejtettem ide tenni a képet róla...

key.jpg
    
(#) pbalazs válasza gabi20 hozzászólására (») Feb 20, 2010 /
 
Szedd szét.
(#) gabi20 válasza pbalazs hozzászólására (») Feb 20, 2010 /
 
Sajnos csak roncsolással lehet szétszedni
(#) pbalazs válasza gabi20 hozzászólására (») Feb 20, 2010 /
 
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.
(#) gabi20 válasza pbalazs hozzászólására (») Feb 20, 2010 /
 
Megpróbálom multiméterrel . Amúgy kösz
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem