Show your projects! Part 10.

Dit topic is gesloten

@ NaaDje:
Welke zwaar inefficiënte programmeertaal heb je gebruikt, dat je maar 4 PWM kanalen uit je PIC kreeg!? En waarom de (te) hoge resolutie van 11 bits?
Het lijkt mij dat met een beetje slim programmeren je al 10 kanalen uit een uC op 20MHz kan persen, zonder flikkeren...

Zo goed als het vroeger was, is het nooit geweest.

Klopt, ik krijg er met gemak veel uit ja. Maar niet op 11bits. Ik heb die 11bits om meerdere reden gedaan. Een van de redenen was de non-lineare curve van leds. Ten twede wilde ik de mogelijkheid hebben om ze over een FLINK lange tijd langzaam aan/uit te laten gaan ZONDER dat je het merkt. met een lagere resolutie was dit bijna niet mogelijk :-)

Overigens, als ik het nu opnieuw zou moeten maken, zou ik een groot gedeelte in assembler schrijven. (Let wel, ik had dat project ruim een half jaar geleden af, ging nog klein halfjaartje aan voren). Nu is op dit moment in het halve jaar mijn kennis weer zoveel toegenomen dat ik er waarschijnlijk wel meer kanalen uit zou kunnen stampen :-)

Maar daar heb ik voor het huidige ontwerp niet zoveel aan :(

[Bericht gewijzigd door Henry S. op maandag 20 oktober 2008 15:54:28 (20%)

Ik ben programmeur! geen electronicus! http://www.daantimmer.nl/ Er is een ontwerp! nu nog inhoud :-)

11 bits is idd wat overkill, 2048 stappen!

overigens heb je niks te maken met lineariteit als je leds gaat pwmen, omdat je de led altijd op zelfde vermogen laat branden in de tijd dat hij aan staat! (led is instant light zal ik maar zeggen)

en het verschil tussen 256 en 2048 stappen merkt je m.i. echt niet.

ben ik nog nieuwsgierig, hoeveel hz heb je er nog uit gehaald?

wel leuke compacte printen trouwens, en voor een schoolproject profi laten maken, niet slecht.

[Bericht gewijzigd door Martijn Berntsen op maandag 20 oktober 2008 10:17:37 (28%)

pe4mb

Ik vind de keuze van 11 bits zo slecht niet.
als je leds gaat PWM'en met een 8-bitsresolutie dan kan je het verschil tussen 0 - 10 onderling heel goed zien.

[Bericht gewijzigd door Henry S. op maandag 20 oktober 2008 15:54:41 (65%)

groot project van mij maar vrij kleine elektronica :+
CNC sturing.

stepper driver1:
http://upload.schematheek.net/thumbs/108.jpg

freesmachine die cnc moet worden:
http://upload.schematheek.net/thumbs/109.jpg

Bezoek ook eens: www.christiaan-elektro.nl

Op 20 oktober 2008 10:26:43 schreef Jan Bot:
[...]

Ik vind de keuze van 11 bits zo slecht niet.
als je leds gaat PWM'en met een 8-bitsresolutie dan kan je het verschil tussen 0 - 10 onderling heel goed zien.

de hoeveelheid licht die je produceert is keurig linear, dat je ogen/hersenen het anders zien heeft niets met de karaktistiek van de leds te maken.

maar toegegeven, dit is niet een onbelangijke factor in deze toepassing!

pe4mb

Dit is niet waar. LED's zijn NIET linear.
Zie:

http://www.societyofrobots.com/images/electronics_led_graph.png

Het is wel waar dat ze linear zijn wat betreft lumen-ampere. Maar volt-lumen is totaal niet linear. Om dit probleem op te lossen moet je het onderste gedeelte meer stapjes hebben voor je van intensiteit verandert dan wanneer je al op, say, 80% zit.

En aangezien ik de leds dus ook op 10% heel langzaam wil laten faden heb je die hoge resolutie wel nodig.

[edit]

Op 20 oktober 2008 10:14:47 schreef Martijn Berntsen:
wel leuke compacte printen trouwens, en voor een schoolproject profi laten maken, niet slecht.

Ik had ze zelf gemaakt. Zelf ontworpen, geprint, belicht,ontwikkelt,geetst,belicht,ontwikkelt,gespoten,geboord,bestukt. O.o

[Bericht gewijzigd door Henry S. op maandag 20 oktober 2008 15:55:10 (17%)

Ik ben programmeur! geen electronicus! http://www.daantimmer.nl/ Er is een ontwerp! nu nog inhoud :-)

Dit is niet waar. LED's zijn NIET linear.

Maar met PWM wel. Kort lesje PWM:
Je stuurt de LEDs met een constant voltage/amperage. Vervolgens laat je ze heel snel aan-en-uit schakelen, zo snel dat je oog het niet kan volgen. Door de ratio aan/uit te veranderen kan je de lichtopbrengst regelen. Als je ze dan bijvoorbeeld 50% van de tijd aan hebt en 50% uit, dan leveren ze exact 50% van de lichtopbrengst tov de continu-aan stand.

"If a rocket goes up, who cares where it comes down." - Wernher von Braun

Een kort lesje elektrotechniek ook dan maar:
NIET voltage/amperage, maar spanning/stroom :+

Zo goed als het vroeger was, is het nooit geweest.

Jullie vergeten de schakelverliezen van de transistors, die onafhankelijk zijn van de pulsbreedte, aangenomen dat ze beide kanten op volledig door het lineaire gebied gaan. Dit geeft een vast verlies, wat een offset in het lineaire verband tussen de stroom en de lichtsterkte geeft. Daar komen nog parasitaire inducties en capaciteiten bij.

Wat een geneuzel zeg. Het grootste "probleem" is het feit dat ons gezichtsvermogen, net als ons gehoor, niet lineair werkt.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 20 oktober 2008 12:08:40 schreef Tommyboy:
Een kort lesje elektrotechniek ook dan maar:
NIET voltage/amperage, maar spanning/stroom :+

Sorry, ik ben geen elektronicus :( Probeer er wel zoveel mogelijk op te letten ;-).

@Phlogiston. Dit is miss. waar voor ietwat hogere DutyCycles, maar voor de lagere is dit echt niet waar.

Als je gewoon dit doet:
for(i=0;i<255;i++)
if(dutycycle < i)
ledje = 1;
else
ledje = 0;

Met een DC van 250 dan zal hij bijna aan zijn.
met een DC van 10 zal hij heel zwak zijn. Echter bij een DC van 11 zal hij een STUK feller zij. Ten opzichte van 250-251. Dit kan wel tot ongeveer 2x zoveel zijn.

Ook zal je merken dat in de range 0-25 ongeveer er gewoon geen licht is. tussen 25-75 zal hij aan gaan tot bijna helemaal aan. Daarna 75-255 is er nog maar amper verschil. Geloof je me niet? Dan zou ik zeggen, test het zelf!

Ik heb advies gevraagd van iemand bij mij op de HvA die voorheen in de professionele wereld werkte wat betreft sterrenhemels met behulp van leds. En die had het zelfde probleem, op de zelfde manier op gelost. (Hij had alleen iets krachtigere processortjes :P)

Ik ben programmeur! geen electronicus! http://www.daantimmer.nl/ Er is een ontwerp! nu nog inhoud :-)

Daar heb je natuurlijk gelijk in. Onderin het bereik zijn de stappen relatief groter dan bovenin. Dit kun je oplossen door de resolutie over het gehele bereik te vergroten, maar je zou het ook kunnen doen door meerdere bereiken te gebruiken, bijvoorbeeld door in het lagere bereik een extra voorschakelweerstand in te zetten, die bij een hogere intensiteit overbrugt wordt. Op die manier zou je wel meer kanalen met dezelfde controller kunnen doen, ten koste van een beetje extra complexiteit en wat extra I/O pinnen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

eindelijk is mijn soldeerstation klaar!

het is een 24v 48W boutje en word aangestuurd via PWM. binnenkant is een beetje rommelig maar daar word nog aan gewerkt.

http://www.foto-uploaden.nl/upload/5d96d3b1dd16aec9b30b5913a703f61f.jpg
http://www.foto-uploaden.nl/upload/6da636f7cb37f8376da045a13b3fa8e7.jpg
http://www.foto-uploaden.nl/upload/bab5a99babbd217311f5bfe5a9f68bc7.jpg
http://www.foto-uploaden.nl/upload/9e3a7cc723a251ee50ac422398a626ce.jpg

[Bericht gewijzigd door Jeroen06 op maandag 20 oktober 2008 13:52:47 (43%)

Op 20 oktober 2008 12:23:34 schreef NaaDje:
[...]
Met een DC van 250 dan zal hij bijna aan zijn.
met een DC van 10 zal hij heel zwak zijn. Echter bij een DC van 11 zal hij een STUK feller zij. Ten opzichte van 250-251. Dit kan wel tot ongeveer 2x zoveel zijn.

Ook zal je merken dat in de range 0-25 ongeveer er gewoon geen licht is. tussen 25-75 zal hij aan gaan tot bijna helemaal aan. Daarna 75-255 is er nog maar amper verschil. Geloof je me niet? Dan zou ik zeggen, test het zelf!

Ik herken dit wel, ik gebruik zelf 256 stappen en in het begin zie je duidelijk verschil, later veel minder.
Wat de oorzaak is vind ik minder belangrijk, dus of dat nu het niet-lineaire gedrag van de LED of mijn ogen is maakt niet uit voor de oplossing.
Ik heb ook al zitten nadenken over een meer logaritmisch verband, maar ik zit met het feit dat ik in 1 cyclus de ene led omhoog laat gaan en de andere omlaag. Moet ik nog even uitpuzzelen dus.

Just find out what you like and let it kill you

Ik heb eindelijk beeld uit mijn camera! Het klopt alleen nog niet echt helemaal :(
Je ziet duidelijk dat rood = groen/blauwig.
In de derde en eerste zie je ook dat rood uitgestrekt is over een lange breedte. Ik weet nog niet precies hoe dit komt echter.
Dat het zo blokkerig is klopt. Ik subsample HEEL erg. Ik lees bayer in, spuug RGB565 uit. Maar ik lees dit:

code:


g r x x x x x x g r x x x x x x g r x x x x x x 
b g x x x x x x b g x x x x x x b g x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
g r x x x x x x g r x x x x x x g r x x x x x x 
b g x x x x x x b g x x x x x x b g x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 
x x x x x x x x x x x x x x x x x x x x x x x x 

Voor een beeld van 640*480. (Ik kan de camera wel 320*240 uit laten spugen, maar dat werkt dan via een window. Wat we niet willen ;-)

Met andere woorden, ik ben op dit moment ERG blij. Heeft me een klein maandje gekost om eindelijk (hetzij raar) beeld te krijgen uit dat rot kreng :P Ik dacht eerst dat hij overleden was :( (was met soldeerbout tegen behuizing v.d. lens gekomen >_<) maar gelukkig lieeftie! :D

Aller eerste beeld:
http://www.uploadarchief.net/files/download/resized/eerstebeeld!.png

Mijn hoofd:
http://www.uploadarchief.net/files/download/resized/nogeenbeeld.png

Weer mijn hand:
http://www.uploadarchief.net/files/download/resized/nogeenbeeld2.png

Ik ben programmeur! geen electronicus! http://www.daantimmer.nl/ Er is een ontwerp! nu nog inhoud :-)
Turbokeu

Golden Member

als je leds gaat PWM'en met een 8-bitsresolutie dan kan je het verschil tussen 0 - 10 onderling heel goed zien.

de hoeveelheid licht die je produceert is keurig linear, dat je ogen/hersenen het anders zien heeft niets met de karaktistiek van de leds te maken.

Het grootste "probleem" is het feit dat ons gezichtsvermogen, net als ons gehoor, niet lineair werkt.

Met een DC van 250 dan zal hij bijna aan zijn.
met een DC van 10 zal hij heel zwak zijn. Echter bij een DC van 11 zal hij een STUK feller zij. Ten opzichte van 250-251. Dit kan wel tot ongeveer 2x zoveel zijn.

Ook zal je merken dat in de range 0-25 ongeveer er gewoon geen licht is. tussen 25-75 zal hij aan gaan tot bijna helemaal aan. Daarna 75-255 is er nog maar amper verschil.

Ik herken dit wel, ik gebruik zelf 256 stappen en in het begin zie je duidelijk verschil, later veel minder.
Wat de oorzaak is vind ik minder belangrijk, dus of dat nu het niet-lineaire gedrag van de LED of mijn ogen is maakt niet uit voor de oplossing.
Ik heb ook al zitten nadenken over een meer logaritmisch verband, maar ik zit met het feit dat ik in 1 cyclus de ene led omhoog laat gaan en de andere omlaag. Moet ik nog even uitpuzzelen dus.

International Rectifier en Microchip, in samenwerking, hebben dit fenomeen al lang uitgepuzzeld (links verwijzen naar de respectievelijke datasheets, IRPLDIM2E en AN809):

http://www.turbokeu.com/myprojects/tl-dimmer/dimcurve.gif

Het menselijk oog is inderdaad niet lineair gevoelig voor lineaire lichtintensiteitsveranderingen.

De samenwerking tussen IRF en Microchip was er voor de ontwikkeling van een Dali ECG (dimbare EVSA met DALI-protocol) op basis van de IR2159 dimming ballast controller en de PIC 16F628 als microcontroller.
In de code van de 16F628 is een 256 byte (8 bit) lookup-table voorzien die de +/- (anti)logaritmische gevoeligheid van het menselijk oog compenseert naar een lineaire waarneming.

Ik heb bovenstaande grafiek (in 2002, toen ik volop bezig was zelf een dimbare EVSA voor TL-buizen en een schakelklok met PIC 16F876 aan het ontwikkelen) via een Excel formule proberen te benaderen.
Dit is zeer redelijk gelukt: link naar Excel sheet
Vanuit deze gegevens heb ik dan de lookup table opgesteld.
De grafiek in de Excel sheet toont de resulterende waarde voor een lineair oplopende teller (PWM counter) en de PWM-uitgang (CCP) van de PIC (waaruit dan de 1-10V voor een 1-10V dimbare EVSA gedistilleerd wordt).

Of het nu LEDs, TL-buizen of gloeilampen betreft, lineaire regeling van de lichtsterkte wordt niet lineair waargenomen door het menselijk oog.
Ik ben volledig akkoord met NaaDje dat 8-bits resolutie te weinig is voor een mooie regeling in het laagste bereik (0-10%), ik ben daarom al enige tijd aan het testen met 10 bits-resolutie (1024 stappen).
Nadeel: lookup table is 1kb groot... (zie je het al aankomen op een PIC? - hint: 256 byte memory banks ;))

BTW: Hint naar CO-leden die met dimbare EVSA's knutselen:
Een dimbaar EVSA reageert lineair op de toegevoerde dimspanning (1-10V) en dus NIET lineair op de waargenomen lichtintensiteit, dus zelfde probleem als hierboven!

I love watching conspiracy theorists use the airtight logic of the argument from incredulity: "Well I don't understand how it works so it can't be real!!!"

Dat doet me een beetje denken aan een paar experimenten die we vroegen op de technische club deden; we hadden toen een RAM chip (in DIP 40 behuizing of zo), waar we het kapje vanaf sloopte, zodat de die bloot kwam te liggen. Dat waren nog van die witte behuizingen met goudkleurige kapjes en zo. Door dan steeds alle bits hoog te maken (dacht ik? of was het andersom?) en na een bepaalde tijd terug te lezen, kregen we er een zwart-wit beeld uit. De bits die dan terug naar 0 waren gevallen, waren belicht. Door de tijd tussen het resetten en uitlezen te variëren, kon je een beetje met de gevoeligheid spelen.

Dan had je dus eerst een bijzonder ingewikkelde lichtsensor gemaakt, en kon je daarna eindelijk gaan prutsen met kleine lensjes om een enigszins herkenbaar beeld te krijgen. Tegelijkertijd was je aan het proberen om, aan de hand van de data, de layout van de die te reverse-engineeren, zodat je uiteindelijk wist welk pixel in het plaatje een bepaald bitje voorstelde. Dit deden we dan door het ding steeds gedeeltelijk te belichten, en dan naar repeterende patronen te zoeken.

Ik moet nog ergens zo'n ding hebben liggen...

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

@Turbokeu: dankjewel, daar kan ik wel wat mee

Just find out what you like and let it kill you

Op 20 oktober 2008 13:51:38 schreef shogun:
eindelijk is mijn soldeerstation klaar!

het is een 24v 48W boutje en word aangestuurd via PWM. binnenkant is een beetje rommelig maar daar word nog aan gewerkt.

Leuk, maar realiseer je je dat die jack-plug waarschijnlijk tijdelijk kortsluiting maakt bij het insteken? Misschien een andere plug overwegen, vanwege het vermogen misschien ook geen gek idee.

If you want to succeed, double your failure rate.

iets wat hier al een hele tijd ligt, maar nooit gepost.
mijn geleidingstester:
http://www.uploadarchief.net/files/download/geleidings_tester.jpg

Theo Dooms: "gezonde nieuwsgierigheid is leerzaam. "

Op 20 oktober 2008 17:41:20 schreef Turbokeu:
Of het nu LEDs, TL-buizen of gloeilampen betreft, lineaire regeling van de lichtsterkte wordt niet lineair waargenomen door het menselijk oog.
Ik ben volledig akkoord met NaaDje dat 8-bits resolutie te weinig is voor een mooie regeling in het laagste bereik (0-10%), ik ben daarom al enige tijd aan het testen met 10 bits-resolutie (1024 stappen).
Nadeel: lookup table is 1kb groot... (zie je het al aankomen op een PIC? - hint: 256 byte memory banks ;))

Die lookup table kan toch gewoon in het flash? Ruimte zat daar.
Zelf ben ik bezig met een dspic33fj12mc201, die heeft 3 pwm kanalen met een resolutie van 16 bit :)

'k heb hier weer een aantal mooie en nuttige projecten voorbij zien komen, goed bezig allemaal!

Zelf heb ik eindelijk mijn twee IW-18 wekkers afgebouwd.
Binnenkort samenwonen, wilde graag een "setje" op de nachtkastjes... :)

Belangrijkste specs:
- HH.MM.SS / HH MM SS / HH-MM-SS tijdweergave
- Display dimbaar vast ingesteld of via LDR
- interne oscillator/50Hz/60Hz, allen met/zonder DCF ontvangst (tijd en dag vd week)
- Tijdcorrectie voor int. oscillator; -10 tot +10 sec per dag
- 2 wektijden met elk eigen dag/dagen (1 dag vd week, ma-vr, za-zo, elke dag)
- Verschillende wekmelodieën
- Alle instellingen worden bewaard in EEPROM

Controllerprint:
http://img241.imageshack.us/img241/9519/crw2537el5.jpg

Controllerprint en displayprint ingebouwd:
http://img241.imageshack.us/img241/6703/crw2624rrf2.jpg

Het setje:
http://img241.imageshack.us/img241/4277/crw2656filteredrzb4.jpg

Achterkant:
http://img241.imageshack.us/img241/2166/crw2658rdp3.jpg

Hart van de klok is een ATMEGA8 op de interne 8MHz RC oscillator. Horlogekristal voor de seconden-timing indien gekozen voor int.osc in het menu, display wordt gemultiplext via een MAX6921.
Schakelende step-down converter voor de voedingsspanning, hier hangt ook de gloei van de buis op (55mA DC). Gelijkgerichte ruwe ingangsspanning wordt via een step-up regelaar (idee van 555-nixievoeding via PWM uitgang AVR) omhoog gebracht naar 35V voor de buis. Hoger leek me niet noodzakelijk. De buis wordt gedimd via de blanking-input van de MAX6921.

De totale schakeling trekt in bedrijf zo'n 65mA bij 12V DC input. Uiteraard komt hier nog wat verlies van de stekkertrafo (AC/AC) bij, maar omdat ik ze beiden met dezelfde stekkertrafo voed, blijft het zaakje redelijk efficiënt. Beide wekkers delen straks ook de DCF ontvanger.

chuckie

Honourable Member

ERGGGG MOOI Buzz.
Respect!!!

Ervaring is de naam voor de som der fouten die we gemaakt hebben--Oscar Wilde

wauw! weinig aan rik z'n woorden toe te voegen!

Vroeger maakte het niet uit welk bier je dronk, maar toen dacht je ook dat alle meisjes hetzelfde waren... © grolsch

Dit topic is gesloten