Kysymys:
Hyvä piiri suurelle määrälle painikkeen tuloja?
Brad
2013-09-29 02:47:34 UTC
view on stackexchange narkive permalink

Suunnittelen lapsiystävällisen "yleiskaukosäätimen" rakentamista, jotta lapset voivat käynnistää ja sammuttaa lukemattomia IR-ohjattuja laitteita yhdellä tai kahdella helpolla painalluksella ...

Kaukosäädin hänellä on ehkä 20 isoa nappia, jotka painettaessa lähettävät useita infrapunasignaaleja kaikkiin tarvittaviin laitteisiin, esimerkiksi ottamaan käyttöön lapsikanavan, asettamaan Wii: n jne., jne. ...

Suurin osa painikkeista on sijoitettu ruudukkokuvioon, mutta joitain saatetaan käyttää ylös / alas / vasemmalle / oikealle, Enter jne.

Käytän Arduino Prota Mini tai Uno uC: nä.

Onko olemassa viisaita tapoja kytkeä nämä painikkeet? Verkkotyyppinen piiri? Analogiset tulot, joissa on eri vastukset kunkin painikkeen välillä? IC, joka tekee työstä helppoa?

Kolme vastused:
Passerby
2013-09-29 02:57:16 UTC
view on stackexchange narkive permalink

Luettelit ne kaikki.

  1. Matriisi x rivistä ja y sarakkeesta. Tarvitset x + y-nastat.

    Matrix

  2. Digitaalinen GPIO Expander IC, mieluiten keskeytyksellä. I2C, SPI, jopa Serial ovat saatavilla. Keskeytysnastat antavat sinun lukea keskeytyksen äänestämisen sijaan. Sinulla on oltava laitteisto I2C / SPI / UART tai lisättävä ohjelmistokoodi. Tätä lähestymistapaa käytetään pääasiassa, jos tarvitset paljon enemmän GPIO: ta kuin sinulla on käytettävissä päämikrokontrollerissa. Siinä vaiheessa olet periaatteessa edelleen käyttämässä vaihtoehtoja 1, 3 ja 4 tai suoraan yhtä painiketta nappia kohden.

  3. Vastustikkaat. Tarvitset ADC: n ja jatkuvan äänestyksen. Parempi hajota muutamaan samankaltaiseen ryhmään useilla ADC-kanavilla, mutta voit tehdä suuren 20-painikkeen, jos todella tarvitset.

    enter image description here

  4. Charlieplexing. Kuten multipleksoitu matriisi (# 1), mutta \ $ N \ kertaa (N - 1) \ $ missä \ $ N \ $ on käytettyjen nastojen määrä. Edellyttää niin monta diodia kuin painikkeita, joten muutat diodien pin-määrää. Voit kuitenkin käyttää LEDejä.

enter image description here

Suurimmaksi osaksi # 1 on yleisin menetelmä. Jokainen koskaan käyttämäsi näppäimistö tai kosketusäänipuhelin, 1000-1, olisi käyttänyt sitä. Helvetti, jopa matkapuhelimet käyttävät sitä (erityisesti tuntemani Nokia 5110 käyttää sitä.) 20 painikkeelle 4x5-matriisi vie vain 9 nastaa, enemmän kuin tarpeeksi.

Diodien käyttö kaksinkertaistaa tukemien painikkeiden lukumäärän verrattuna diodien puuttumiseen, mutta jopa ilman diodeja voidaan tukea enemmän painikkeita kuin tavallisella matriisilla. Tämän multipleksointityylin suuri rajoitus on, että ei ole olemassa yhtä ainoaa tilaa, johon voi laittaa I / O-nastoja, jotka takaavat, että minkä tahansa painikkeen painaminen aiheuttaa jotain muutosta.
@supercat kyllä ​​se vaatii kyselyä.
Jos kukaan ei tiedä, mikä avain tulisi käsitellä seuraavaksi, kysely tarvitaan. Jos sovellus sallii jokaisen avaimen ohittamisen, kunnes tiettyä näppäintä (tai yhtä avainta tietyistä pienistä sarjoista) työnnetään, voi jättää nastat määritetty havaitsemaan kyseiset avaimet.
On myös mahdollista yhdistää # 1 ja # 3 - käyttää vastustikkaita nastojen 1,3,5 ja GND välillä ja erillisiä vastustikkaita tien 2,7,6,4 ja yhden ADC-nastan välillä.Sitten toinen vastus ADC-nastan ja + 5 V: n välillä.Sinun on selvitettävä, mitä vastuksia aiot käyttää ja mitä tulet saamaan, jotta vastaukset jakautuvat mahdollisimman tasaisesti 0 ja 5 voltin välillä optimoituna pienimmän mahdollisen suuren eron saavuttamiseksi.Rakenna piiri ja mittaa tulokset.
John R. Strohm
2013-09-29 04:17:54 UTC
view on stackexchange narkive permalink

Texas Instruments valmistaa i2C-näppäimistön kooderin. Pinta-asennus. Se ei ole paljon yksinkertaisempi kuin se.

Ignacio Vazquez-Abrams
2013-09-29 03:16:45 UTC
view on stackexchange narkive permalink

IC, joka helpottaa työtä?

Ehdottomasti.

LM8330 I / O - Expander and Keypad Controller on oma laite, joka on suunniteltu estämään isäntäsuoritinta matriisiosoitteisen näppäimistön skannauksesta ja tarjoamaan joustavia ja yleiskäyttöisiä isännän ohjelmoitavia tulo- / lähtötoimintoja. Kolme itsenäistä PWM (Pulse Width Modulation) ajastinlähtöä tarjoavat dynaamisen LED-kirkkauden moduloinnin.

Se kommunikoi isäntäprosessorin kanssa I 2 C -yhteensopivan ACCESS.bus-sarjaliitännän kautta. . Se voi kommunikoida vakiona (100 kHz) ja nopeassa tilassa (400 kHz) vain orjatilassa.

Tämän avulla voit todennäköisesti päästä eroon ATtinyX5: n käytöstä ATmegan sijaan.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 3.0-lisenssistä, jolla sitä jaetaan.
Loading...