Keresés: 
 Bejelentkezés
Nick:
 
Jelszó:
 
 
 
   
» Elfelejtettem a jelszavamat :'(
» Regisztráció
 Fórum témák
» Több téma
 Frissek
RSS hírforrások
  Hírek.rss
  Fórum.rss
  2012. Máj, 26. Szo
11:55:15
  Jelenleg 446 fő olvassa az oldalt
Fórum » Pontra menő témák » Mátrix gombsor AVR »
Mátrix gombsor AVR  
Témaindító: fillx, idő: Feb 1, 2010
Témakörök
Mikroprocesszorok » ATMEL processzorok
Lapozás Méret: 1 / 1
(#624374) fillx Válasz • 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

(#624390) Cavalier válasza fillx hozzászólására (#624374) Válasz • Feb 1, 2010
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.

(#624395) fillx válasza Cavalier hozzászólására (#624390) Válasz • 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

(#624399) simpi válasza fillx hozzászólására (#624374) Válasz • Feb 1, 2010
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.



(#624405) Cavalier válasza fillx hozzászólására (#624395) Válasz • Feb 1, 2010
Atmel Appnote plusz forráskód.

(#624431) fillx Válasz • 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

(#624897) fillx Válasz • 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

(#624920) simpi válasza fillx hozzászólására (#624897) Válasz • Feb 2, 2010
Itt van egy minta Flowcodeban, nem avrezek ezért a konfig bitek meg órajelbeállítások alapértéken vannak.
» A fájlok letöltéséhez be kell jelentkezned! «

(#625160) fillx Válasz • 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.

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

» A fájlok letöltéséhez be kell jelentkezned! «

(#642308) gabi20 Válasz • 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

(#642318) gabi20 Válasz • Feb 20, 2010
Elfelejtettem ide tenni a képet róla...
» A fájlok letöltéséhez be kell jelentkezned! «

(#642336) pbalazs válasza gabi20 hozzászólására (#642308) Válasz • Feb 20, 2010
Szedd szét.

(#642345) gabi20 válasza pbalazs hozzászólására (#642336) Válasz • Feb 20, 2010
Sajnos csak roncsolással lehet szétszedni

(#642358) pbalazs válasza gabi20 hozzászólására (#642345) Válasz • 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.

(#642359) gabi20 válasza pbalazs hozzászólására (#642358) Válasz • Feb 20, 2010
Megpróbálom multiméterrel . Amúgy kösz

Következő 1 / 1
 HEStore.hu
 Hirdetés
TrainModules.hu