PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 5^3 LED Cube



Bluesmash
15.05.2008, 22:00
Hallo Zusammen

Wieder einmal etwas neues von mir :)

Eckdaten:
- 125 Blaue LED's
- Mega32
- 5 Transistoren (einer pro Ebene)

Die LED's werden per Multiplex angesteuert und direkt vom Mega getrieben. Um ihn nicht zu überfordern wird immer nur die Hälfte einer Ebene gleichzeitig eingeschaltet und die Ebenen über je einen Transistor gespiesen.

Hier ein paar Bilder:

http://s2.directupload.net/images/080515/temp/7ope7agu.jpg (http://s2.directupload.net/file/d/1430/7ope7agu_jpg.htm)


http://s4.directupload.net/images/080515/temp/8l4ceeri.jpg (http://s4.directupload.net/file/d/1430/8l4ceeri_jpg.htm)


http://s6.directupload.net/images/080515/temp/p3yrhj2f.jpg (http://s6.directupload.net/file/d/1430/p3yrhj2f_jpg.htm)



Und ein kleines Video (leider lässt die Qualität ein bisschen zu wünschen übrig):

http://de.youtube.com/watch?v=BuJ_DFlm6c0


gruss BlueSmash

rideyourstyle
15.05.2008, 22:44
Ich finde das super. Als ich die Bilder sah, dachte ich, na gut aber was kann man damit anstellen?
Aber als ich das Video sah hat sich meine Meinung ins noch positivere gewendet. So ein Ding muss ich mir auch einmal basteln!

Lemonsquash
16.05.2008, 08:00
Ziemlich cool :)

Magst du mal genauer beschreiben wie du das Multiplexing bewerkstelligst?
(Nen Multiplex-Treiber seh ich jetzt nicht auf deinen Fotos, oder?)

Mfg.
Lemon

hosti
16.05.2008, 08:08
Faszinierend. Wirklich sehr schön gemacht. =D>

Andree-HB
16.05.2008, 08:11
...sieht auch schön gelötet aus - tolle Arbeit !

Hessibaby
16.05.2008, 10:09
Nettes Projekt, hast Du schon eine akustische Ansteuerung dran ?
Großes Lob.

Gruß

Cairol
16.05.2008, 16:09
Die Idee ist klasse!
Im großen Maßstab könnte man sowas als 3D-Reklametafel einsetzen.

Diese Multiplex-Geschichte interessiert mich jetzt aber auch...

Gruß, Cairol

Bluesmash
16.05.2008, 16:20
@Lemonsquash
Multiplexing:

jede spalte (5 LED's übereinander) ist an einem Port des Mega32 angeschlossen und schaltet gegen gnd, insgesamt 25. auf den fotos sieht man auch die widerstände am boden, für jede spalte einen.
Die 5 Transistoren schalten die spannung auf je eine Ebene.

Im programm wird dann die 1. ebene eingeschaltet und danach die ports für die gewünschten leds der 1. ebene. danach wird die 2. ebene eingeschaltet und die ports für die led's der 2. ebene usw....

@Hessibaby: nein bis jetzt noch nicht... hab aber auch nur noch 2 ports frei ;) ich habe mir mal die 2 der uart schnittstelle freigehalten...


ToDO:
- dunkel getönte plexiglashaube damit man die led's im innern nur sieht wenn sie leuchten...
- Led's mattieren...

hat jemand eventuell noch eine idee wie ich die leds matt bekomme, damit sie schöner leuchten? ich habe mal mit mattem klarlackspray probiert, dieser wird aber nach dem trocknen völlig durchsichtig und man sieht nichts mehr vom spray... :(

Andree-HB
16.05.2008, 17:18
wie ich die leds matt bekomme


...vielleicht mal versuchsweise in kunststoffangreifende Lösungsmittel tauchen ?

Bluesmash
16.05.2008, 17:27
gute idee! muss ich mal versuchen... da muss ich aber zuerst was auftreiben... was währe den empfelenswert?

kelli
16.05.2008, 17:40
Ich würde es mal mit aceton probieren! (Unsere Ätzanlage im geschäft ist jedenfalls schön matt seit sie irgendein Trottel mit Aceton geputzt hat).

Habt ihr das schon gesehen: http://de.youtube.com/watch?v=Aj3_v7xCyJ0&NR=1 Das ist ja mal krass!

TheHawk
16.05.2008, 18:07
gebt euch mal das: http://de.youtube.com/watch?v=oLygWkHo9nw&feature=related

rideyourstyle
17.05.2008, 10:39
Hey, damit könnte man ein 3D-Snake Game programmieren... Ich denke, wenn ich einmal zuviel Zeit habe, werde ich mir auch so ein Cube bauen... oder eine Pyramide.
Der 3D Globus ist eigentlich eine Art Propeller-Display. Einfach gedreht und gebogen.

Meine Fahrradspeiche wollte ich auch mal mit einem "display" austatten. Quasi eine stehende Schrift in dehendem Rad

dremler
17.05.2008, 12:13
mir is auch di idee gekommen..also ein spiel....man könnte ein sehr kompliziertes tetris spiel programmieren...;)

PredKirK
17.05.2008, 12:41
also nen 3d tetris und das ganze mit nem wii controler wäre schon sehr nice

rideyourstyle
17.05.2008, 12:44
Hey 3D-Tetris habe ich schon auf einem Dos-System gespielt. Das Programm müsste noch irgendwo auf 5.25er Diskette rumliegen... ;-)

Murus
18.05.2008, 10:14
Sehr schön gemacht!

Das hier:

http://de.youtube.com/watch?v=7toXDJZfxug&feature=related

Hängt bei uns im Zürcher Hauptbahnhof.... und sieht auch arschgeil aus :)

Details:
http://www.scs.ch/fileadmin/factsheets/Factsheet_Nova_d_web.pdf

Bluesmash
18.05.2008, 11:33
wo im bahnhof hängt das? muss ich bei gelegenheit unbedingt mal in real anschauen :)

gruss bluesmash

Murus
18.05.2008, 11:57
Im Erdgeschoss, beim Treffpunkt/der grossen Uhr, sozusagen vis-à-vis vom Federal, in Richtung Geleise verschoben :)

listner
18.05.2008, 12:53
Hi .. top der 5^3 sieht hammer aus..
hab mich gleich mal daran gemacht auch einen zu bauen. der Würfel an sich steht schon. und das mit dem Multipley funktioniert einwandfrei. eine superidee, wobei ich schon mehrere solcher würfel in youtube gesehen habe. hier mal ein video tut: http://de.youtube.com/watch?v=lFDcdN47V5s&feature=related

ich habe meine ansteuerung jedoch anders vor wie in dem tut zu sehen ist.. nämlich auch über n atmega.. muss mich aber erstmal mit der materie der µC beschäftigen.. naja. ansich der blaue würfel sieht ja schon ganz cool aus =)

greezZ

Michael 123
18.05.2008, 17:48
Hallo,

schaut mal richtig gut aus und nicht so wie bei mir: Da nen dicker Lötbazel, da nur zusammengedrillte Drate.
Mich würde auch interessieren, wie du das mit dem Multiplexing gemacht hast, denn ich suche immernoch nach einer möglichkeit das mit insgesammt 400Leds zu machen, die aber dann nicht mehr ein Würfel sind sondern mehr oder weniger quer über meine Modellbahnanlage verteilt sin.

mfg
Michael

listner
18.05.2008, 19:02
das mit dem Multiplexing ist ganz easy und brilliant!!
nehmen wir an du hast 125 leds

du must von jeweils 25 die kathoden verbinden also hättest du fünf 25er pakete.. also hättest du 5 kathoden pakete

von jedem packet must du eine led nehmen und die anode zusammen löten.. also hättest du im endefekt 25 anoden leitungen

im endefekt hast du 30 leitungen zum schalten der leds. mit denen du jede led wenn du möchtest einzeln ansteuern kannst

du must lediglich die richtigen kombinationen der anoden und kathoden leitungen anstueren . und schon leuchten die leds .. ganz easy


hoffe ich konte helfen

Michael 123
18.05.2008, 19:14
Hallo,

das habe ich kapiert. Aber wie sieht das jetzt im Programm aus. Was ist die Ideale Frequen? Wie muss ich die Vorwiderstände dimensionieren?
Des sind alle noch offene Fragen.

mfg
Michael

BlackDevil
18.05.2008, 20:05
Sehr geil! Das' auch sowas was ich mal bauen will

Roboman93
19.05.2008, 18:41
aber man kann mit der technik nicht alle kombinationen erreichen. so wie ich das verstanden habe, haste die kathoden von jeder ebene und die anoden von jeder spalte verbunden, oder?

MfG roboman

BlackDevil
19.05.2008, 18:45
Ich denke er hat es als Matrix aufgebaut, oder?

djdune
19.05.2008, 18:47
Eigentlich sollte es möglich sein, alle Musterkombinationen darstellen zu können. Das Auge ist viel langsamer als der µC und durch geschicktes Ansteuern kann alles anzeigen lassen, ohne dass man es sichtlich merkt.

Bluesmash
19.05.2008, 20:26
hallo

klar, jede mögliche kombination der led's ist möglich.
die leds werden mit ca. 25 bildern/sekunde aktualisiert...

gruss bluesmash

Brantiko
20.05.2008, 00:26
Du kannst auf die LEDs abgeschnitte und aufgebohrte Stücke von Heisskleber drauf stecken. Dann leuchtet das ganze Stück.
Wie und womit ist das programmiert?
Stelle mir das mit If-Then-Else sehr nervig vor.

Gruss

Alex

Roboman93
20.05.2008, 17:34
haste ein plan von der sache, also wo man erkennen kann, wie die verlötet sind. ich denke, wenn du 2 leds anhaben willst, die auf 2 versch ebenen liegen, schaltest du beide ebenen an. dann noch die spalten, in denen die leds liegen. aber dann leuchten doch 4 leds und nicht nur die gewollten 2, oder.

rideyourstyle
20.05.2008, 18:10
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!!!

jomu
20.05.2008, 18:36
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

rideyourstyle
20.05.2008, 18:43
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!!!!!!)

jomu
20.05.2008, 18:51
Ok, jetzt hab ichs gerafft, Danke

Roboman93
21.05.2008, 17:14
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?

rideyourstyle
21.05.2008, 18:21
jup genau...

Hast du diesen Link einmal durchgelesen?

http://www.mikrocontroller.net/articles/LED-Matrix#Multiplexbetrieb

datobbs
31.05.2008, 07:24
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

Roboman93
10.06.2008, 17:29
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

mycroc
11.06.2008, 16:11
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?

Bluesmash
11.06.2008, 17:51
das kann ich schon machen... aber ich glaube nicht dass fast 1000zeilen code ohne viel Kommentar sehr nützlich ist ;)



$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...

Bluesmash
11.06.2008, 17:58
Für die generierung der Muster habe ich mir (bitte nicht lachen) eine Excel Tabelle erstellt einfach die gewünschten LED's mit gelber Farbe füllen und das Muster wird generiert und kann in den Code kopiert werden...


gruss Bluesmash

fellanx
14.06.2008, 21:36
der würzel ist ja sau geil! ist es möglich davon eine genaue bauanleitung zu machen, die auch leute verstehen, die von sowas keine ahnung haben? wäre auf jedenfall cool

Roboman93
14.06.2008, 21:41
kann mir keiner bei meiner frage helfen?

Timebeast
16.06.2008, 01:05
@Roboman93:
Klar, ist nur nen bischen offtopic, nunja, einfach den den Ausgang auf Eingang schalten (natürlich ohne Pullup) schon isser Tristate, sprich hochohmig... steht glaub ich auch so im Datenblatt...

Gruß
Ralf

jackooo
16.06.2008, 11:25
welche spezifischen fragen hast du?

Timebeast
16.06.2008, 12:35
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

Hatte er doch... und beantwortet isses auch schon :-s

P.S.:Steht im übrigen im Datenblatt unter "Ports as General Digital I/O"

holcapone
10.10.2008, 13:01
Um die LEDs diffus zu bekommen,
schneide man ca. 3 cm von einer Klebstoffstange (für Klebepistolen) ab, bohre eine passendes Loch und stecke das Stück auf die LED.
Schon hast du einen diffusen Leuchtkörper.
Habe ich mal in einem youtube-video gesehen und auch schon ausprobiert.
Hatte eine klare REG-LED und wollte weißes Licht, aber man hat so die einzelnen Farben gesehen. Das DIng drauf und sie haben sich gemischt und ich nen weißen Leuchtkörper.

Hier: http://www.das-labor.org/wiki/Bild:Borg3dColor-1.jpg