- 12V Akku mit 280 Ah bauen         
Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte
Ergebnis 31 bis 40 von 47

Thema: 5^3 LED Cube

  1. #31
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.03.2005
    Ort
    gerne in den Bergen
    Alter
    40
    Beiträge
    429
    Anzeige

    Praxistest und DIY Projekte
    Er schaltet einfach zuerst led1 an und dann led2 und dann led1...

    so einfach kann man jede beliebige Kombionation erzeugen!!! Das nennt sich auch Matrik oder multiplexing und das wurde weiter oben geschrieben!!!
    ...wer nicht findet hat nicht gesucht...

  2. #32
    Hi, ich glaube Roboman 93 hat Recht. Habe mal versucht, das hier (sehr primitiv) zu verdeutlichen. Wenn zb LED 1 und gleichzeitig LED b leuchten soll müsste ich Kathodenleitung 1 und 2 und gleichzeitig Anodenleitung lila und grün schalten, dann aber würden auch zusätlich LED a und LED 2 leuchten oder?

    gruß jomu
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken ledcube.jpg  

  3. #33
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.03.2005
    Ort
    gerne in den Bergen
    Alter
    40
    Beiträge
    429
    Nein man lässt die LEDs ja auch nicht gleichzeitig leuchten!!! Sondern nacheinander! Und das wechselt ca 25mal pro Sekunde! Das kann kein Mensch mehr sehen.

    Wenn ihr das Video anschaut, dann seht ihr ja dass es funktioniert!!!

    http://www.mikrocontroller.net/articles/LED-Matrix (War der erste Treffer bei Google!!!!!!)
    ...wer nicht findet hat nicht gesucht...

  4. #34
    Ok, jetzt hab ichs gerafft, Danke

  5. #35
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    30
    Beiträge
    540
    das heißt, wenn man dann so einen "konflikt" hat, weil man nur 2 leds an haben will, schaltet man erst die eine an und dann die andere und das schnell im wechsel, sodass man es als stehendes bild warnimmt. verstehe ich das so richtig?
    ...and always remember...
    ...AVR RULES...

  6. #36
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.03.2005
    Ort
    gerne in den Bergen
    Alter
    40
    Beiträge
    429
    jup genau...

    Hast du diesen Link einmal durchgelesen?

    http://www.mikrocontroller.net/artic...ltiplexbetrieb
    ...wer nicht findet hat nicht gesucht...

  7. #37
    Benutzer Stammmitglied
    Registriert seit
    17.06.2007
    Ort
    Geretsried
    Alter
    34
    Beiträge
    43
    die nächste stufe wäre dann die volle µC frequenz zu nutzen evtl. mit asm und dann noch pwm ein zu bauen.
    viel geht da aber nicht, es gab hier schon mal nen cube (die größe weiß ich nimmer) der hatte nur 5 pwm stufen geschafft
    Gruß datobbs

  8. #38
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    30
    Beiträge
    540
    hab schon von tristate gehört, weiß auch, wie man ein pin high und low schaltet, finde aber net, wie ich den hochohmig(high-z) schalte. kann mir da vl. jemand helfen?

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  9. #39
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    hi Bluesmash,
    schönes Projekt ich habe einen mit nur 3x3x3 LEDs gebastelt. 125 LEDs wahren mir zu viel arbeit aber respekt.
    Könntet du mal den code Posten?

  10. #40
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.04.2005
    Ort
    Aarau
    Alter
    41
    Beiträge
    982
    das kann ich schon machen... aber ich glaube nicht dass fast 1000zeilen code ohne viel Kommentar sehr nützlich ist

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    
    $framesize = 64
    $swstack = 64
    $hwstack = 64
    
    
    Config Timer0 = Timer , Prescale = 256
    On Timer0 Timer_irq
    
    Enable Timer0
    Enable Interrupts
    
    Config Porta = Output
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output
    
    Porta = 255
    Portb = 255
    Portc = 255
    Portd = 255
    
    Dim Ebene1_long As Long At $60
    Dim Ebene1(4) As Byte At $60 Overlay
    
    Dim Ebene2_long As Long At $64
    Dim Ebene2(4) As Byte At $64 Overlay
    
    Dim Ebene3_long As Long At $68
    Dim Ebene3(4) As Byte At $68 Overlay
    
    Dim Ebene4_long As Long At $6c
    Dim Ebene4(4) As Byte At $6c Overlay
    
    Dim Ebene5_long As Long At $70
    Dim Ebene5(4) As Byte At $70 Overlay
    
    
    
    Dim Ebene_seite As Bit
    Dim Ebene As Byte
    Ebene = 1
    
    Dim Temp_byte As Byte
    Dim Wait_ms As Byte
    Dim I As Byte
    Dim J As Byte
    
    
    
    Declare Sub Auf_ab
    Declare Sub Rundherum
    Declare Sub Vorne_hinten
    Declare Sub Rechts_links
    Declare Sub Quadrat
    Declare Sub Scheibe_rotieren
    Declare Sub Tropfen
    Declare Sub Pyramide
    Declare Sub Rotieren_waagrecht
    
    
    Do
    
    Wait_ms = 200
    Gosub Tropfen
    Wait_ms = 200
    Gosub Tropfen
    
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    
    Waitms 1100
    Wait_ms = 50
    Auf_ab                                                      '9
    Waitms 950
    Wait_ms = 50
    Auf_ab
    Waitms 300
    Wait_ms = 50
    Auf_ab
    Waitms 1050
    Wait_ms = 50
    Auf_ab
    
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 1000
    
    Wait_ms = 100                                               '17
    Gosub Rundherum
    Gosub Rundherum
    Wait_ms = 100
    Gosub Scheibe_rotieren                                      '4
    Gosub Scheibe_rotieren
    Gosub Scheibe_rotieren
    Gosub Scheibe_rotieren
    Gosub Scheibe_rotieren
    Gosub Scheibe_rotieren
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 300
    
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    Waitms 300
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    Waitms 300
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    Waitms 300
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    Waitms 300
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    Waitms 300
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 500
    
    
    
    Wait_ms = 100
    Gosub Quadrat
    Wait_ms = 100
    Gosub Quadrat
    Wait_ms = 100
    Gosub Quadrat
    Wait_ms = 100
    Gosub Quadrat
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 500
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    Waitms 300
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    Waitms 300
    
    Wait_ms = 20
    Gosub Auf_ab
    Wait_ms = 20
    Gosub Auf_ab
    Waitms 300
    
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    Waitms 300
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    Waitms 300
    
    Wait_ms = 20
    Gosub Rechts_links
    Wait_ms = 20
    Gosub Rechts_links
    
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 500
    
    Wait_ms = 80
    Gosub Pyramide
    Waitms 200
    Gosub Pyramide
    Waitms 200
    Gosub Pyramide
    Waitms 200
    Gosub Pyramide
    Waitms 200
    
    Ebene1_long = &B00000000000000000000000000000000
    Ebene2_long = &B00000000000000000000000000000000
    Ebene3_long = &B00000000000000000000000000000000
    Ebene4_long = &B00000000000000000000000000000000
    Ebene5_long = &B00000000000000000000000000000000
    Waitms 300
    
    
    
    End
    
    Loop
    
    
    
    Timer_irq:
       Timer0 = 150
    
       Porta = 255
       Portb = 255
       Portc = 255
       Portd = 255
    
    
       Toggle Ebene_seite
    
       If Ebene_seite = 1 Then
    
          If Ebene = 1 Then
             Portb = Not Ebene1(1)
             Temp_byte = Ebene1(2) And &B11111000
             Porta = Not Temp_byte
             Portc = 255
             Portd = 255
             Portd.2 = 0
          End If
    
          If Ebene = 2 Then
             Portb = Not Ebene2(1)
             Temp_byte = Ebene2(2) And &B11111000
             Porta = Not Temp_byte
             Portc = 255
             Portd = 255
             Portd.3 = 0
          End If
    
          If Ebene = 3 Then
             Portb = Not Ebene3(1)
             Temp_byte = Ebene3(2) And &B11111000
             Porta = Not Temp_byte
             Portc = 255
             Portd = 255
             Portd.4 = 0
          End If
    
          If Ebene = 4 Then
             Portb = Not Ebene4(1)
             Temp_byte = Ebene4(2) And &B11111000
             Porta = Not Temp_byte
             Portc = 255
             Portd = 255
             Portd.5 = 0
          End If
    
          If Ebene = 5 Then
             Portb = Not Ebene5(1)
             Temp_byte = Ebene5(2) And &B11111000
             Porta = Not Temp_byte
             Portc = 255
             Portd = 255
             Portd.6 = 0
          End If
    
       End If
    
    
    
    
       If Ebene_seite = 0 Then
    
          If Ebene = 1 Then
            Portb = 255
            Temp_byte = Ebene1(2) And &B00000111
            Porta = Not Temp_byte
            Portc = Not Ebene1(3)
            Temp_byte = Ebene1(4)
            Rotate Temp_byte , Right
            Temp_byte = Temp_byte And &B10000000
            Portd = Not Temp_byte
            Portd.2 = 0
          End If
    
          If Ebene = 2 Then
            Portb = 255
            Temp_byte = Ebene2(2) And &B00000111
            Porta = Not Temp_byte
            Portc = Not Ebene2(3)
            Temp_byte = Ebene2(4)
            Rotate Temp_byte , Right
            Temp_byte = Temp_byte And &B10000000
            Portd = Not Temp_byte
            Portd.3 = 0
          End If
    
          If Ebene = 3 Then
            Portb = 255
            Temp_byte = Ebene3(2) And &B00000111
            Porta = Not Temp_byte
            Portc = Not Ebene3(3)
            Temp_byte = Ebene3(4)
            Rotate Temp_byte , Right
            Temp_byte = Temp_byte And &B10000000
            Portd = Not Temp_byte
            Portd.4 = 0
          End If
    
          If Ebene = 4 Then
            Portb = 255
            Temp_byte = Ebene4(2) And &B00000111
            Porta = Not Temp_byte
            Portc = Not Ebene4(3)
            Temp_byte = Ebene4(4)
            Rotate Temp_byte , Right
            Temp_byte = Temp_byte And &B10000000
            Portd = Not Temp_byte
            Portd.5 = 0
          End If
    
          If Ebene = 5 Then
            Portb = 255
            Temp_byte = Ebene5(2) And &B00000111
            Porta = Not Temp_byte
            Portc = Not Ebene5(3)
            Temp_byte = Ebene5(4)
            Rotate Temp_byte , Right
            Temp_byte = Temp_byte And &B10000000
            Portd = Not Temp_byte
            Portd.6 = 0
          End If
    
    
          Incr Ebene
          If Ebene = 6 Then Ebene = 1
    
       End If
    
    
    Return
    
    Sub Auf_ab
          Ebene1_long = &B11111111111111111111111111111111
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B11111111111111111111111111111111
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B11111111111111111111111111111111
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B11111111111111111111111111111111
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B11111111111111111111111111111111
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B11111111111111111111111111111111
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B11111111111111111111111111111111
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000000000000000000
          Ebene2_long = &B11111111111111111111111111111111
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
          Ebene1_long = &B11111111111111111111111111111111
          Ebene2_long = &B00000000000000000000000000000000
          Ebene3_long = &B00000000000000000000000000000000
          Ebene4_long = &B00000000000000000000000000000000
          Ebene5_long = &B00000000000000000000000000000000
          Waitms Wait_ms
    End Sub
    
    
    
    Sub Rundherum
       Ebene1_long = 1
       Ebene2_long = 1
       Ebene3_long = 1
       Ebene4_long = 1
       Ebene5_long = 1
    
         For I = 1 To 4
            Waitms Wait_ms
            Rotate Ebene1_long , Left
            Rotate Ebene2_long , Left
            Rotate Ebene3_long , Left
            Rotate Ebene4_long , Left
            Rotate Ebene5_long , Left
    
         Next
    
         For I = 1 To 4
             Waitms Wait_ms
            Rotate Ebene1_long , Left , 5
            Rotate Ebene2_long , Left , 5
            Rotate Ebene3_long , Left , 5
            Rotate Ebene4_long , Left , 5
            Rotate Ebene5_long , Left , 5
    
         Next
    
         For I = 1 To 4
            Waitms Wait_ms
            Rotate Ebene1_long , Right
            Rotate Ebene2_long , Right
            Rotate Ebene3_long , Right
            Rotate Ebene4_long , Right
            Rotate Ebene5_long , Right
    
         Next
    
         For I = 1 To 4
            Waitms Wait_ms
            Rotate Ebene1_long , Right , 5
            Rotate Ebene2_long , Right , 5
            Rotate Ebene3_long , Right , 5
            Rotate Ebene4_long , Right , 5
            Rotate Ebene5_long , Right , 5
    
         Next
    End Sub
    
    
    
    Sub Vorne_hinten
    
             Ebene1_long = &B00000000000000000000000000011111
             Ebene2_long = &B00000000000000000000000000011111
             Ebene3_long = &B00000000000000000000000000011111
             Ebene4_long = &B00000000000000000000000000011111
             Ebene5_long = &B00000000000000000000000000011111
          For J = 1 To 4
             Waitms Wait_ms
             Rotate Ebene1_long , Left , 5
             Rotate Ebene2_long , Left , 5
             Rotate Ebene3_long , Left , 5
             Rotate Ebene4_long , Left , 5
             Rotate Ebene5_long , Left , 5
          Next
          For J = 1 To 4
             Waitms Wait_ms
             Rotate Ebene1_long , Right , 5
             Rotate Ebene2_long , Right , 5
             Rotate Ebene3_long , Right , 5
             Rotate Ebene4_long , Right , 5
             Rotate Ebene5_long , Right , 5
          Next
    End Sub
    
    
    
    Sub Rechts_links
             Ebene1_long = &B00000010000100001000010000100001
             Ebene2_long = &B00000010000100001000010000100001
             Ebene3_long = &B00000010000100001000010000100001
             Ebene4_long = &B00000010000100001000010000100001
             Ebene5_long = &B00000010000100001000010000100001
          For J = 1 To 4
             Waitms Wait_ms
             Rotate Ebene1_long , Left , 1
             Rotate Ebene2_long , Left , 1
             Rotate Ebene3_long , Left , 1
             Rotate Ebene4_long , Left , 1
             Rotate Ebene5_long , Left , 1
          Next
          For J = 1 To 4
             Waitms Wait_ms
             Rotate Ebene1_long , Right , 1
             Rotate Ebene2_long , Right , 1
             Rotate Ebene3_long , Right , 1
             Rotate Ebene4_long , Right , 1
             Rotate Ebene5_long , Right , 1
          Next
    End Sub
    
    
    
    Sub Quadrat
             Ebene1_long = &B00000000000000000000000001100011
             Ebene2_long = &B00000000000000000000000001100011
             Ebene3_long = &B00000000000000000000000000000000
             Ebene4_long = &B00000001100011000000000000000000
             Ebene5_long = &B00000001100011000000000000000000
          For J = 1 To 3
             Waitms Wait_ms
             Rotate Ebene1_long , Left , 1
             Rotate Ebene2_long , Left , 1
             Rotate Ebene3_long , Left , 1
             Rotate Ebene4_long , Right , 1
             Rotate Ebene5_long , Right , 1
          Next
          For J = 1 To 3
             Waitms Wait_ms
             Rotate Ebene1_long , Left , 5
             Rotate Ebene2_long , Left , 5
             Rotate Ebene3_long , Left , 5
             Rotate Ebene4_long , Right , 5
             Rotate Ebene5_long , Right , 5
          Next
          For J = 1 To 3
             Waitms Wait_ms
             Rotate Ebene1_long , Right , 1
             Rotate Ebene2_long , Right , 1
             Rotate Ebene3_long , Right , 1
             Rotate Ebene4_long , Left , 1
             Rotate Ebene5_long , Left , 1
          Next
          For J = 1 To 3
             Waitms Wait_ms
             Rotate Ebene1_long , Right , 5
             Rotate Ebene2_long , Right , 5
             Rotate Ebene3_long , Right , 5
             Rotate Ebene4_long , Left , 5
             Rotate Ebene5_long , Left , 5
          Next
    End Sub
    
    
    
    Sub Scheibe_rotieren
          Ebene1_long = &B00000000010000100001000010000100
          Ebene2_long = &B00000000010000100001000010000100
          Ebene3_long = &B00000000010000100001000010000100
          Ebene4_long = &B00000000010000100001000010000100
          Ebene5_long = &B00000000010000100001000010000100
          Waitms Wait_ms
          Ebene1_long = &B00000000000100010001000100010000
          Ebene2_long = &B00000000000100010001000100010000
          Ebene3_long = &B00000000000100010001000100010000
          Ebene4_long = &B00000000000100010001000100010000
          Ebene5_long = &B00000000000100010001000100010000
          Waitms Wait_ms
          Ebene1_long = &B00000000000000000111110000000000
          Ebene2_long = &B00000000000000000111110000000000
          Ebene3_long = &B00000000000000000111110000000000
          Ebene4_long = &B00000000000000000111110000000000
          Ebene5_long = &B00000000000000000111110000000000
          Waitms Wait_ms
          Ebene1_long = &B00000001000001000001000001000001
          Ebene2_long = &B00000001000001000001000001000001
          Ebene3_long = &B00000001000001000001000001000001
          Ebene4_long = &B00000001000001000001000001000001
          Ebene5_long = &B00000001000001000001000001000001
          Waitms Wait_ms
    End Sub
    gruss Bluesmash

    --edit--
    habe ein paar subroutinen gelöscht da mann leider nicht mehr als 20'000 zeichen posten kann...

Seite 4 von 5 ErsteErste ... 2345 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests