- Offizieller Beitrag
Hei Leute,
habe vor ein 3x3x3 LED Cube zu basteln und wollte euch mal präsentieren, was ich bisher habe und woran es noch hapert.
Habe bisher diesen Schaltplan im Internet gefunden. Sowie folgenden Code:
#!/usr/bin/env/python3.2
# 3x3 LED Cube
# Position 11 - 33 are connected to LED Cathode (-)
# Layers are connected to LED Anode (+)
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BOARD)
# Use physical pin numbering
GPIO.setup(7, GPIO.OUT) # Position 11
GPIO.setup(5, GPIO.OUT) # Position 12
GPIO.setup(3, GPIO.OUT) # Position 13
GPIO.setup(11, GPIO.OUT) # Position 21
GPIO.setup(13, GPIO.OUT) # Position 22
GPIO.setup(15, GPIO.OUT) # Position 23
GPIO.setup(19, GPIO.OUT) # Position 31
GPIO.setup(21, GPIO.OUT) # Position 32
GPIO.setup(23, GPIO.OUT) # Position 33
GPIO.setup(22, GPIO.OUT) # Position Top Layer
GPIO.setup(24, GPIO.OUT) # Position Middle Layer
GPIO.setup(26, GPIO.OUT) # Position Bottom Layer
delay = 0.05
def bottom():
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
GPIO.output(22, True)
GPIO.output(24, True)
GPIO.output(26, False)
def middle():
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
GPIO.output(22, True)
GPIO.output(24, False)
GPIO.output(26, True)
def top():
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
GPIO.output(22, False)
GPIO.output(24, True)
GPIO.output(26, True)
def allOff():
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
GPIO.output(22, False)
GPIO.output(24, False)
GPIO.output(26, False)
def layerOn():
GPIO.output(7, True)
GPIO.output(5, True)
GPIO.output(3, True)
GPIO.output(11, True)
GPIO.output(13, True)
GPIO.output(15, True)
GPIO.output(19, True)
GPIO.output(21, True)
GPIO.output(23, True)
# Main program
try:
print('Press CTRL+C to stop script')
i = 0
while(i < 3):
bottom()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
middle()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
top()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
middle()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
bottom()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
middle()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
top()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
allOff()
i = i + 1
#sleep(1)
i = 0
while(i < 3):
bottom()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
middle()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
top()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
middle()
GPIO.output(7, True)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, True)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, True)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, True)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, True)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, True)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
i = i + 1
i = 0
while(i < 3):
bottom()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
middle()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
top()
GPIO.output(7, False)
GPIO.output(5, False)
GPIO.output(3, False)
GPIO.output(11, False)
GPIO.output(13, True)
GPIO.output(15, False)
GPIO.output(19, False)
GPIO.output(21, False)
GPIO.output(23, False)
sleep(delay)
sleep(delay)
GPIO.output(7, True)
GPIO.output(5, True)
GPIO.output(3, True)
GPIO.output(11, True)
GPIO.output(13, True)
GPIO.output(15, True)
GPIO.output(19, True)
GPIO.output(21, True)
GPIO.output(23, True)
sleep(delay)
sleep(delay)
middle()
GPIO.output(7, True)
GPIO.output(5, True)
GPIO.output(3, True)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, True)
GPIO.output(21, True)
GPIO.output(23, True)
sleep(delay)
sleep(delay)
bottom()
GPIO.output(7, True)
GPIO.output(5, True)
GPIO.output(3, True)
GPIO.output(11, True)
GPIO.output(13, False)
GPIO.output(15, True)
GPIO.output(19, True)
GPIO.output(21, True)
GPIO.output(23, True)
sleep(delay)
sleep(delay)
allOff()
i = i + 1
except KeyboardInterrupt:
GPIO.cleanup()
finally:
GPIO.cleanup()
Alles anzeigen
Jedoch ist mir noch einiges unklar!
Ich benötige 27 Leds, sowie 27 Widerstände.
Bei 9 Säulen und 3 Ebenen brauchen wir also 12 Ausgänge am Pi, richtig?
- Habe diese LEDs im 100 Pack gefunden, gehen die?
- Welche Widerstände benötige ich?
- Ist es überhaupt möglich alle LEDs einzeln direkt an den Pi zu hängen,
ohne das dieser Schaden davon trägt?
- Ist der Code korrekt, bzw. die Pinbelegung? Das macht für mich bisher
leider wenig Sinn. Im Code steht Belegung nach Board. Also von 1 - 26
einfach durch? Weil im Schaltplan geht jeweils ein Anschluss auf jeder
Ebene weg (Minus), oder sehe ich das falsch? Und Plus bekommen die
LEDs durch die Säulen, richtig? Weil oben im Code sind Pin 22, 24 und
26 für die Ebenen angegeben. Aber im Schaltplan 7, 8, 25. Da komme
ich durcheinander.
Ich hoffe ihr könnt mir helfen. Werde, wenn ich selber erst mal alles verstanden habe und das Ding gebaut ist ein Tutorial in diesem Forum erstellen. Ist doch selbstverständlich
Also freue mich über jede Hilfe!!