4 bittinen BCD binaarina 7-segmenttinäytöille?

Viestiketju:
4 bittinen BCD binaarina 7-segmenttinäytöille?

Jo vain.

Kattelin tuota trinkettiä uudemman kerran ja ittelle tosiaan on toi sarjamuotonen tiedonsiirto "ei jummarra" -kategoriassa. Ymmärrän summittaisesti periaatteen mutta noista protokollista että miten se järjestetään en tajua mitään pienen tutkailun jälkeenkään.

Kattoin tuon puskuripiirin datalehtiä ja siellähän oli dioditkin valmiina induktiivisen kuorman ohjaamista silmällä pitäen, Oli sen verran potentiaalinen että tilasin muutaman kappaleen testejä varten.

Arduinossa jos on tarpeeksi jalkoja ni se on jo isohko möhkäle tai sitten ne ei ihan riitä (esmes pro mini) että sais kaikki suoraan segmenteille menevää dataa. Ehkä ton multipleksauksen osais opetella.

Arduinolle ohjelman kirjottaminenki saattas onnistua kun oikeen raapis päätään. On se kyllä sillain resurssien haaskaamista että laskentatehosta 99% jää käyttämättä. 18x33 mm nökäleelle kyllä paikka löytyy kun vähän järjestelee, tarvinnee jonkun regun kun max käyttöjännite koko keksinnölle on 16v.

-ep-
 
Arduinossa jos on tarpeeksi jalkoja ni se on jo isohko möhkäle tai sitten ne ei ihan riitä (esmes pro mini) että sais kaikki suoraan segmenteille menevää dataa.

Arduino Nanossa on 14 digital i/o nastaa. Toinen näyttö tarvitsee 4bit lukujen kanssa kaikki 7 nastaa. Kymmeniä näyttävä näyttö tarvitsee vähän halutusta toiminnallisuudesta riippuen 1-2 nastaa. Tuosta jää datan sisäänlukuun siis 5-6 nastaa.

4bit numero on maksimissaan desimaaleina 15. Tällöin kymmeniä näyttävällä näytöllä näytetään joko tyhjää tai ykköstä, tai nollaa ja ykköstä. Tällöinhän esim. 1-numeron segmentit voi kytkeä jatkuvaan plussaan ja arduino ohjaa yhdellä nastalla näytölle nollan vaatimat muut segmentit.
 
Se Trinket oli vaan nopea heitto pienestä mikro-ohjaimesta. En laskenut miten i/o määrä riittää. Sori jos aiheutin tuolla lisähämmennystä.
 
Nou hätä.

Trinketille voi hyvin tulla jotakin muuta käyttöä myöhemmin. Jotenkin olen kokenut, että tietoa kannattaa haalia vaikkei justiinsa sattuisikaan tarttemaan, kun mistä tuon tiedät mitä ensi viikolla on edessä?

Jatkossa kun tarttee näyttää luvut 0-31 niin tarttee enemmän segmenttejä, nopeesti mietittynä 6. Ei muuten käynyt mielessäkään, ettei 0-16 tartte kaikkia segmenttejä kymmenien elementiltä. Pöljyys ei näköjään karise vaikka ikää kertyykin :D

Toisaalta numeroissa 2 ja 3 palaa 3 yhteistä segmenttiä joita ei tartteta numeron 1 näyttämiseen, joten hätäsesti ynnäämällä 4 pinniä saattas riittää, jos jotenkin saa huolehdittua että yksi pinni jaksaa syöttää kolmea segmenttiä. Veikkaan että näistä oikeasti jotakin ymmärtävät pitävät tuollasta ratkasua purkkaa ja pullonkorkkeja -tason virityksenä. Jos sen kuiteski saa toimimaan, niin on se ittelle riittävä.

Sitten vielä se releiden ohjaus, siihen tarttee 5 releelle toimittaa tieto ja se ei ihan taida onnistua samalla kun näytöt ohjataan. Jahka kerkiää ajatella niin pitää listata mitä minnekin tarttee mennä. Sarjamuodossa puskuripiirille, jonkun siirtorekisterin kautta? Toteutuksesta tulee sitte jo liika hieno.

-ep-
 
Viimeksi muokattu:
Jos haluaa ihan "mekaanisen" ratkaisun ilman piirejä, tuollainen himmeli kait toimisi myos? noita 1n4148 saa ebaysta 1000kpl muutamalla eurolla. Nuo ylhaalla menee sitten kytkimen pinneille.

Mut taitaa tulle melkonen piuhamoykky jos ei tee esim. verolevylle :D Itse varmaan laittasin jonkun picin tms. Pinneja saa saastettya charlieplexerilla (https://en.wikipedia.org/wiki/Charlieplexing)

Olen tehny kaikennakosia ledijuttuja tolla tavalla plexaamalla, olen niin pihi etta etsin aina minimiratkasun ;)

Jos threadin alun ymmarsin niin on 16 asentoinen kiertokytkin, se on joka tapauksessa jollain tapaa ensin koodattava bcd muotoon jos haluaa kayttaa sitten cmos/ttl 7segment piiria.

kiertokytkimen saa luettua adc muuntimella yhdella pinnilla jos laittaa joka pinniin eri vastuksen, olen noinkin lueskellut esim. nappeja.

(En lukenut koko threadia lapi, voi olla etta on keskusteltukin jotain tuosta)

[edit] Jaa tuollahan on valmiiksi piirretty: https://www.instructables.com/7-Segment-Display-Encoder-with-Diodes/

IMG_0314.JPG
 
Viimeksi muokattu:
Ite kun osaan vaan assembleria, niin ottasin Picin tohon. Vaan jos ei sitäkään osaa, niin vähän aikaa menee opetteluun, tosin valmista koodia on kopsattavaksi määrissä. Pitää vaan osata liimata. Ei silti ihan hetivalmis, jos pitää alkeet opetella.
Viimeksi tein just tuota 7-seg ohjausta, kaks nelinumeroista näyttöpalikkaa yhdellä 16f870 prossulla. Piti jo vähän multiplexin aikoja hieroo, ettei kovin vilkkunu.
 
Jatkoinpa tätä kysyjää suoraan hyödyttämätöntä mietintää vielä vähän... Ennenvanhaan tosiaan tehtiin noita epäloogisia koodimuunnoksia just vaikka eprommilla, jonka nykyvastine on tietty eeprom. Sehän ei varsinaisesti vaadi mitään ohjelmointiosaamista, pitää vaan tajuta binääri-heksa-desimaalin yhteys ja ymmärtää osoite ja data siitä prommista. Yksi numero on simppeli, useempi tekee sit vähän miettimistä.
Oon tehny jopa ite yhden oppinäytteenä, jossa 11-bit binäärikytkimen antamaa piti näytellä kolmella numerolla 7-seg näytöillä. Ja se näytetty arvo ei edes ollu matemaattisesti sama ku binääriluku, eli ihan epälooginen koodimuunnos. Käytin siinä 2716 tai 2732 eprommia, mutta yhtään en muista, miten sen useemman näyttönumeron sillon hoidin ihan kiinteellä logiikalla. Siinäkin tarvittu käyttöalue oli kahden numeron alueella, niin siitä protosta riisuttiin vähän tavaraa ja se kolmas numero pois. Tästä varmaan löydän ne tekemäni piirustukset, koska olen huono heittään totaalisen epäkuranttiakin pois. Sinänsä vois olla just sopiva pohja tarvitulle, koska sisään saa mennä mitä vaan ja ulos tulee se prommiin laitettu.
Myös noissa Mopperadioissa noita prommeja on tullu käyteltyä kanavoinnissa, siinä ihan sama tarve. Näkyvää desimaalilukua pitää vastata ihan joku muu binääriluku.
 
kombinaatiologiikkaa on se diodilogiikkakin... koulussa laitettiin Karnaug'hn kartalle kaikkien inputtien mahdolliset tilat ja halut outputtien tilat, siitä sitten supistelemalla haluttu 'yhtälö' ja yhtälöstä sitten porttipiireillä totetutetuksi logiikaksi. Nykyään moni sanoo aina Arduino kun eivät tiedä mitä kaikkea porttipiireillä, sekvenssilogiikalla voi tehdä. Mutta meneehän se mikrokontrollerilla tehty pienempään tilaan, muutokset on helpompia, vie vähemmän sähköä ja on usein halvempikin.
 
kombinaatiologiikkaa on se diodilogiikkakin... koulussa laitettiin Karnaug'hn kartalle kaikkien inputtien mahdolliset tilat ja halut outputtien tilat, siitä sitten supistelemalla haluttu 'yhtälö' ja yhtälöstä sitten porttipiireillä totetutetuksi logiikaksi. Nykyään moni sanoo aina Arduino kun eivät tiedä mitä kaikkea porttipiireillä, sekvenssilogiikalla voi tehdä. Mutta meneehän se mikrokontrollerilla tehty pienempään tilaan, muutokset on helpompia, vie vähemmän sähköä ja on usein halvempikin.
Jup... tutustuin muuten karnaughin karttaan joskus alle 12 vuotiaana, lueskelin isan elektroniikka&automaatio lehtia ja lainailin kaikki elektroniikka kirjat ja tekun kirjoja kirjastosta kun jutut kiinnosti, ja kun kukaan ei oivaltanut maininnut etta asiat on vaikeita niin sitten sita meni vaan tulta pain ;D
 
Kainuun karttaa piti koulunpenkillä opetella mutta autuaasti on unohtunut..
 
Karnaughin kartta kolahti kasarilla hyvin tajuntaan. Mitään kyllä en siitä enää muista.
 
Joo, ne on samassa paikassa differentiaalilaskennan Fourierin sarjojen ja laplace-muunnosten kera
Joo eipä oo käsin tarvinnut laskea vaikkapa FFTtä mutta ymmärrystä sen merkityksestä on tarvinnut ja sehän tuli sieltä kynän ja paperin kautta.
 
Oikeastaan nuo Chebysevin suodattimien polynomit tai Maxwellin yhtälöt on aika hienoja, vaikka niitä koulun penkillä vihasikin. Jätkät on aikoinaan laskeneet nuo jutut vaikkei niillä ollut ehkä silloin näennäistä merkitystä.
 
Jatkoinpa tätä kysyjää suoraan hyödyttämätöntä mietintää vielä vähän... Ennenvanhaan tosiaan tehtiin noita epäloogisia koodimuunnoksia just vaikka eprommilla, jonka nykyvastine on tietty eeprom. Sehän ei varsinaisesti vaadi mitään ohjelmointiosaamista, pitää vaan tajuta binääri-heksa-desimaalin yhteys ja ymmärtää osoite ja data siitä prommista. Yksi numero on simppeli, useempi tekee sit vähän miettimistä.
Oon tehny jopa ite yhden oppinäytteenä, jossa 11-bit binäärikytkimen antamaa piti näytellä kolmella numerolla 7-seg näytöillä. Ja se näytetty arvo ei edes ollu matemaattisesti sama ku binääriluku, eli ihan epälooginen koodimuunnos. Käytin siinä 2716 tai 2732 eprommia, mutta yhtään en muista, miten sen useemman näyttönumeron sillon hoidin ihan kiinteellä logiikalla. Siinäkin tarvittu käyttöalue oli kahden numeron alueella, niin siitä protosta riisuttiin vähän tavaraa ja se kolmas numero pois. Tästä varmaan löydän ne tekemäni piirustukset, koska olen huono heittään totaalisen epäkuranttiakin pois. Sinänsä vois olla just sopiva pohja tarvitulle, koska sisään saa mennä mitä vaan ja ulos tulee se prommiin laitettu.
Myös noissa Mopperadioissa noita prommeja on tullu käyteltyä kanavoinnissa, siinä ihan sama tarve. Näkyvää desimaalilukua pitää vastata ihan joku muu binääriluku.
Löytypäs kuva siitä sievistellystä versiosta, jossa enää 8 merkitsevää bittiä sisään ja kaksi numeroa ulos. Näköjään tein sen ihan multipleksaamatta suoraan eprommilta. Pikkasen antiikkiset osat tuossa... Vaan kaikille löytynee vielä tuoreempia korvikkeita. Tuosta ttl-teoksesta olis vielä näköjään piirilevyn kuvatkin tallessa ja toi näyttöyksikkö ihan omanaan.
:p
IMG_20230708_000657.jpg
 
Tulipa tuossa jostain syystä mieleen, saisikohan tuossa jalostettua flippereistä tuttua lamppumatriisia? Noissa koneissa yksittäisiä lamppuja ohjataan 8x8 matriisissa, eli kone voi ohjata maksimissaan yhteensä 64 erillistä lamppua. Tuossa ajetaan lyhyellä pulssilla, toiseen suuntaan taulukkoa plussaa, toiseen miinusta. Jos en väärin muista, niin plussat rullaa virtakortilta 2ms syklillä ja kone ohjaa tuohon synkronoidusti haluttuihin riveihin (lamppuihin) miinukset. Tuota ajetaan lievällä ylijännitteellä, jolloin (hehkulampulle) jää ihan ok jännitetaso.
 
Tulipa tuossa jostain syystä mieleen, saisikohan tuossa jalostettua flippereistä tuttua lamppumatriisia? Noissa koneissa yksittäisiä lamppuja ohjataan 8x8 matriisissa, eli kone voi ohjata maksimissaan yhteensä 64 erillistä lamppua. Tuossa ajetaan lyhyellä pulssilla, toiseen suuntaan taulukkoa plussaa, toiseen miinusta. Jos en väärin muista, niin plussat rullaa virtakortilta 2ms syklillä ja kone ohjaa tuohon synkronoidusti haluttuihin riveihin (lamppuihin) miinukset. Tuota ajetaan lievällä ylijännitteellä, jolloin (hehkulampulle) jää ihan ok jännitetaso.
Ai etta :) Rakastan niin tallaisia keksintoja, koska kun jotenkin on puute komponenteista ja kaikkea ei saa kaupasta heti ostamalla pistaa ihmisten mielet kukkimaan. Vahan tuota sivuten tein 4040 countterilla binaariledikellon kun noita piireja oli muutama varastossa ja sain jonkinlaisen aivohairion etta noilla piireilla pitaa tehda jotain. Ja eprommerisskin olen muuten kayttanyt tota samaa piiria, tuli mieleeni juuri! Ja siinakin tein jonkun resettipiirin niin etta kun pitaa tiettya pinnia tarpeeksi pitkaan paalla niin resetti tapahtuu, muuten piti ajaa nopeesti aina pinnin 1-tila ohi ettei resetoidu :D Tossa, kaivoin ton scheman:
[edit] siis tossakin prossan pinnit eivat riittaneet niin piti kikkailla, helpommalla olisi paassyt kun olisi ottanut monipinnisemman prossan tohon, mut jotenkin sita vaan haluaa kiduttaa itseaan. Samalla pinnilla tais tulla kello signaali ja kun piti nollassa tarpeeksi pitkaan niin resetoi countterit.
1688804629970.png
 
Viimeksi muokattu:
Takaisin
Ylös