Styra många lysdioder och läsa av många knappar

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Styra många lysdioder och läsa av många knappar

Inlägg av Agwan »

Tjena! Det är ingen som ramlat över något smart sätt att både styra många lysdioder OCH läsa av lika många knappar?

Att tillgå har jag såklart lysdioder och knappar, men även en atmega328 som har I/Os som kan vara ingångar flytande eller med pull-up, och utgångar höga eller låga.

Lysdioderna bara kan man såklart charlieplexa. 32 LEDs är tanken is slutlösningen. Lika många knappar sedan. För att kunna routa på mitt väldigt tighta kort så vill jag inte köra mer avancerad charlieplexing än att fyra pinnar styr 8 dioder. Två till ger 16 dioder, och två till 32. Så jag spenderar åtta I/Os.

Jag försöker tänka ut om jag kan kombinera diodernas pinnar med knappar på något vis så att jag kan återanvända dem i en cykel mellan att dioderna blinkar till. Tex genom att låta knapparna gå till jord, och floata alla pinnar utom en som har pull-up som antingen jordas genom en knapp, eller inte. Men lysdioderna är ju dioder. Så det blir lågt med återvinning.

Någon som har sett någon kombo där?

Tackar för input!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45270
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Styra många lysdioder och läsa av många knappar

Inlägg av TomasL »

Jag använder latchar kopplade mot en databuss, och motriktade lysdioder, använder samma databuss och latchar för att läsa in knappsatsen.
Nu använder jag iofs 16 bitar, eftersom jag pratar med displayen på samma databuss, displayen har 16 bitars 80x interface, så det blir rätt naturligt

Med ett eller flera seriella skiftregister kan du styra hur många LED som helst, du behöver bara 3 pinnar, klocka, data och enable. du kan med antiparallella LEDar styra 2 st per bit (ett skiftregister för anoden och ett för katoden)
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Re: Styra många lysdioder och läsa av många knappar

Inlägg av Agwan »

Jag har väldigt väldigt lite kretskortsyta. Prollen måste vara en 4x4mm och det är lyx med motstånd och kondingar i 0402. Måste kanske gå ner till 0201.

Lite dioder kan kanske gå in. 0201:or...
Användarvisningsbild
GeekJoan
Admin
Inlägg: 10665
Blev medlem: 26 maj 2003, 15:59:27
Ort: Solna

Re: Styra många lysdioder och läsa av många knappar

Inlägg av GeekJoan »

Led kan du ta "neopixels" så behöver du bara en pinne på kortet.
Sätter du knapparna i en matrix så kommer du undan med 6x6 (36 knappar) pinnar.
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Re: Styra många lysdioder och läsa av många knappar

Inlägg av Agwan »

Kollade upp Neopixels. De hade varit perfekt. Så lätt att routa med. Men just kortytan, dioderna jag har är 0201:or. Och minsta sån programmerbar LED jag såg var 2x2mm. 0201:orna är 0.6 x 0.3mm, och det var ett jäkla strul att lyckas routa dem så tight som de sitter.

Sätter jag en switch till varje diodpar och en pinne till till nästa switch, så kommer jag undan med tre pinnar för att styra två LED och läsa av två knappar. 32/2*3. 48 pinnar. Det funkar ju inte, har bara 21 IOs över, två går till I2C.

Så det går nog inte att göra något smartare än att separera dem. Åtta IOs på dioderna. Och tolv IOs till knapparna då enligt GeekJoans lösning. Varför går det fler IOs till knapparna än dioderna?

Om man sätter en diod i serie med varje knapp, om de nu finns små fina 0201:or, det kan få plats, så. Så borde man kunna köra matriskopplingen åt två håll. Man kopplar alltså en diod i serie med vardera knapp, sedan parallellar man två diod/knappar med varandra fast med ena dioden omvänd. Så en IO till vardera sida av diod/knapparna. Ena IOt blir utgång låg, andra ingång med pull-up. Då känner man av ena knappen, men inte andra. Sedan vänder man, andra IOt utgång låg, och första ingång pull-up. Ena IOt kan man återanvända i matrisraden, och andra IOt i matriskolumnen.
Så två IOs ger två knappar, tre IOs ger fyra knappar, fyra IOs ger åtta knappar, fem IOs ger 16 knappar, och sex IOs ger 32 knappar. Feltänkt? Svårat att implementera i mjukvara? Debouncing och laddningar skall hinna med att åka åt alla håll.
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Re: Styra många lysdioder och läsa av många knappar

Inlägg av Agwan »

Såhär? Fyra IOs för åtta LED och fyra för åtta knappar. På knapparna får det bara finnas en utgång låg, och en ingång pull-up, alla andra IOs ingång hiZ. Som test alltså, bara att utöka till 32 med fler IOs. Feltanke?
diodeLedMatrix.png
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Styra många lysdioder och läsa av många knappar

Inlägg av mrfrenzy »

Du skulle kunna parallellkoppla varje knapp med tillhörande lysdiod så att den slocknar när man trycker in knappen, är det inte acceptabelt att den slocknar så sätter du en resistor i serie med knappen så det bara lyser lite svagare.

Sedan använder du en analog ingång på processorn för att mäta spänningen efter strömbegränsningsmotståndet som du har på varje drivutgång till din charlieplexing.
Agwan
Inlägg: 1617
Blev medlem: 15 september 2009, 09:05:14

Re: Styra många lysdioder och läsa av många knappar

Inlägg av Agwan »

Ja, har jag inte tänkt på den och kommit fram till att det inte funkar... Jag kan väl då bara köra en knapp per lysdiodpar, och kan inte charlieplexa mer än två dioder per grupp. Eller förstår jag dig fel?

Edit: Eller tänker du en analog ingång per charlieplex-IO? Det sparar jag väl inga IOs på? 8 ADC:er har jag på Mega328:an. Så det räcker ju iofs.

Edit2: Fast jag måste särskilja de två knapparna som sitter på två LED:ar. Olika motstånd? Eller motståndet på olika sida av knappen?
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14850
Blev medlem: 16 april 2006, 17:04:10

Re: Styra många lysdioder och läsa av många knappar

Inlägg av mrfrenzy »

Du har rätt, det blir ju problem att särskilja. Lämpligen sätter man en diod i serie med åtminstone den ena knappen på varje lysdiodpar, då reagerar den knappen bara när den ena lysdioden är tänd.

Olika motstånd borde också funka.
persika
EF Sponsor
Inlägg: 1347
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Re: Styra många lysdioder och läsa av många knappar

Inlägg av persika »

Det går att läsa av 16 tangenter med 1 st analog ingång. Mellan kolumnerna har man 1000ohm’s motstånd, mellan raderna har man 250ohm och även 250ohm mellan nedersta raden och gnd. Läs sedan av analogt en av kolumnerna. Analog ingången ska ha ett pullupmotstånd eller (bäst) en konstant strömkälla kopplad till sig.

Har provat detta och det funkar.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4693
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Styra många lysdioder och läsa av många knappar

Inlägg av Swech »

det faller nog på antal resistorer..
Swech
Skriv svar