» »

3-barvna LED dioda na RaspberryPi

3-barvna LED dioda na RaspberryPi

poweroff ::

Torej, imam 3-barvno LED diodo, ki bi jo rad priključil na Raspberry Pi. Je tipa common anode (torej, daljša nogica je (+), ostale so (-)).

Zadevo želim zvezati na RPi in s Python aplikacijo kontrolirati prižiganje lučk.

Pini so naslednji:
redPin = 25
greenPin = 24
bluePin = 8

Pini so na LED diodo priključeni preko 330 ohmskega upora.

Kam priključim common anodo (ta daljšo nogico)? Na internetu sem našel kup tutorialov, ki pravijo, da na GND, kar mi pa ni čisto logično, pa tudi dela ne. Tole je koda:

import RPi.GPIO as GPIO
redPin = 25
greenPin = 24 
bluePin = 8

GPIO.setmode(GPIO.BOARD)

GPIO.setup(bluePin, GPIO.OUT)
GPIO.output(bluePin, GPIO.HIGH)
...
GPIO.output(bluePin, GPIO.LOW)


Če prav razumem, bi to daljšo nogico moral priključiti na 5V ali 3.3V. Vendar pa na internetu berem, da če GPIO pine v output mode priključiš na 5V ali 3.3V, povzročiš kratek stik...

Lahko kakšen nasvet, preden se vse skupaj pokadi in poči...? 8-)
sudo poweroff

boho ::

Tukaj sem zasledil nekaj specifikaciji o GPIO:
http://www.mosaic-industries.com/embedd...

Torej če priklopiš več kot 3,3 V na vhod/izhod ga skuriš. 3,3 V ali manj pa je OK, kjer je sink/source current do 16 mA (na vhod/izhod).

Spodaj na posnetku ima isti tip diode kot ti (Nekje je omenil, da je skupna katoda, ampak se je zmotil):

poweroff ::

No, to je delovalo, ampak napol. Kot prvo dioda stalno sveti (ena izmed barv), za določene pine mi pa javlja "ValueError: The channel sent is invalid on a Raspberry Pi"...
sudo poweroff

jype ::

Seveda je GND prav. Problem je v tem, da so 330 ohmski upori namenjeni temu, da skozi LED diodo ne teče prevelik tok pri 5V (LED diode imajo lahko različno upornost, čeprav pri 3-barvni upam, da je za vse enaka). Brez upora bo lahko tudi pri 3.3V še vedno teklo preveč toka (in se bo reč grela, dokler se ne stali).

Da ti GPIO ne dela je pa verjetno problem v tem, da uporabljaš napačne, ker meni to normalno dela.

Zgodovina sprememb…

  • spremenilo: jype ()

poweroff ::

Hec je, da ko sem anodo namesto na GND priklopil na 3.3V, je začelo delati. Oziroma se odzivati na GPIO.HIGH, GPIO.LOW. Ampak samo en pin je delal. Ostala dva pa ne. S tem, da je stalno bledo svetila ena barva.

Drugače pa kolikor sem videl, pri 3-barvni ni enaka upornost, ena zahteva 330, ostale pa manj ohmov. Ampak to načeloma ni problem, pač dve barvi manj svetita.

Možno, da uporabljam napačne. Ampak sem res natančno preveril in preskusil tri kombinacije, pa je podobno (enkrat mi je delal samo en pin, enkrat dva). Bom jutri še enkrat preveril - najprej z navadnimi, potem pa s 3-barvno.

Mogoče bo enostavneje, da kupim common katodo...
sudo poweroff

jype ::

poweroff je izjavil:

Mogoče bo enostavneje, da kupim common katodo...
Ziher, ampak delat mora tudi v drugo smer.

Bom ob priliki sestavil svojo, pa dobiš navodila.

poweroff ::

Tnx. Zanimivo - na Arduinu pa dela brez težav.
sudo poweroff

tehnicni ::

Če si prepričan, da gre za skupno anodo, potem se skupno vozlišče veže na višji potencial kot ostale - torej na 3.3V. Ostale 3 tace pa šofiraš z negativno logiko. Torej 0 pomeni prižgano LED, 1 pomeni ugasnjeno LED.
Ne bo pa nič narobe, če probaš prvo brez programa in daš skupno taco na 3.3 V, potem pa daj na eno izmed 3eh tac na GND. Če zasveti imaš skupno anodo, če ne pa probaj kontra (skupno na GND in ostale na 3.3). Če potem ne zasveti ali pa zasveti malo, zamenjaj LED.

 Slika

Slika

          ::

Kakor sem jaz razumel, naj bi bilo vprašanje to, ali GPIO pini od RPija lahko delujejo kot GND, ko so v nizkem stanju. Se pravi, kakšen je njihov max. sink current. Glede na tole temo s povezavo na tole specifikacijo, naj bi bili GPIO pini na RPIju 3 sposobni oddajati in požirati max. 16mA (na pin), upoštevati pa je potrebno še skupni tok, ki ga oddaja 3V3 pin, ki pa je 50mA. Če imaš takih LEDic (ali česarkoli drugega) več, svetujem da na GPIO pinih uporabiš vezje ULN2803 (darlington driver), ki lahko požre precej večje tokove in preko njega napajaš porabnike.

Malo več imaš razloženega tukaj, veza pa je enostavna:
 vezava

vezava

Zgodovina sprememb…

tehnicni ::

Čist nič mu ne bo s tako vezavo kot ma on, kjer mu požira 10mA na pin. Predvidevam tudi, da je to neki "eksperimentalni" projekt. Če pa gre za kaj večjega pa definitivno LED driver ali pa enostavno rešit z mosfeti.

poweroff ::

Ja, problem je v tem, da če priključim samo en barvni pin in anodo na 3.3V (+ upor), lepo sveti. In prižgem z LOW, ugasnem pa s HIGH. Če pa priključim vse tri, pa dioda rahlo sveti, eno barvo lahko kontroliram, pa tisto napako mi javlja...
sudo poweroff

Uporabnik ::

Morda pa je dioda fuč ;)

poweroff ::

Hmm, misliš, da prebija med barvnimi pini?
sudo poweroff

Uporabnik ::

Že nekaj časa se nisem ukvarjal z hardwareom na ta način. Načeloma bi pomoje lahko zmeril, skoraj na vsakem multimetru je gor en dioda tester. Verjento zna kdo drug tole bolje povedat.

blay44 ::

Huh kok komplicirate.
Če gre za skupno anodo, skupen pin priključi na +3,3V,. Ostala dva, pa preko dveh uporov na vsak svoj pin.
Če v pin vpišeš 1 je ugasnjena.
Če pa vpišeš 0 pa gori. Tako imenovani "ponor".

poweroff ::

Ja, točno to sem naredil, pa se pojavljajo zgoraj opisane napake (stalno rahlo gorenje diode in "ValueError: The channel sent is invalid on a Raspberry Pi").

Glede multimetra, ja sem testiral "continuity" (ne vem kako se točno temu reče v slovenščini).
sudo poweroff

          ::

Kaj pa z drugimi pini? Npr.
greenPin = 20
redPin = 21
bluePin = 22


Ali pa kakšen HOW-TO, ki jihje na netu ravno za ta namen precej?

Zgodovina sprememb…

poweroff ::

Saj sem poskusil z ene parimi (oziroma z lastno glavo), ampak ko sem sedaj priklopil common cathode, dela vse brez najmanjših težav.
sudo poweroff

blay44 ::

huh malo pozno. Sem spregledal.
Modra se začne prižigati pri cca2,8V. delovni padec na diodi pa je tja do4,5V.
Tako da, če malo brlita je kar vredu.
Zelena je lahko enako. Odvisno od tipa diode. Tok pa je takoj 10mA.
Mal več podatkov. Da nimaš na pinu8 vključen serijski port...

          ::

Jaz sem sem tako ledico (common anode) igral le na ESP modulu. Princip je isti. Fino pa je, da jih ne krmiliš le s preprostim prižiganjem signalov, ampak uporabiš modulacijo širine impulza. Lahko kar RGB vrednsot "prikažeš".

Ahim ::

blay44 ti je dal par smiselnih napotkov, pozabil ti je pa povedati se, da (1) vsaka LED ne sveti enako "mocno" (na oko) pri enakem toku, in (2) da so padci na LED razlicne barve precej razlicni.

Najprej ugotovi ali sploh imas LED s skupno anodo (najbrz imas, a tega nisi eksplicitno napisal).

Potem ugotovi ali tvoja LED sploh blagovoli svetiti (sploh modra komponenta) s samo 3.3V napajalne napetosti.

Ce ne, potem najdi 5V na GPIO in uporabi to (ne poznam RaspberryPi na pamet, tako da ne vem ce je na voljo).

In potem upore prilagodi tako, da bodo vse komponente svetile "enako mocno" na oko. Cisto neverjetno bi bilo, da bi morali biti vsi trije enaki (ceprav visja kot je napajalna napetost, blizje so vrednosti). Pri 3.3V ni teorije da bi bili vsi enaki in bi svetilo vse enako na oko, ce bi se sploh vse komponente prizgale.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Arduino Mega + esp8266

Oddelek: Elektrotehnika in elektronika
143508 (3267) FX6300B
»

Programiranje GPIO na RaspberryPi 3

Oddelek: Programiranje
383988 (2832) slodreamer
»

LED RPi (strani: 1 2 )

Oddelek: Elektrotehnika in elektronika
6812903 (8927) salcadoo
»

Kateri tranzistor in diodo za odpiranje releja (R Pi)

Oddelek: Elektrotehnika in elektronika
133556 (3179) fpbs
»

Raspberry Pi USB portable

Oddelek: Elektrotehnika in elektronika
232172 (1780) Yacked2

Več podobnih tem