Hoe maak je een nagloeieffect met JAL voor PIC16F628?
Deze code werkt zonder nagloei effect.
Hoe maak je zoiets?
Dit video komt van iemand die ik gevonden hebt.
Zo'n effect wil ik dus maken.
Huidige code:
include 16f628_20
include jlib
-- pin richting: b3 b2 b1 b0 b4 b6 a0 a1
pin_b3_direction = output
pin_b2_direction = output
pin_b1_direction = output
pin_b0_direction = output
pin_b4_direction = output
pin_b6_direction = output
pin_a0_direction = output
pin_a1_direction = output
pin_a3_direction = input
pin_a4_direction = input
pin_b3 = low
pin_b2 = low
pin_b1 = low
pin_b0 = low
pin_b4 = low
pin_b6 = low
pin_a0 = low
pin_a1 = low
var byte x = 1
procedure delay is delay_20ms(x)
end procedure
delay_100ms
var byte n = 0
forever loop
if pin_a3 == low then -- drukschakelaar voor LED's langzamer te laten gaan
x = x + 1
end if
if pin_a4 == low then -- drukschakelaar voor LED's sneller te laten gaan
x = x - 1
end if
delay
n = n + 1
if n > 18 then n = 5 end if
pin_b3 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 5 )
pin_b2 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 6 ) | ( n == 18 )
pin_b1 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 7 ) | ( n == 17 )
pin_b0 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 8 ) | ( n == 16 )
pin_b4 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 9 ) | ( n == 15 )
pin_b6 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 10 ) | ( n == 14 )
pin_a0 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 11 ) | ( n == 13 )
pin_a1 = ( n == 0 ) | ( n == 1 ) | ( n == 2 ) | ( n == 3 ) | ( n == 4 ) | ( n == 12 )
end loop
je zet dan op elke led een pwm signaal.
als de led uit is zet je de duty cycle op 0%
vol aan is dutycycle 100%
Je krijgt dan per led
0 0 25 50 75 100 0 0
en de volgende run
0 0 0 25 50 75 100 0
enz
Hoe je dit in JAL doet weet ik niet helaas.
Maar mischien dat je toch wat met deze info kan.
Probeer eerst eens een PWM signaal op led 1.
Als dat lukt doe je 2 verschillende PWM's op led 1 en 2
als dat lukt leg ik de rest wel uit.