hoi,

Ik ben op zoek naar een simpelle software waarmee je een rgb led kan faden door zijn kleuren en kan laten stoppen wanneer jij dat wil. Zelf zat ik te denken aan een compacte pic. 1 ingang voor een knop en 3 uitgangen voor R G B.

Na een tijd zoeken op internet kan ik geen code vinden waarmee je een rgb led door zijn kleuren kunt laten lopen. Dat dus alle kleuren een keer aan de beurt komen. Als je op de knop drukt wil ik dat hij op die plaats blijft hangen in zn programma.

kan ik als pic de 10F200 deze
nemen? en weet iemand codes om door de kleuren te lopen.

alvast bedankt

Er was iemand op CO die daarmee bezig was...
Ik weet niet meer wie. Elmowww misschien?

Waarom schrijf je zelf niet een stukje ;-)

Ik ben er zelf ook mee bezig maar dat kan nog wel even
duren...

bekijk deze is met een beetje aanpassen moet hij kunnen wat je wilt.

Op 1 november 2005 07:24:17 schreef Rickzz:
Ik ben er zelf ook mee bezig maar dat kan nog wel even
duren...

bekijk deze is met een beetje aanpassen moet hij kunnen wat je wilt.

jep die had ik al gezien en bestudeerd... maar ik kan echt niet een goede code eruit pakke om alleen het faden te krijgen. Ik kan zelf wel een stukje schrijven maar zou geen formule weten zodat je alle kleuren kunt krijgen.

ik ben hier ook mee bezig. als ik wat verder kom zal ik wel wat posten

Goed iik heb hem geladen in mn pic en ik zie dat er inderdaad een maffe code inzit. ik krijg die eeprom waardes die het programma bepalen wel wat veranderd. ik denk dat ik hier wel uit kan komen

Ik ken geen PIC-assembly (doe het zelf met AVRs) maar het stukje code om gegeven drie waardes, drie pinnen met PWM aan te sturen is retesimpel: Je zet een timer-interrupt die de volgende code 25.000 keer per seconde (of sneller) aanroept.

(Pseudo-code)

load bits <- 0
load accumulator <- timer
add accumulator, rood-waarde ; Geeft carry bij overflow
shift-left-met-carry bits ; Carry in de bits
add accumulator, groen-waarde
shift-left-met-carry bits
add accumulator, blauw-waarde
shift-left-met-carry bits
output poort <- bits
increase timer
return-from-interrupt

Het werkt als volgt: Hoe groter een waarde is, hoe vaker er een overflow (en dus een carry) is bij de optelling. Aangezien 'timer' alle mogelijke waardes aanneemt, zal er X van de 256 keer een carry zijn. Het leuke is dat dat op verschillende momenten gebeurt voor de rood, groen en blauw. (Als je 'compare' gebruikt, zouden ze tegelijk aan gaan en dan op verschilende momenten weer uit. Op deze manier is de gebruikte spanning veel egaler.)

Ik hoop dat dit te snappen is ? Je kunt het evt. ook in een loopje doen, maar dat is voor 3 waardes niet de moeite. (Ik gebruik dezelfde code voor 5 RGBs tegelijk, die op 2 out-poorten zitten. Ook zonder loop. Voor de snelheid.)