Knight Rider LED Scanner KITT 2008

Anleitungen für "hausgemachte" LED Projekte

Moderator: T.Hoffmann

Antworten
Benutzeravatar
amiarts
Mega-User
Mega-User
Beiträge: 315
Registriert: Mi, 23.08.06, 12:08
Wohnort: Dresden
Kontaktdaten:

So, 09.01.11, 01:18

Hi Leute,

ich hab mal wieder etwas gebastelt und durch die Inspiration der neuen Knight Rider Serie, die mit dem schicken Shelby Mustang als KITT an den Start ging, musste ich den Scanner nachbauen.

Genommen habe ich einen Microchip PIC16F628A, der über je einen Widerstand zwei parallel geschaltete LEDs mit einer Pulsweitenmodulation ansteuert. Insgesamt sind 2 x 15 LEDs verbaut, die den Effekt schon ganz gut darstellen. Das Programm ist in Proton Picbasic geschrieben. Unter http://www.youtube.com/watch?v=l2xmKw5uy94 findet Ihr ein Video.

Gruß René

Code: Alles auswählen

DEVICE = 16F628
XTAL = 4
Config INTRC_OSC_NOCLKOUT, WDT_OFF, MCLRE_OFF, PWRTE_ON, BODEN_OFF, LVP_OFF
TRISA = %00000000 
TRISB = %00000000
ALL_DIGITAL TRUE 
porta = 0
portB = %00010000
'************************************************* ***************

Symbol led1  = PORTB.0
Symbol led2  = PORTB.1
Symbol led3  = PORTB.2
Symbol led4  = PORTB.3
Symbol led5  = PORTB.4
Symbol led6  = PORTB.5
Symbol led7  = PORTB.6
Symbol led8  = PORTB.7
Symbol led9  = PORTa.0
Symbol led10 = PORTa.1
Symbol led11 = PORTa.2
Symbol led12 = PORTa.3
Symbol led13 = PORTa.4
Symbol led14 = PORTa.6
Symbol led15 = PORTa.7

'************************************************* *************** 
Dim index      As Byte
dim st         as byte
dim i          as byte
Dim LedPWM[16] As Byte
'************************************************* ***************

Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Start:
    for st=0 to 44
        restore st
        for i=1 to 15
            read ledpwm[i]
        next i
        for i=0 to 10
            gosub pwm_lus
        next
    next st
    for st=0 to 44
        restore 44 - st
        for i=1 to 15
            read ledpwm[i]
        next i
        for i=0 to 10
            gosub pwm_lus
        next
    next st
    delayms 1000
goto start

'************************************************* ***************
PWM_lus:
    For index = 0 To 20
        If ledpwm[1] > index Then
            High led1
        Else
            Low led1
        EndIf
        If ledpwm[2] > index Then
            High led2
        Else
            Low led2
        EndIf
        If ledpwm[3] > index Then
            High led3
        Else
            Low led3
        EndIf 
        If ledpwm[4] > index Then
            High led4
        Else
            Low led4
        EndIf
        If ledpwm[5] > index Then
            High led5
        Else
            Low led5
        EndIf
        If ledpwm[6] > index Then
            High led6
        Else
            Low led6
        EndIf 
        If ledpwm[7] > index Then
            High led7
        Else
            Low led7
        EndIf 
        If ledpwm[8] > index Then
            High led8
        Else
            Low led8
        EndIf 
        If ledpwm[9] > index Then
            High led9
        Else
            Low led9
        EndIf 
        If ledpwm[10] > index Then
            High led10
        Else
            Low led10
        EndIf 
        If ledpwm[11] > index Then
            High led11
        Else
            Low led11
        EndIf 
        If ledpwm[12] > index Then
            High led12
        Else
            Low led12
        EndIf 
        If ledpwm[13] > index Then
            low led13
        Else
            high led13
        EndIf 
        If ledpwm[14] > index Then
            High led14
        Else
            Low led14
        EndIf 
        If ledpwm[15] > index Then
            High led15
        Else
            Low led15
        EndIf 
    Next 
Return 

End
Dateianhänge
Knight Rider.jpg
100_1816.jpg
der_root
User
User
Beiträge: 24
Registriert: Fr, 24.09.10, 21:04

So, 09.01.11, 01:50

Top! Jetz noch vorne in den Kühlergrill vom Auto einbauen und nicht erwischen lassen :mrgreen:

Aber schade, dass man in dem Video nicht richtig sehen kann, wie die LEDs heller und dunkler werden, die scheinen eig nur an oder aus.
Benutzeravatar
amiarts
Mega-User
Mega-User
Beiträge: 315
Registriert: Mi, 23.08.06, 12:08
Wohnort: Dresden
Kontaktdaten:

So, 09.01.11, 02:21

Danke, ich muss das mal mit einer richtigen Kamera filmen. Im Foto sieht man es schon etwas besser.

Gruß René
Eloi_SK
Mini-User
Beiträge: 2
Registriert: Sa, 16.06.12, 00:46

Sa, 16.06.12, 01:00

Hallo,
Als erstes habe ich für die Wiederbelebung eines alten Thread entschuldigen ...
Sorry für die deutsche, die schreiben, ich bin Brasilianer und ich bin mit Google Translate. :oops:

Meine Frage ist, warum die LED 3 und LED 28 sind nach hinten?
Vielen Dank im Voraus!
Eloi
Benutzeravatar
amiarts
Mega-User
Mega-User
Beiträge: 315
Registriert: Mi, 23.08.06, 12:08
Wohnort: Dresden
Kontaktdaten:

Sa, 16.06.12, 12:33

Weil der Pin3 (RA4) beim PIC16F628 ein Open Drain ist und nur gegen Masse geschaltet werden kann. Er kann keine Spannung liefern.

Gruß René
Eloi_SK
Mini-User
Beiträge: 2
Registriert: Sa, 16.06.12, 00:46

So, 17.06.12, 22:44

Danke für die Erklärung.
Ich versuche, den Code in C neu zu schreiben, nicht nur weil ich eine Sequenz erstellt werden soll, sondern zwei und verstehen nicht viel von BASIC. :D
Gruß Eloi
Antworten