Kysymys:
Kuinka ohjata kolmea LEDiä kahdella uC-nastalla käyttämällä vain passiivisia komponentteja?
Cano64
2014-04-10 20:18:45 UTC
view on stackexchange narkive permalink

Minulla on vain 2 (3-tilassa) nastaa mikrokontrollerissa ja minun on ohjattava 3 punaista LEDiä, uC toimii 5 V: lla. Voin käyttää vain passiivisia komponentteja.

Määritä "ohjaus". Tarvitsetko kaikki LEDit täysin valaistuna samanaikaisesti vai vain yhden kerrallaan, vai jotain muuta? Miksi sanot, että voit käyttää vain passiivisia komponentteja?
Google "charlieplexing".
@JohnU: Charlieplexing ei tee mitään hyödyllistä alle kolmella tapilla. Kaksi nastaa antaa sinulle vain kaksi LEDiä.
Ilmeisesti I2C-porttilaajennin tai jopa jotkut yksinkertaiset siirtorekisterit antavat sinun hallita mielivaltaista määrää LEDejä. Miksi nämä suljetaan pois?
@DaveTweed - Googlen tekemä teko on kuitenkin todennäköisesti informatiivista;)
Luulen, että kysymyksestäsi on tullut haaste monille meistä täällä. Se on lähellä sitä, mitä [koodigolf] (http://codegolf.stackexchange.com/) on ohjelmoijille. +1
Viisi vastused:
Dave Tweed
2014-04-10 21:41:12 UTC
view on stackexchange narkive permalink

Neljän LEDin ohjaaminen:

schematic

simuloi tätä virtapiiriä - Kaavio luotu CircuitLab -toiminnon avulla

Saadaksesi tietyn nastan molemmat merkkivalot palamaan, vaihda nasta muutamaan sataan Hz: iin.

Huomaa, että tämä asetus vaatii että LEDien eteenpäin suuntautuva jännite on pienempi kuin Vcc / 2.

Huomaa myös, että vastukset kuluttavat virtaa koko ajan, ei vain LEDien palamisen aikana.

Kun R1 kytketään vain D1: een ja R2 vain D2: een jne., Se vähentää huomattavasti lepovirranottoa, kun LED ei pala, edellyttäen, että LED-jännitteen pudotukset yhdistyvät VDD: ksi.
@supercat: Kyllä, mutta se pätee harvoin OP: n määrittämiin punaisiin LEDeihin. Katso [Willin kaavio] (http://electronics.stackexchange.com/a/106114/11683).
Lisää ylimääräinen LED R1-D1- ja D2-D2-solmujen väliin ja piilota se jonnekin.
@supercat: Katso [Spehron vastaus] (http://electronics.stackexchange.com/a/106124/11683).
Dave Tweed
2014-04-10 21:12:00 UTC
view on stackexchange narkive permalink

Tämä ratkaisu riippuu siitä, että 5 V ei syty kolmea sarjassa olevaa LEDiä. Tarvittaessa voit lisätä piidiodin sarjaan yhden tai useamman LEDin kanssa eteenpäin tulevan jännitteen kokonaishäviön lisäämiseksi.

schematic

simuloi tätä virtapiiriä - Kaavio luotu käyttämällä CircuitLab

  • Jos sekä nasta A että nasta B ovat kolmipisteisiä, kaikki LEDit eivät pala. / li>
  • Jos tappi A ajetaan matalalle, D1 on päällä.
  • Jos tappi A ajetaan korkealle ja tappi B ajetaan matalalle, D2 on päällä.
  • jos tappi B on ajettu korkealle, D3 on päällä.

Jotta useampi kuin yksi LED palaisi kerrallaan, sinun on multipleksoitava: kytkettävä ne päälle yksi kerrallaan riittävän nopeasti, jotta ne näyttää olevan jatkuvasti valaistu.

Onko tällä mitään etua Michael Karasin menetelmään nähden?
Tämä toimii pienemmällä eteenpäin suuntautuvalla jännitehäviöllä LEDeissä. Hänen ratkaisunsa on vain kaksi kopiota yhden nastan / kahden LEDin versiosta.
Ahh, niin tällä, jos sinulla on 2 vastusta, pudotat jonkin verran jännitettä yhden ja osa toisiin, ja sinun on poltettava vähemmän vastuksissa?
@Will: Um, ei. Tässä järjestelmässä vain yksi LED palaa kerrallaan, ja vain yksi vastus kerrallaan laskee jännitettä. Kun molemmat nastat ovat kolmijakoisia, virtaa ei virtaa lainkaan, koska se estää kolmen sarjassa olevan LEDin kumulatiivinen eteenpäin pudotus.
Jos vedät tapin b, voit ajaa 2 LEDiä suunnitelmallasi, eikö?
@Will: Kyllä, mutta merkittävästi pienemmällä virralla ja kirkkaudella ja vain, jos V_f on pienempi kuin Vcc / 2. Voi olla hyödyllistä joissakin olosuhteissa.
Joten en saa etua järjestelmästäsi verrattuna yksinkertaiseen 2 LED: iin / 1-nastaiseen. Olen laittanut toisen kaavion yllä osoittamaan, kuinka ei menetä mitään virtaa, kun nastat ovat molemmat kolmipisteisiä.
Michael Karas
2014-04-10 20:30:59 UTC
view on stackexchange narkive permalink

Kahdella tapilla voit itse ohjata neljää LEDiä. Kahden LEDin ohjaamiseksi laita vastus MCU-nastasta virran rajoittamiseksi ja kytke se kahteen LEDiin - yhden LED: n katodi ja toisen LED: n anodi. Ensimmäisen LEDin vapaa anodipää liitetään MCU-kortin VCC: hen toisen vastuksen kautta. Toisen LEDin vapaa katodipää liitetään GND: hen (toisen vastuksen kautta). Nyt LED-valot syttyvät vuorotellen, kun MCU-nasta on asetettu korkealle tai matalalle. Kytke toinen MCU-nasta samalla tavalla ja sinulla on nyt hallinnan kaikkiaan neljä LED-valoa.

Jotta parin kunkin LEDin itsenäinen ohjaus näyttäisi portin nastasta, vaatii pieni ohjelmisto toimii seuraavasti.

Jos LED1 on anodin porttitappiin ja LED2 on katodin porttinastaan, toimi seuraavasti seuraavien kahden tilan muodostamiseksi kahdelle LEDille .

  LED2 LED1 Toiminto EI KÄYTÖSSÄ Aseta portin tappi kolmiportaiseksi POIS PÄÄLLÄ Aseta portin tappi matalaksi PÄÄLLE POIS Aseta portin tappi korkeaksi. taajuus yli 120 Hz. 

Toista samat toiminnot toiselle porttinastalle ja näytät siltä, ​​että sinulla on neljä itsenäistä LEDiä pois kahdesta porttinastasta.

Tämä järjestelmä toimii hyvin LEDeille, jotka on eteenpäin suuntautuva jännitehäviö, joka on yli puolet VCC-tasosta. Punainen LED, jossa on 2,1 VF, ei toimi niin hyvin, jos VCC on esimerkiksi 5 V. Toisaalta vihreä LED, jossa on 2,5 V VF, toimii hyvin järjestelmässä, jonka VCC on 3,3 V.

Onko tämä täydellinen hallinta? Kuinka kytket ne kaikki päälle tai pois päältä?
Yksi LED palaa, kun virta virtaa tapista, toinen LED palaa, kun virta virtaa tapiin. Kytke ne molemmat pois päältä, kun vain tilaat porttinastan, virtaa ei tule sisään tai ulos, joten ei LEDejä. Virta ei voi virrata sisään ja ulos samaan aikaan, joten molemmat ledit eivät voi palaa täsmälleen samaan aikaan. Mutta voit luoda vaikutuksen, että molemmat ovat päällä ajamalla tappi korkealle sitten matalalle sitten korkealle sitten matalalle sitten korkealle sitten matalalle jne
Will
2014-04-10 22:10:08 UTC
view on stackexchange narkive permalink

2 leds one pin, badly drawn

Joten näin ei virtaa virtaa, kun ne ovat pois päältä, ja voit ajaa niin paljon / vähän eteenpäin jännitettä kuin tarvitset

Tämä on sama kuin Michael Karasin ratkaisu. Se edellyttää, että LEDien V_f on suurempi kuin Vcc / 2, muuten et voi sammuttaa niitä kokonaan.
+1, kun yrität esitellä Michael Karasin ratkaisua, joka kopioi Dave Tweed's CircuitLabs -kaaviot ja [piirtää siihen vapaita viivoja] (http://meta.stackexchange.com/a/19775/235912) MS Paintilla (tai vastaavalla). ).
Ja se oli maalissa :)
Ah näen mitä sinä puhut nyt Dave. Virta menee r1 d1 d2 r2 eikä minkään tarvitse mennä nastan sisään
Spehro Pefhany
2014-04-10 22:58:38 UTC
view on stackexchange narkive permalink

EDN julkaisi joitain aiheeseen liittyviä ideoita suunnittelulle täällä

Tässä on yksi niistä: -

enter image description here

Tyypillinen arvot, joissa D1 on keltainen LED (2,2 V päällä), D2 punainen LED (1,9 V päällä), ja vastaavasti 1,2 V: n ja 1,1 V: n sammutusjännitteet ja kullakin 8 mA: n virralla, Vcc = 5,0 V, optimaaliset arvot ovat

R1 = 300 ohmia R2 = 330 ohmia R3 = 1.2K ohmia

Lepovirta on 2,7 mA. Jos molemmat merkkivalot näyttävät palaavan, vaihda lähtötappi arvoon 100 Hz tai enemmän.

Käytin alkuperäisessä artikkelissa Excel-ratkaisijaa, koodi saattaa olla edelleen saatavana EDN: ltä.

Vastuksen R3 tarjoama ylimääräinen vapausaste voi välttää sekä Dave Tweedin että Michael Karasin piirien rajoitukset, tosin erityistapauksessa, jossa 2 punaista LEDiä toimii 5 V: n syöttö, Dave Tweedin piiri on todennäköisesti hyväksyttävä, mutta tarkista Vf huolellisesti, se ei ole hieno joillekin punaisille LEDeille, ja se voi olla marginaalinen toisille, jos portin tappi ei vedä kokonaan alas tai ylös.

Huomaa: OP pyytää * kaikki passiivinen * -piiriä. Lisäksi, jos MCU-nasta on korkea-Z, invertteri pakotetaan lineaariseen toimintatilaan, mikä yleensä menee hukkaan tehoa.
@DaveTweed Kyllä, alkuperäisessä lähetyksessäni määritettiin ST-taajuusmuuttaja, joten olen muokannut asiaa selväksi. Se ei ** ole ** kaikki passiivista, mutta se on yksinkertainen ja nolla Iq. Toinen piiri on korkeampi Iq, mutta kaikki passiivinen. Kiitos kommenteista.
En ymmärrä, kuinka Schmitt Trigger -tulo auttaa; sen sijaan luulisin, että se pakottaisi piirin värähtelemään. LEDit sammuvat, mutta invertteri itse kuluttaa huomattavasti virtaa.
No, koska se ei täytä alkuperäisten vaatimusten puuttumista aktiivisista osista, poistan sen, mutta uskon, että se toimii kunnolla.
+1 R3: lle voi olla hyödyllinen temppu. Ja halpa siinä


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...