4.8V NiMh -> PIC (samt drivning av LEDar)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

En avancerad variant skulle kunna vara att PWM'a lysdioderna och
öka pulsförhållanden när batterispänningen sjunker för att hålla
ljusstyrkan jämn(are). Är till största delen bara programvara så det
bör inte öka vikten... :-)
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

Allegro har många lysdiodsdrivare.
T.ex.
https://www1.elfa.se/data1/webroot/Z_DATA/07333735.pdf
Inte säkert att just denna passar dig, men allegro har säkert någon som gör det

Kolla om lösningen inte ligger i en helt färdig drivkrets designad för ändamålet.

Swech
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

börja testa med dina vita lysdioder - dom representerar besvärligaste fallet med ca 3 Volt nödvändig drivspänning - röda och gröna lysdioder är lättare då dessa ligger på ungefär 1.5 Volt och redan där har ganska rimligt höga förkopplingsmotstånd och därmed mindre förändring av strömmen även om matningsspänningen varierar mellan 6 - 3.8 Volt.

Skall du använda OC som strömgenerator (mha. trimmad begränsad basström) så kan du _inte_ koppla flera lysdioder till samma trissa då lysdioden med lägsta framspänningsfallet tar all ström - skillnaden mellan 3.8 Volt från batteriet och 3 Volt spänningsfall över den vita lysdioden gör att du bara har 0.8 Volt att leka med och i OC som strömgenerator så kan du inte använda strömfördelningsmotstånd mellan lysdioderna om du tänker driva fler lysdioder på samma OC-utgång... det är alldelles för små spänningsmarginaler...

(OC = Open collector)


Med ovanstående så kan man säga att man smakar lite av problemen som dom som designar rail to rail OP-ampar står inför...
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

Oj, oj, oj, vad till synes enkla saker kan vara krångliga!

xxargs: Är inte helt med på banan. OC, menar du en I/O på picen eller kollektorn på en transistor som jag tänkt använda att driva LEDarna med? Kan jag, som jag i.a.f. tror mig kunna, driva flera LEDar via samma transistor, med ett motstånd/LED? Mina luckor inom elektronik är ganska stora, eftersom det bara är en hobby där jag lär medan jag gör :D

Vad menar du med "trimmad begränsad basström", förresten?

Både de gröna och vita har spänningsfall på 3.2-3.4V, medan den röda har omkring 2.2V (om jag inte minns fel).

Swech: Skulle föredra att göra projektet utan någon drivar. Kostar lite extra, pengar, och inte lika kul... Dessutom behöver jag en med två olika strömstyrkor, de som jag såg på elfa hade bara en.

sodjan: PWM beroende på spänning, det låter som ett intressant förslag! Dels för att jag ganska snabbt kan bygga inhop kretsen och få den att fungera (sätta PWM för 6V direkt) och kanske flyga med det. Sen i efterhand kan jag fixa själva styrningen av PWM-pulsen. Och inga extra komponenter direkt. Känner mig mer kapabel till detta än någon konstant 5V-matning...

Så i nuläget lutar det åt pic med zenerdiod (för säkerhets skull) samt PWM av alla LEDs för att få någorlunda konstant ström. Frågan är ifall alla ska drivas av transistorer eller om några ska drivas direkt av PICen. Dessutom måste jag lära mig lite mer om transistordrivningen, har inte full koll där direkt...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> driva flera LEDar via samma transistor, med ett motstånd/LED?

Ja, det ska vara OK, det viktiga är att varje LED har ett eget motstånd.

> ...eller om några ska drivas direkt av PICen.

Problemet kan vara att om man t.ex vill ha en snitt-ström på, säg, 10 mA,
så behöver man driver med mer i själva "pulsen" för att få rätt snitt totalt.

Min tanke var att man skulle dimensionera drivningen (motstånd) för att få
en bra ström vid den undre batterispänningen med i princip konstant drivning
(100% pulsförhållande), sedan "dra ner" enligt någon lämplig kurva upp
mot "fullladdat" så att ljusstyrkan hålls rimligt konstant. Strömmen under
själva pulsen kommer att öka, men det kompenmseras av att man minskar
pulsförhållandet i motsvarande grad. Sen måste man hitta en bra metod
att mäta batterispänningen, även om det inte behövs någon större noggranhet.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Inlägg av vfr »

Röd/Grön/Gul LED håller vanligtvis ungefär 2V framspänningsfall allihopa medan däremot blå och vita ofta är över 3V. Sedan varierar det lite och man bör titta i databladen för aktuell typ.
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Gillar Sodjans löning med att dimensionera seriemotståndet efter lägsta möjliga batterispänning och sedan PWMa och minska pulskvoten med ökande batterispänning.

Batterispäningen kan ju enkelt mätas med en spänningsdelare in på en A/D-ingång, man behöver ju knappast 10 bitars upplösning...

EDIT: Man behöver naturligtvis en spänningsreferens till A/D:n som är annan än batterispänningen, den interna referensen på 1,2V som finns i många uC passar ju bra.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Flera av de senare PIC16 har en inbyggd Vref (d.v.s som inte är kopplad
till Vdd). T.ex 16F886 och 16F690. På 16F690 t.ex så kan man dels mäta
en extern spänningsdelara från batteriet, dels mäta den fast interna 0.6V
referensen. Genom att jämföra dessa så kan man "mäta" batterispänningen.
Sannolikt behöva man bara justera ljustyrkan i ett fåtal fasta steg, så
någon större noggranhet behövs inte. Om man klarar sig med två steg,
så kan komparatorn användas istället, lite enklare än ADC'n...
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

sodjan: Visst, hade också tänkt dimensionera motståndet för lägsta spänningen (kanske 1.1V/cell?) och sedan PWMa vid högre spänning. Glömde i farten bort att då blir det ju högre strömmar, och det var ju redan gränsfall för PICens portar. Så jag siktar nog på transistordrivning av alla LEDar.

vfr: Länkade till de dioder jag använder tidigare, och där står det att spänningsfallet för de gröna är 3.2V. Har inte mätt det än, ska ta och kolla det nu!

Vad gäller spänningsreferens så behöver den som ni säger nog inte vara så exakt (ungefär som den där meningen :roll: ). De processorer som jag tänkt använda (16F688 eller 16f630) har ju ingen intern referens, så det blir att skapa en själv. Vad blir det billigaste och enklaste alternativet? Ytterligare en zenerdiod? Inte särskilt exakt, men exakt nog kanske?

Vill nog ha lite mer än två steg, om jag nu ska ge mig in på detta projekt. Hur många vet jag dock inte. Åtta kanske? 16?

Snart dags att rita ihop ett litet kretsschema, så man får lite överblick...
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

Okej, en första skiss till kretsschema för projektet som numera går under namnet LightFlight. Ni får ursäkta den något för breda bilden, men det blir så smått annars. Några kommentarer till schemat:

- D1 4,7/5,1V, måste räkna på R3 sedan
- D2 3,3V, måste räkna på R7
- T1-14 = BC857. CE voltage 620mV, BE 1,2V. Vad innebär det för mina kopplingar? Teoretiskt sett, skulle jag för t.ex. T1&R1 räkna med ett spänningsfall på 620mV när jag dimensionerar motståndet (d.v.s. Rv = VSS-CEv-LEDv)? Hur blir det då T4, R9,21,22? Den driver två LEDar (2x80mA), de andra en LED (20mA).
- Optokopplarna isolerar från mottagaren, eftersom den går på ett annat batteri
- 2x VDD på SV4? Tja, en pinne över, kanske minskar spänningsfallet genom kablarna med någon promille...

Bild
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

Satt och funderade på problemet 5.1V zenerdiod och storlek på motstånd. Då dök tanken upp: hur fungerar det egentligen när spänningen är under 5.1V, riskerar inte spänningsfallet över motståndet dra ned spänningen till PICen? Och börjar verkligen zenerdioden jobba direkt när spänningen går över dess värde?

Den del av kretsen som "drivs" av zenern borde dock inte ta så mycket ström. PICen drar väl några få mA. Osäker på hur mycket som går genom basen på transistorerna dock (totala strömmen skall vara 15-20mA per transistor). T4 ska dock orka driva upp mot 160mA, måste kolla vad man kan vänta sig för förstärking där...

Har lagt upp ytterligare ett kriterie för kretsen: skall kunna drivas på både 4.8V & 6V NiMH-batterier. Nuvarande planet kommer att ha ett 4.8V batteri, men framtida kan mycket väl få ett 6V batteri, och då är det ju bra om allt redan är förberett. Har därför ändrat spänningsdelaren R11-12 till 2:1 för att inte överskrida Vref (3.3V med zenerdiod).
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

En zenerdiod leder i princip inte när spänningen ligger under zenerspänningen, därför kommer din referensspänning in till uC:n att följa VDD när VDD ligger under 3,3V

En zener är dock inte en särskilt bra spänningsreferens, bättre är att använda en dedikerad spänningsreferens som tex ELFA 73-385-28.

Angående T1/R1 så spelar inte VCE någon roll (så länge den inte är för stor så att LEDen inte kan få tillräcklig spänning.

Vid dimensioneringen av R1 ska du tänka att: Urb7- Ube - IR1 = 0. Basströmmen Ib kan du i princip försumma... Spänningen över R1 kommer alltså att vara konstant, och det är detta som ger strömgeneratorfunktionen.

Optokopplaringången ser lite suspekt ut... vad har du för signaler i SV2-kontakten? Ingången blir också en strömgenerator, men med eventuellt för litet spänningsfall över R4.
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

Optokopplarkretsen har jag tagit från ett fartreglage som jag byggde för några år sedan (efter en ritning i Allt om Hobby). Den trepoliga kontakten är en servokabel: 1 = Gnd, 2 = Vdd (5-6V oftast), 3 = signal. Signalen är en 1-2ms lång puls var 20e ms. Det är längden på pulsen jag behöver mäta (eller känna av tre olika pulslängder, för att vara exakt). Belysningen ska kunna styras från radiosändaren via en tvåläges- och en trelägesswitch.

Vdd ska ju inte gå så lågt som 3.3V! Ett 4.8V NiMH-batteri bör väl inte sjunka mycket lägre än 4.4V innan man bör ladda det. Så en 3.3V zener borde ju hålla Vref omkring 3.3V även då. Och jag vet att den inte är särskilt exakt, men jag behöver inte få så exakta värden. Men det kan ju hända att den ändå är för inexakt. Den spänning jag tänkt mäta kommer att ligga mellan 1.47-2.0V, och jag vill ha kanske 8-16 olika värden för att kunna justera PWM för lysdioderna. Hur mycket sviktar zenerdioden? Har funderat på att lägga in en kondensator för att stabilisera, hur stor kan den tänkas vara?

"En zenerdiod leder i princip inte när spänningen ligger under zenerspänningen" - betyder det att min 5.1V börjar leda direkt när spänningen överskrider 5.1V, så att spänningen blir max 5.1V till PICen, och min 4.4V-R3v. Alltså, så länge jag ser till att spänningsfallet över R3 inte blir för stort när batterispänningen sjunkit under 5.1V så skall det fungera?

Puh, finns så mycket man inte kan inom området elektronik... Kan du förklara förkortningarna i Urb7- Ube - IR1 = 0? Får inte ihop vad som är vad!

Passar på att tacka för all hjälp hittills i detta projekt, blir nog bra bara jag börjar förstå vad jag håller på med :lol: . Synd bara att flyget gick i backen igår - lagas väl på några timmar, och jag måste ju säga att det blir mycket lättare att dra kablarna nu - fina hål i vingen att dra igenom, och själva flygkroppen praktiskt i två delar :roll:
xxargs
Inlägg: 10189
Blev medlem: 23 september 2006, 14:28:27
Ort: Södertälje

Inlägg av xxargs »

Hmm du driver trissorna som en emitterföljar vilket gör att du förlorar minst 0.7 Volt användbar spänningssving... - faktum är att din lösning kommer inte att fungera alls då när du sätter utgången hög (3.3 Volt) så kommer strömmen från utgången eller förstärkt via trissan göra att motståndet mot jord kommer att ha 2.6 Volts potential om det rinner till tillräkligt med ström, detta plus spänningsfallet över trissan gör att du bara har knappt 1 Volt kvar spänninsskillnad mellan trissans collektoringång och VSS att driva din lysdiod och detta tänder inga vita lysdioder!

Du har inte råd att förlora 0.7 Volt och mer om du skall driva dina vita lysdioder på 3.6 Volt - ev. lysdiodsmotståndet blir också väldigt litet om det skall lysa något alls vid 3.6 Volt matningsspänning, vilket gör att den bränns om den matas med 6 Volt vid nyladdat batteri - även om den PWM-pulsar.

Normalt brukar man ha en basmotstånd mellan drivlogik och transistorns bas och emittern koppplad till jord - På det sättet kan spänningsfallet över transistorns kolletor-emitter vara så lågt som under 0.2 Volt även om spänningen mellan basen och emittern hamnar på 0.7 Volt.


Och det är basmotståndet som måste justeras indviduellt om du vill att transistorn skall begränsa sig 'naturligt' när strömmen övergår en viss gräns - hur mycket beror på förstärkningsfaktorn mellan basströmmen mot emittern och kollektor-emmitterströmmen, vilket är konstant för transistorn men varierar mellan tillverkningsbatcher på trissorna - därav individuell trimmning.

Använder man intrimmade basmotstånd för konstantström genom trissan så kan man strunta i LED-motståndet då det är transistorn som spelar rollen som begränsningsmotstånd (och måste dimmnsioneras att tåla förlusteffekten vid högsta tänkta matningspänningen).

Då transistorn arbetar som konstantströmgenerator så är strömmen samma (ungefär) oavsett om det är 0.3 Volt eller 2.5 Volt över trissan vilket gör att LED drivs av samma (max)ström oavsett batterispänning - och det bästa är att kopplingen inte hindrar PWM-modulation om man nu önskar det.

jag provade i simulatorn på en BC548C - med processorn driven av 3.3 Volt antagen att dess utgång kan nå just 3.3 Volt när den skall tända lysdioden och 47 kOhm basmotstånd i serie mot trissan samt en 3.3V zenerdiod som simulerar en vit lysdiod så nådde man strömmättning 23 mA vid 3.64 Volt matningsspänning och även om man höjde batterispänningen till 10 Volt så ökade inte strömmmen genom lysdioden mer än till 24.5 mA.


Kod: Markera allt




                           VCC
                            |
                            |  motstånd för 
                           |-| strömbegränsning av lysdiod
                           | | kan utelämnas helt om transistorn
                           |_| arbetar som strömgenerator
                            | 
                          __|___
                          \    /
                           \  / lysdiod
                          __\/__
                             |
                             |
                             | 
                       /-----+
från logik          | /  C
            ___   B |/
O----------|___|----|
  basmotstånd       |\
                    | \| E
                       \
                       |
                      ----  

Senast redigerad av xxargs 1 oktober 2008, 21:41:02, redigerad totalt 1 gång.
marcusg
Inlägg: 189
Blev medlem: 7 juli 2007, 21:27:51
Ort: Mariehamn (FI)

Inlägg av marcusg »

Hmm, jo, jag tror jag rörde ihop två koncept. Men driva med 3.6V? Skrev ju i förra inlägget att batterispänningen varierar mellan 4.4-6.0V ungefär?

Att låta transistorn begränsa strömmen vore i.o.f.s. fräckt, men då krävs det väl något mer stabilt än en zenerdiod... Och som ni märker är inte hårdvara min allra starkaste sida (som om mjukvara vore det :roll: ). Så jag tror jag fortsätter jobba vidare på PWM-metoden...

Jag får väl koppla allt så som du visar ovan. Det innebär dock ytterligare 8 motstånd. Tänker i.o.f.s. använda ytmonterade, så det varken kostar mycket eller tar särkilt mycket plats.
Skriv svar