Hi Leute, ich besitze seid heute das Sainsmart Mega 2560 (baugleich
arduino mega 2560)
Problem ist das das montierte lcd keypad shield i-wann einfach aus geht
ohne mein zutun
und ich weiß einfach nicht woran es liegt, damit sollen später mal rund
288 Leds gesteuert werden und das Display ist halt zur Auswahl da usw
und muss definitiv an bleiben, selbst ein Knopfdruck bringts nicht
wieder
zum leuchten
maik m. schrieb:> Hi Leute, ich besitze seid heute das Sainsmart Mega 2560 (baugleich> arduino mega 2560)>> Problem ist das das montierte lcd keypad shield i-wann einfach aus geht> ohne mein zutun>> und ich weiß einfach nicht woran es liegt, damit sollen später mal rund> 288 Leds gesteuert werden und das Display ist halt zur Auswahl da usw> und muss definitiv an bleiben, selbst ein Knopfdruck bringts nicht> wieder> zum leuchten
Verstehe ich das richtig:
Du hast das Sainsmart Mega 2560 mit montiertem lcd keypad shield.
Da ist das lcd i-wie und i-wann ausgegangen. d.h. es war an und du hast
nichts gemacht. Weder eingeschaltet noch ausgeschaltet, weder ist ein
Programm auf dem Mega 2560 noch hast du da eins draufgeflashed, weder
... noch ... Echt tragisch. Wenn es jetzt nicht mehr an geht, ist es
kaputt.
Oooch schrieb:> Weder eingeschaltet noch ausgeschaltet, weder ist ein> Programm auf dem Mega 2560 noch hast du da eins draufgeflashed, weder> ... noch ... Echt tragisch. Wenn es jetzt nicht mehr an geht, ist es> kaputt.
wenn man schon klugscheißen muss, sollte man auch alles lesen ;)
Chefentwickler schrieb:> Programmier es besser in echtem C!
ICH habs ja garnicht Programmiert, es sollte so 1:1 laufen.. nur das
Display geht halt aus als würde die Spannung zb zusammenbrechen :(
wenn ich aber den SD Reader ab lasse, dann bleibts an (evtl weil er so
auch nicht fertig läd da es nen Fehler gibt)
Was muss man sich unter 'es geht aus' vorstellen?
geht die Hintergrundbeleuchtung aus oder zeigt das LCD nur mehr die
normale Hintergrundfarbe ohne Zeichen drauf?
Karl Heinz schrieb:> Was muss man sich unter 'es geht aus' vorstellen?>> geht die Hintergrundbeleuchtung aus oder zeigt das LCD nur mehr die> normale Hintergrundfarbe ohne Zeichen drauf?
man kann sagen das es immer dunkler wird bis es aus geht, als würde man
den saft abdrehen, bis zur initialisierung des sd Readers gehts und ab
dann gehts langsam aus, buchstaben werden schwächer und dann is ende
maik m. schrieb:> Karl Heinz schrieb:>> Was muss man sich unter 'es geht aus' vorstellen?>>>> geht die Hintergrundbeleuchtung aus oder zeigt das LCD nur mehr die>> normale Hintergrundfarbe ohne Zeichen drauf?>> man kann sagen das es immer dunkler wird bis es aus geht, als würde man> den saft abdrehen, bis zur initialisierung des sd Readers gehts und ab> dann gehts langsam aus, buchstaben werden schwächer und dann is ende
Warum gibst du dir keine Mühe mit der Rechtschreibung?
https://www.mikrocontroller.net/articles/Netiquette
maik m. schrieb:> buchstaben werden schwächer und dann is ende
Das LCD ist ja beleuchtet (Vermutung).
Ist das jetzt so, dass die Beleuchtung (also das GANZE Display)
abdunkelt oder verblassen NUR die Buchstaben auf dem sonst unverändert
beleuchteten Display ?
Manche LCD Shields haben das Problem dass der Strom auf D10 aus dem
Ruder läuft.
Bei diesen Boards sollte man D10 auf input steht lassen und auf die
Beleuchtungskontrolle verzichten.
Max D. schrieb:> maik m. schrieb:>> buchstaben werden schwächer und dann is ende>> Das LCD ist ja beleuchtet (Vermutung).> Ist das jetzt so, dass die Beleuchtung (also das GANZE Display)> abdunkelt oder verblassen NUR die Buchstaben auf dem sonst unverändert> beleuchteten Display ?
alles komplett, Buchstaben werden blasser und Hintergrundbeleuchtung
geht aus
als würde zb die Spannung langsam zusammenbrechen, was ich aber
ausschließe.
sofort nach der initialisierung wirds Display langsam dunkler, vom
starten bis Dunkel sinds ca 10sek
Ulrich F. schrieb:> Manche LCD Shields haben das Problem dass der Strom auf D10 aus> dem> Ruder läuft.> Bei diesen Boards sollte man D10 auf input steht lassen und auf die> Beleuchtungskontrolle verzichten.
hab den "backlighttimer"
1
voidBackLightOn(){
2
analogWrite(BACKLIGHT,70);
3
BackLightTimer=false;
4
BackLightTemp=BackLightTimeout;
5
}
mal von true auf false gemacht, jetz ist nurnoch das die Schrift nen
ekliges flackern beinhaltet und noch leicht abdunkelt woran kann das
liegen?
maik m. schrieb:> jetz ist nurnoch das die Schrift nen> ekliges flackern beinhaltet und noch leicht abdunkelt woran kann das> liegen?
um Hardwarefehler auszuschliessen bestelle ich immer alles doppelt und
prüfe mit anderer Hardware gegen.
woher soll man ohne Kaffeesatz lesen das hier feststellen ?
>> mal von true auf false gemacht, jetz ist nurnoch
Also wars doch die Hintergrundbeleuchtung.#
> das die Schrift nen> ekliges flackern beinhaltet und noch leicht abdunkelt woran kann das> liegen?
Du wirst es nicht gerne hören. Aber es liegt daran, dass der
Programmierer nicht viel Sachverstand an den Tag legt. Das sieht man zb
an der IMplementierung des Backlights, aber auch daran, dass er am
Anfang in loop() bei der UNetrscheidung was anzuzeigen ist, er dauernd
ein lcd.begin aufruft, welches jedesmal das LCD wieder neu initialisiert
und dabei dann auch löscht. Was dann eben flackert wie Sau.
Man sieht es auch daran, wie er die ganzen Zeitsteuerungen im Programm
macht. Das ist alles, wie sag ichs freundlich, ohne Sachverstand
gemacht.
Karl Heinz schrieb:> Das ist alles, wie sag ichs freundlich, ohne Sachverstand> gemacht.
Arduino halt.
Und das ist nicht gegen die Hardware-Plattform gerichtet.
Falls das auf dein Board zutrifft.
Und das kannst du aus dem Schaltplan des Boards ersehen....
Und im Zweifen nachmessen.
>analogWrite(BACKLIGHT,70);
Weiterhin steht der Outputpin noch ab und zu auf 1, True, oder was auch
immer...
In der Zeit wird der Pin gnadenlos überlastet.
Das hat schon einige Arduinos gegrillt.
Nimm doch mal das gesamte BACKLIGHT Gedöns raus.
Oder löte eine Diode ein. Leiterbahn aufkratzen und Diode rein. z.B.
eine 1n4148, oder irgendeine andere kleine Diode.
Aber den Pin zu überlasten ist sinnfrei. Völlig Sinn befreit.
das Backlight Problem hat sich ja im mom gelöst. trotzdem hab ich alles
was "backlight" im Wort hatte ma rausgeworfen.
problem ist weiterhin dieses ekelhafte Flackern, das bereitet einem
Kopfschmerzen, und gut lesbar ist es auch nicht...
Wie Karl Heinz schon schrieb:
Karl Heinz schrieb:> Das sieht man zb> an der IMplementierung des Backlights, aber auch daran, dass er am> Anfang in loop() bei der UNetrscheidung was anzuzeigen ist, er dauernd> ein lcd.begin aufruft, welches jedesmal das LCD wieder neu initialisiert> und dabei dann auch löscht. Was dann eben flackert wie Sau.
Ersetze das
1
lcd.begin(16,2);
in loop() durch
1
lcd.clear();
Damit sollte das Flackern aufhören, da nun nur noch der Inhalt gelöscht
und der Cursor jeweils an den Anfang zurückgesetzt wird ohne das ganze
Display nue zu initialisieren.
Alle lcd.begin(16,2); bis auf einen im Setup rausgeworfen?
Auch macht es keinen Sinn das LCD mit neuen Daten zu versorgen, wenn es
schon das richtige anzeigt.
Laut Deinem Programm willst Du 216 RGB-Leds ansteuern, die jede bis zu
3*20 mA Strom ziehen kann. Das wäre ein Gesamtstrom bei voller
Ansteuerung aller LEDs von 216*3*20 mA = 12960 mA = ca. 13 Ampere.
Von Deiner Schaltung her, bei der Du den Strom für diese LEDs aus dem 5V
Spannungsregler des Arduino-Boards ziehen möchtest, ist das etwas zu
optimistisch.
Informiere Dich, wie viele mA Du aus dem 5V-Pin des Boards ziehen
darfst!
Und dann besorge Dir ein FETTES 5V-Netzteil für Deine 216 RGB-LEDs, das
als MINIMUM 13 Ampere @5V liefern kann, sonst wird das nichts mit Deinen
216 WS2812LEDs!
maik m. schrieb:> die leds bekommen ne eigene versorgung ;)
Wozu postest Du eigentlich ein Schaltbild, wenn das Schaltbild FALSCH
ist?
Anyway.
Dein LCD-Backlight schaltest Du auf Kurzschluss:
1
void BackLightOn() {
2
analogWrite(BACKLIGHT,70);
3
BackLightTimer = true;
4
BackLightTemp = BackLightTimeout;
5
}
Schau ggf. ins Schaltbild Deines LCD-Keypad-Shields oder glaube es mir:
Bei diesem Shield darfst Du NIEMALS den Backlight-Pin 10 auf Output
schalten!
Weder per pinMode noch mit analogWrite darf der Pin als Ausgang genutzt
werden, der Backlight-Pin MUSS AUF INPUT bleiben und Du kannst nur mit
"digitalWrite(BACKLIGHT, HIGH)" und "digitalWrite(BACKLIGHT, LOW)" die
Hintergrundbeleuchtung ein- oder ausschalten.
Sobald Du den Pin-10 auf OUTPUT setzt ==> Kurzschluss in Deiner
Schaltung.
Daniel H. schrieb:> Wie Karl Heinz schon schrieb:>> Karl Heinz schrieb:>> Das sieht man zb>> an der IMplementierung des Backlights, aber auch daran, dass er am>> Anfang in loop() bei der UNetrscheidung was anzuzeigen ist, er dauernd>> ein lcd.begin aufruft, welches jedesmal das LCD wieder neu initialisiert>> und dabei dann auch löscht. Was dann eben flackert wie Sau.>> Ersetze das>>
1
>lcd.begin(16,2);
2
>
>> in loop() durch>>>
1
>lcd.clear();
2
>
>
Nein.
Auch das Clear sollte da raus.
Der ganze Ansatz ist zweifelhaft und unsinnig, da jedesmal bei einem
Aufruf von loop das LCD neu bemalen zu wollen. Aber wenn man das schon
macht, dann so, dass man das LCD NICHT löscht, sondern nur
überschreibt. Gelöscht wird es nur, wenn sich die anzuzeigende
Information grundlegend ändert, also auch alle Fixtexte neu hingemalt
werden müssen.
Sonst flackert es eben wie Sau.
warum auf output? habs doch lediglich den timer ausgemacht?!
ja in der Schaltzeichnung fehlt die Spannungsversorgung, die 5v am
arduino sind input ;)
ich bin hobbyfotograf und keiner der sich schwer mit dem Thema
beschäftigt, es soll ja lediglich funktionieren..
daher bringts mir auch nichts wenn ihr mit Fachbegriffen o.ä um euch
werft
wüsst ich wies geht, dann würd ich nicht hier fragen ;)
daher wär ich dem jenigen der mir den code so ändert das es geht, sehr
dankbar.. für euch ist es sicher eine sache von Paar minuten, aber ich
hock hier schon paar stunden..
evtl würde ja jemand seine zeit grad opfern
mfg
Das ganze Programm sieht aus, wie ein Haufen zusammenkopierter Code. Die
Einzelteile sind ja nicht so schlecht, aber der Zusammenbau zu einem
Komplettprogramm offenbart, dass das alles dem Verfasser weit über den
Kopf wächst. Da ist keine vernünftige Struktur drinnen, da sind keine
Konzepte erkennbar. Das ist zusammkopiert ohne Ahnung davon zu haben,
wie man Programme aufbaut.
und bei mir wars nur copy/paste inkl der hier genannten änderungen die
aber nur teilweise was gebracht haben, aber trotz display.clear
entfernen ist das flackern weiterhin da
achja, hier der Ersteller
http://mrossphoto.com/wordpress32/neopixel-ws2812-dlw/
maik m. schrieb:> dankbar.. für euch ist es sicher eine sache von Paar minuten
Nope.
Das ist keine Sache von ein paar Minuten.
Die loop() muss man im Grunde wegwerfen und neu machen. Allerdings indem
man sich vorher erst mal ein Konzeot zurecht legt, wie der
Programmaufbau eigentlich sein soll.
> aber ich> hock hier schon paar stunden..
Ja, ich würde da auch ein paar Stunden hocken.
Nur weil ich für viele kleinere Programm was aus dem Ärmel schütteln
kann, bedeutet das nicht, dass ich für gröbere Sachen ohne Überlegung an
die Sache rangehen kann.
maik m. schrieb:> daher bringts mir auch nichts wenn ihr mit Fachbegriffen o.ä um euch> werft
Was genau an dem Fachbegriff "Kurzschluss" hast Du denn nicht
verstanden, den ich in meinem letzten Posting verwendet habe?
> daher wär ich dem jenigen der mir den code so ändert das es geht,> sehr dankbar..
Auf jeden Fall muß das "analogWrite" aus dem Programm heraus, mit dem Du
versuchst das Backlight per PWM anzusteuern, aber tatsächlich nur einen
Kurzschluß an dem Transistor verursachst, der das Backlight schaltet.
1
void BackLightOn() {
2
analogWrite(BACKLIGHT,70); // ==> diese Zeile löschen, verursacht Kurzschluss
3
BackLightTimer = true;
4
BackLightTemp = BackLightTimeout;
5
}
Wenn Du am Backlight irgendwas machen möchtest, dann darfst Du es bei
diesem Schield nur ein- oder ausschalten. Mit den Befehlen
1
digitalWrite(BACKLIGHT,HIGH);
2
oder
3
digitalWrite(BACKLIGHT,LOW);
Das eine schaltet das Backlight ein, das andere aus. Welches was macht,
bin ich jetzt auch überfragt und müßte es erstmal raussuchen.
Auch die Zeilen
Jürgen S. schrieb:> Auf jeden Fall muß das "analogWrite" aus dem Programm heraus, mit dem Du> versuchst das Backlight per PWM anzusteuern, aber tatsächlich nur einen> Kurzschluß an dem Transistor verursachst, der das Backlight schaltet.
Hört sich komisch an.
Kann man die Schaltung dazu mal sehen?
Wenn das Backlight per Transistor ein/aus geschaltet werden kann, dann
kann man das auch mit PWM dimmen.
Jürgen S. schrieb:> void BackLightOn() {> analogWrite(BACKLIGHT,70); // ==> diese Zeile löschen, verursacht> Kurzschluss> BackLightTimer = true;> BackLightTemp = BackLightTimeout;> }>
ist raus
> Wenn Du am Backlight irgendwas machen möchtest, dann darfst Du es bei> diesem Schield nur ein- oder ausschalten. Mit den Befehlen> digitalWrite(BACKLIGHT,HIGH);> oder> digitalWrite(BACKLIGHT,LOW);
mit High gings
>> Das eine schaltet das Backlight ein, das andere aus. Welches was macht,> bin ich jetzt auch überfragt und müßte es erstmal raussuchen.>> Auch die ZeilenanalogWrite(BACKLIGHT,BackLightTemp);> analogWrite(BACKLIGHT,0);> dürfen in Deinem Programm NICHT vorkommen!
auch draußen
bleibt nurnoch das scheiß flackern, ist jetz nich so "strobo like" aber
es flackert halt erkennbar
1
#include<Adafruit_NeoPixel.h>
2
3
#include<sainsmartkeypad.h>
4
5
/*
6
Digital Light Wand + SD + LCD + Arduino MEGA - V MRR-3.0 (WS2812 RGB LED Light Strip)
7
by Michael Ross 2014
8
Based on original code by myself in 2010 then enhanced by Is0-Mick in 2012
9
10
The Digital Light Wand is for use in specialized Light Painting Photography
11
Applications.
12
13
This code is totally rewritten using code that IsO-Mick created made to specifically
14
support the WS2812 RGB LED strips running with an SD Card, an LCD Display, and the
15
Arduino Mega 2560 Microprocessor board.
16
17
The functionality that is included in this code is as follows:
18
19
Menu System
20
1 - File select
21
2 - Brightness
22
3 - Initial Delay
23
4 - Frame Delay
24
5 - Repeat Times (The number of times to repeat the current file playback)
25
6 - Repeat Delay (if you want a delay between repeated files)
26
27
This code supports direct reading of a 24bit Windows BMP from the SD card.
28
BMP images must be rotated 90 degrees clockwise and the width of the image should match the
29
number of pixels you have on your LED strip. The bottom of the tool will be the INPUT
30
end of the strips where the Arduino is connected and will be the left side of the input
31
BMP image.
32
33
Mick also added a Gamma Table from adafruit code which gives better conversion of 24 bit to
34
21 bit coloring.
35
36
*/
37
38
// Library initialization
39
#include<Adafruit_NeoPixel.h> // Library for the WS2812 Neopixel Strip
40
#include<SD.h> // Library for the SD Card
41
#include<LiquidCrystal.h> // Library for the LCD Display
42
#include<SPI.h> // Library for the SPI Interface
43
44
// Pin assignments for the Arduino (Make changes to these if you use different Pins)
45
#define BACKLIGHT 10 // Pin used for the LCD Backlight
46
#define SDssPin 53 // SD card CS pin
47
intNPPin=31;// Data Pin for the NeoPixel LED Strip
48
intAuxButton=44;// Aux Select Button Pin
49
intAuxButtonGND=45;// Aux Select Button Ground Pin
50
intg=0;// Variable for the Green Value
51
intb=0;// Variable for the Blue Value
52
intr=0;// Variable for the Red Value
53
54
// Intial Variable declarations and assignments (Make changes to these if you want to change defaults)
55
#define STRIP_LENGTH 216 // Set the number of LEDs the LED Strip
56
intframeDelay=15;// default for the frame delay
57
intmenuItem=1;// Variable for current main menu selection
58
intinitDelay=0;// Variable for delay between button press and start of light sequence
59
intrepeat=0;// Variable to select auto repeat (until select button is pressed again)
60
intrepeatDelay=0;// Variable for delay between repeats
61
intupdateMode=0;// Variable to keep track of update Modes
62
intrepeatTimes=1;// Variable to keep track of number of repeats
63
intbrightness=99;// Variable and default for the Brightness of the strip
64
65
66
// Other program variable declarations, assignments, and initializations
67
bytex;
68
LiquidCrystallcd(8,9,4,5,6,7);// Init the LCD
69
70
// Declaring the two LED Strips and pin assignments to each
das ist auch keine lösung da das display "1. File Select" durchgehend
anzeigt. und das flackern würd durch entfernen von lcd.clear bzw
lcd.begin nicht besser
Karl Heinz schrieb:> Hört sich komisch an.> Kann man die Schaltung dazu mal sehen?
Ja, klar.
Ist ja "Open Hardware":
http://www.sainsmart.com/media/wysiwyg/Schematic.jpg> Wenn das Backlight per Transistor ein/aus geschaltet werden kann, dann> kann man das auch mit PWM dimmen.
In diesem Fall nicht, schaue auf den Transistor und wo der digitale
D10-Pin angeschlossen ist.
Mit "Input/HIGH" und "Input/Low" wird das Backlight ein- und
ausgeschaltet.
Auf "Output/LOW" kann man D10 auch noch schalten.
Und sobald D10 auf "Output/HIGH" steht gibt es einen fetten Kurzschluss
am Transistor.
Karl Heinz schrieb:> Jürgen S. schrieb:>>> Auf jeden Fall muß das "analogWrite" aus dem Programm heraus, mit dem Du>> versuchst das Backlight per PWM anzusteuern, aber tatsächlich nur einen>> Kurzschluß an dem Transistor verursachst, der das Backlight schaltet.>> Hört sich komisch an.> Kann man die Schaltung dazu mal sehen?>> Wenn das Backlight per Transistor ein/aus geschaltet werden kann, dann> kann man das auch mit PWM dimmen.
verwirrt mich doch nicht so >.<
maik m. schrieb:> bleibt nurnoch das scheiß flackern, ist jetz nich so "strobo like" aber> es flackert halt erkennbar
Ich hab hier noch zu tun, aber wenn ich am Abend Zeit hab, dann bau ich
dir das mal um. Ich bins in Gedanken durchgegangen, es geht da mit
vertretbarem Aufwand halbwegs Struktur in die Sache reinzubringen. Da
hat der Autor in seiner Naivität noch mal Glück gehabt.
Und häng bitte deinen Code als C-File im Anhang an. Es macht wenig Sinn
da jedesmal seitenweise Text zu posten.
Karl Heinz schrieb:> Und häng bitte deinen Code als C-File im Anhang an. Es macht wenig Sinn> da jedesmal seitenweise Text zu posten.
code hab ich immer mit "
Jürgen S. schrieb:> In diesem Fall nicht, schaue auf den Transistor und wo der digitale> D10-Pin angeschlossen ist.
Das versuch ich gerade in der Schaltung nachzuvollziehen.
Ich seh aber nur eine Leitung, die an die Basis des Transistors geht,
die mit D10 beschriftet ist.
Gehen die direkt vom D10 Pin ohne Basiswiderstand an den NPN?
> Und sobald D10 auf "Output/HIGH" steht gibt es einen fetten Kurzschluss> am Transistor.
Das seh ich jetzt ehrlich gesagt noch nicht.
Karl Heinz schrieb:> Das seh ich jetzt ehrlich gesagt noch nicht.
Ich denke, ich weiss was du meinst.
Da gehts um den fehlenden Basiswiderstand.
Yep. Der ist in der Tat ein Problem. Sowas sollte man dem Entwickler um
die Ohren schmeissen.
>Das seh ich jetzt ehrlich gesagt noch nicht.
D10 ist die Stromquelle
Die Basis-Emitterstrecke ist die Stromsenke.
Da die Senke die anliegende Spannung auf 0,7V begrenzt, die Quelle aber
auf 5V hoch drücken möchte, geht der Strom gegen unendlich.
OK, unendlich geht nicht, aber da es das versucht kann es rauchen.
Es soll nicht rauchen.
Ulrich F. schrieb:>>Das seh ich jetzt ehrlich gesagt noch nicht.>> D10 ist die Stromquelle> Die Basis-Emitterstrecke ist die Stromsenke.
Habs schon gesehen.
Wer macht denn auch sowas, dass er einen NPN in normaler
Emitterschaltung ohne Basiswiderstand betreibt. Konnte ich erst gar
nicht glauben.
Sachen gibts.
hier auch nochmal der komplette verdrahtungskram ;)
aber beim durchrechnen und auf die 13A kommend frag ich mich wie das
original das ganze dann macht??
mit seinen glaub 4x 1,5V batterien
http://www.thepixelstick.com/
Die arbeiten in der Nacht.
Da braucht man keine 20mA um was zu sehen.
Bei Nacht und 20mA brennst du dir die Netzhaut runter. Es soll schon
Leute gegeben haben, die mit sowas Flugzeuge vom Himmel geholt haben :-)
maik m. schrieb:> void loop() {> switch (menuItem) {> case 1:
if(lcd_update)
{
> lcd.begin(16,2);> lcd.print("1:File Select ");> lcd.setCursor(0, 1);> lcd.print(m_CurrentFilename);
lcd_update=FALSE;
}
> break;
warum schreibst du in der Loop jedesmal neu auch wenn sich nix neues zum
Schreiben ergibt?
setze ein Flag das geschrieben wurde und nur wenn sich was Neues ergibt
lösche das Flag und schreibe.
Karl Heinz schrieb:> Die arbeiten in der Nacht.> Da braucht man keine 20mA um was zu sehen.> Bei Nacht und 20mA brennst du dir die Netzhaut runter. Es soll schon> Leute gegeben haben, die mit sowas Flugzeuge vom Himmel geholt haben :-)
ja ICH arbeite damit auch in der nacht, is ja nich umsonst nen nachbau
davon :P
ja ICH hab da garnix geschrieben, hab den code so übernommen und gehofft
das es geht ;)
maik m. schrieb:> ja ICH hab da garnix geschrieben, hab den code so übernommen und gehofft> das es geht ;)
hoffen und harren macht manchem zum Narren.....
maik m. schrieb:> und ich tipp ma das der das Display so oft Aktualisiert ist weil bei> Jedem druck aufn Knopf ändert sich halt der angezeigte Text
So wärs ja auch richtig.
Nur wird die Funktion loop pro Sekunde ein paar mal aufgerufen. Der
Programmierer hat zwar sein bestes getan, den µC so gut es geht sinnlos
auszubremsen. Aber unter eine gewisse Rate kann er nun mal nicht gehen.
Das ganze soll ja auch noch bedienbar bleiben.
Und so wird halt pro Sekunde ein paar zig-mal das LCD gelöscht und der
(praktisch gesehen) immer gleiche Text erneut hingemalt. Das Problem:
Das Löschen dauert seine Zeit. AUch wenn es nur ein paar Millisekunden
sind, du registrierst das das LCD dauernd zwischen 'leer' und 'Text da'
wechselt. Nur nennt man das dann eben 'Flackern wie Sau'.
Hätte der die Menüausgabe in eine Funktion gesteckt, die am Ende vom
Setup() aufgerufen und an der Stelle aufgerufen, an der er mit den
Up/Down Tasten den aktuellen Menüpunkt wechselt, sowie an den Stellen,
an denen er bei der Bildausgabe eine Fehlermeldung ausgibt, wäre alles
gut gewesen. Aber so hat er die denkbar dämlichste Variante gewählt.
Nämlich: Wir scheissen uns nichts.
maik m. schrieb:> dann hoff ich mal das du das hinbekommst, und natürlich is deine arbeit> dann nicht umsonst
Ne, ist nicht so schlimm.
Aber wenn man da schon drann sitzt, dann kann man den restlichen Code
auch noch aufräumen. Da drinn siehts ja zum Teil aus, wie bei Hempels
unter Sofa.
trotzdem, bevor ich da stunden dran hock, lass ich das wen machen der
den Durchblick hat, wo ich danach auch sicher bin das es Funktioniert
und das soll der jenige ja nicht umsonst machen
maik m. schrieb:> trotzdem, bevor ich da stunden dran hock,
ich habe den Weg doch schion gezeigt....
dir fehlt nur noch
old_menuItem wenn sich was ändert
1
if((keypress==1)){// The up key was pressed
2
BackLightOn();
3
if(menuItem==1){
4
5
old_menuItem=menuItem;
6
7
menuItem=6;
8
}
9
else{
10
old_menuItem=menuItem;
11
menuItem-=1;
12
}
13
}
14
if((keypress==2)){// The down key was pressed
15
BackLightOn();
16
if(menuItem==6){
17
old_menuItem=menuItem;
18
menuItem=1;
19
}
20
else{
21
old_menuItem=menuItem;
22
menuItem+=1;
23
}
24
}
Joachim B. schrieb:> maik m. schrieb:>> void loop() {>> switch (menuItem) {>> case 1:>> if(old_menuItem!=menuItem)> {>> lcd.begin(16,2);>> lcd.print("1:File Select ");>> lcd.setCursor(0, 1);>> lcd.print(m_CurrentFilename);>> old_menuItem=menuItem;> }>> break;
usw. statt lcd_update, der Möglichkeiten gibt es viele
maik m. schrieb:> ja ICH hab da garnix geschrieben, hab den code so übernommen und gehofft> das es geht ;)
Aber nicht, wenn Du andere Hardware verbastelst als der Programmierer
des Codes verwendet hat.
Offenbar hat der Programmierer Deines Programms ein anderes LCD-Shield
in Verwendung als das von Dir verwendete LCD-Keypad-Shield.
Mit Deinem LCD-Keypad-Shield solltest Du definitiv nicht versuchen, das
Backlight in der Helligkeit per analogWrite an Pin D10 regeln zu wollen.
Aus- und Einschalten OK, Helligkeitsregelung ==> geht nicht ohne
Kurzschluss ab.
Allerdings habe ich oben den Arduino-Code für das Aus- und Einschalten
des LCD-Displays etwas falsch dargestellt.
Zum EINschalten ersetzt Du in Deinem Code und mit Deinem Keypad-Shield:
1
analogWrite(BACKLIGHT,70);
durch
1
pinMode(BACKLIGHT,INPUT);// LCD Backlight EIN
Und zum AUSschalten ersetzt Du
1
analogWrite(BACKLIGHT,0);
durch
1
pinMode(BACKLIGHT,OUTPUT);// LCD Backlight AUS
Dann sollte es ohne Kurzschluss funktionieren und ohne dass Dir am
Controller die Spannung zusammenbricht.
Und dort wo das Originalprogramm die Helligkeit hoch- oder runterdimmt
1
analogWrite(BACKLIGHT,BackLightTemp);
nimmst Du dann das eine oder das andere. Ohne Hardwareumbau am Shield
kannst Du mit Deinen KeypadShield nichts an der Hintergrundbeleuchtung
dimmen.
das dimmen MUSS ich nicht sein, An und Aus reicht.
klar hier hat JEDER etwas gesagt, aber wiederum teilweise
unterschiedliche meinungen o.ä
daher hätte ich gerne das Jemand den kompletten Code mal überarbeitet
sodass ich nicht anfangen muss das alles zusammen zu basteln
so wie es aktuell ist gehts bis auf das flackern ja
daher bin ich dankbar, das Karl Heinz da mal drüber guckt und es
"ordnet" sodass es eig. nur copy&paste für mich ist
maik m. schrieb:> klar hier hat JEDER etwas gesagt, aber wiederum teilweise> unterschiedliche meinungen o.ä
Befrage mal 3 Imker zu einem Bienenproblem.
Du bekommst 5 Meinungen zu hören.
Und das wundersame: Alle haben recht.
Einigkeit wurde erzielt in:
Das Shield hat einen Fehler.
Und:
Das Programm muss renoviert werden.
Ulrich F. schrieb:> Befrage mal 3 Imker zu einem Bienenproblem.
oder 3 HNO Ärzte, von darf nicht tauchen wegen Löcher im Trommelfell zu
keine vorhanden bis Riss im Trommelfell
Sorry. Bin gestern nicht mehr dazu gekommen.
Brenn das mal rein.
Bedenke bitte, das ich das hier nicht testen kann, weil ich die Hardware
nicht habe. D.h. da können noch logische Fehler drinn sein.
Die Teile, die die Bitmap vom File einlesen hab ich nicht angerührt.
Aber beim Rest hab ich ein wenig umgerührt.
Schonmal vielen dank. Inkl Displaybeleuchtung aus beim File lesen?
sprich beim bestätigen der Datei. .
Werd gleich ma gucken obs mim flackern besser ist. Bin noch unterwegs.
Zu 100% kann ichs auch nicht testen da die leds noch nicht da sind
maik m. schrieb:> daher hätte ich gerne das Jemand den kompletten Code mal überarbeitet> sodass ich nicht anfangen muss das alles zusammen zu bastelnmaik m. schrieb:> Achja fals es keine Umstände macht hätt Ich gerne das sobald ich die> bildauswahl bestätige, das das display aus geht bis ich wieder ne taste> drückemaik m. schrieb:> Achja. Hat evtl hier jemand nen 3d Drucker und würde mir evtl für> kleines Geld nen Gehäuse für das ganze machen?
Gegenfrage: würdest du mir als Hobbyfotograf ein Generationenbild (Bild
in Bild) so "Nebenbei" oder maximal für kleines Geld anfertigen?
(Beispiel: http://www.pix4kids.ch/images/_bild%20fertig.jpg)
-> da ich das erst kürzlich gemacht habe, kenne ich die ungefähren
Kosten und die lagen noch einiges unter dem durchschnittlichen Tagessatz
eines Softwareentwicklers.
Du unterschätzt den Aufwand gewaltig. Und ohne die Hardware zu besitzen,
werden wohl nur die wenigsten Softwareentwickler überhaupt daran denken
das Programm neu-/umzuschreiben.
maik m. schrieb:> Schonmal vielen dank. Inkl Displaybeleuchtung aus beim File lesen?
Ja, klar.
Ist doch logisch, dass dann die Beleuchtung aus sein sollte.
Inklusive einiger vergessener zu behandelnder Fehlersituationen.
Inklusive technisch korrekter Ansteuerung der Beleuchtung.
und, und, und.
> Zu 100% kann ichs auch nicht testen da die leds noch nicht da sind
OK. Aber sieh die Menübehandlung durch. Ich war hier zu faul, mir da ein
Testsystem zusammenzustecken :-)
Björn G. schrieb:> maik m. schrieb:> daher hätte ich gerne das Jemand den kompletten Code mal überarbeitet> sodass ich nicht anfangen muss das alles zusammen zu basteln>> maik m. schrieb:> Achja fals es keine Umstände macht hätt Ich gerne das sobald ich die> bildauswahl bestätige, das das display aus geht bis ich wieder ne taste> drücke>> maik m. schrieb:> Achja. Hat evtl hier jemand nen 3d Drucker und würde mir evtl für> kleines Geld nen Gehäuse für das ganze machen?>> Gegenfrage: würdest du mir als Hobbyfotograf ein Generationenbild (Bild> in Bild) so "Nebenbei" oder maximal für kleines Geld anfertigen?> (Beispiel: http://www.pix4kids.ch/images/_bild%20fertig.jpg)> -> da ich das erst kürzlich gemacht habe, kenne ich die ungefähren> Kosten und die lagen noch einiges unter dem durchschnittlichen Tagessatz> eines Softwareentwicklers.>> Du unterschätzt den Aufwand gewaltig. Und ohne die Hardware zu besitzen,> werden wohl nur die wenigsten Softwareentwickler überhaupt daran denken> das Programm neu-/umzuschreiben.
Sry mit bild Bearbeitung hab ich in der Form nix am hut.(sollte mal was
bearbeitet werden müssen, macht das wer anders :D) Aber wenn du jeweils
Bilder einer Person mit Bilderrahmen hast. Dann kannst du diese mit
Photoshop innerhalb paar Minuten zusammensetzen
so, getestet und scheint vom optischen schonmal komplett zu laufen,
einzige was ist das bei jedem Enter drücken das Display ausgeht, kann
natürlich sein das er dann auch das Bild "malt" aber ohne Leds schwer zu
testen ;)
evtl sogar möglich das das Display so lange aus bleibt bis nen Knopf
gedrückt wird? denn wenn die Belichtung länger dauert als die anzeige
dann hab ich das licht vom Display mit drin:/
Display ist schön klar und geht nach einiger zeit sogar aus um Akku zu
sparen.
jetz nurnoch hoffen das ich die grob 200 Leds auch mit ner "powerbank"
betreiben kann (das original nutzt ja auch nur 8 AA Batterien)
werde berichten sobald ich die leds erhalten habe (express aus China
dauert halt was)
sollte ich dir irgendwas gutes tun können (zb Aufkleber plotten) lass es
mich wissen, stehst in meiner schuld!
edit:
Datenpin von 31 auf 24 umgelegt sodass der Reader dazwischen passt. wenn
Stripe da ist und alles geht, dann Leitungen kürzen und Case Basteln
edit2:
ihr seht am Shield die 2 Kabel, kann ich iwas zerstören wenn ich die 5V
darüber einspeise? denn der input soll über ne Buchse o.ä dann einmal
ins Shield und 1 ma zur led leiste, oder soll ich fürn arduino lieber
die usb bzw DC Buchse nutzen?
maik m. schrieb:> so, getestet und scheint vom optischen schonmal komplett zu laufen,> einzige was ist das bei jedem Enter drücken das Display ausgeht, kann> natürlich sein das er dann auch das Bild "malt" aber ohne Leds schwer zu> testen ;)
Ja. Das sollte auch so sein.
Das hier läuft ab, wenn die Enter drückst
Das LCD wird gelöscht, der Name des auszugebenden Files hingemalt. Ist
eine Wartezeit eingestellt, dann gibts eine kleine Meldung und es wird
gewartet.
Dann wird die Hintergrundbeleuchtung auf jeden Fall abgeschaltet und die
Ausgaben laufen auf die LED raus.
Danach: LED abschalten und am LCD wieder die Menüanzeige reaktivieren.
Die Hintergrundbeleuchtung wird aber nicht eingeschaltet. Erst der
nächste Tastendruck aktiviert die wieder.
> evtl sogar möglich das das Display so lange aus bleibt bis nen Knopf> gedrückt wird?
Zumindest sollte das so sein.
Wenn nicht, dann hab ich irgendeinen Nebeneffekt übersehen.
> Display ist schön klar und geht nach einiger zeit sogar aus um Akku zu> sparen.
Ja.
Da hab ich allerdings was übersehen.
Am Anfang von loop steht
1
voidloop()
2
{
3
intkeypress=ReadKeypad();
4
delay(150);
5
...
nimm den delay da raus.
Am Ende der loop() hab ich einen
1
delay(10);
2
}
eingefügt. Das ist sonst etwas doppelt gemoppelt.
Die Absicht wäre gewesen, die Durchlaufzeit durch loop auf ca 10ms zu
bringen (wobei die exakte Zeit nicht so kritisch ist).
Der springende Punkt ist, dass ich die Auto-Abschaltzeit
1
#define BACKLIGHT_TIMEOUT 400 // Adjust this to a larger number if you want a longer delay
auf diese 10ms bezogen habe und die 150ms aus dem ersten Delay nicht
berücksichtigt habe (den delay hatte ich schon wieder vergessen). 400 *
10ms sind ca. 4 Sekunden. Mit dem zusätzlichen 150ms Delay wäre das dann
um einen Faktor 150 größer, also ca 600 Sekunden oder rund 10 Minuten.
Das ist dann etwas arg lang.
Übrigens ist mir gerade aufgefallen, dass die Pinmanipulationen in
BackLightOff umgedreht gehören. Also so
1
voidBackLightOff()
2
{
3
digitalWrite(BACKLIGHT,LOW);
4
pinMode(BACKLIGHT,OUTPUT);
5
BackLightTimer=false;
6
BackLightTemp=BACKLIGHT_TIMEOUT;
7
}
Sonst hat man wieder einen Kurzschluss, wenn auch nur ein paar
Nanosekundenbruchteile lang.
delay ist inkl "delay (150) KOMPLETT rausgeflogen und backlight wurde
von
1
voidBackLightOff()
2
{
3
pinMode(BACKLIGHT,OUTPUT);
4
digitalWrite(BACKLIGHT,LOW);
5
BackLightTimer=false;
6
BackLightTemp=BACKLIGHT_TIMEOUT;
auf
1
voidBackLightOff()
2
{
3
digitalWrite(BACKLIGHT,LOW);
4
pinMode(BACKLIGHT,OUTPUT);
5
BackLightTimer=false;
6
BackLightTemp=BACKLIGHT_TIMEOUT;
geändert
Display geht nach 5sec ca aus, wenn Enter drück steht 0/1 im Display
(unbeleuchtet) aber das display geht direkt an sobald das Bild fertig
dargestellt wurde
und das ist kontraproduktiv
maik m. schrieb:> Display geht nach 5sec ca aus, wenn Enter drück steht 0/1 im Display> (unbeleuchtet)
Ist etwas unschön. Gedacht war da eigentlich die Nummer der aktuellen
Wiederholung auszugeben, damit man bei 83 Wiederholungen am LCD sehen
kann, wie lange es noch dauern wird
Nur ist natürlich "Bild Nummer 0 von 1" nicht wirklich intuitiv.
Mach da mal ein
1
for(inti=0;i<repeatTimes;i++){
2
lcd.setCursor(0,1);
3
lcd.print(i+1);// <---- Hier
4
lcd.print(" / ");
5
lcd.print(repeatTimes);
6
...
draus. Dann steht da "1 / 1". Also "Bild 1 von 1"
Dann sieht das ein wenig intuitiver aus.
Wenn du diese Information nicht willst, kannst du auch die ganzen
Ausgaben einfach rauswerfen.
> aber das display geht direkt an sobald das Bild fertig> dargestellt wurde> Zumindest sollte das so sein.> Wenn nicht, dann hab ich irgendeinen Nebeneffekt übersehen.
Ah!
Hier liegt der Grund.
Das hier
1
...
2
ClearStrip();
3
ShowMenuTitle();
4
ShowMenuValue();
5
}
6
7
HandleKeys(keypress);
8
...
muss so lauten
1
ClearStrip();
2
ShowMenuTitle();
3
ShowMenuValue();
4
}
5
6
else
7
HandleKeys(keypress);
8
...
Logisch, der SELECT_KEY ist ja schon behandelt worden, darf also nicht
mehr durch HandleKeys geschleust werden. Denn HandleKeys schaltet die
Beleuchtung ein, wenn eine Taste gedrückt wurde. Und zu diesem Zeitpunkt
ist ja die SELECT_TASTE tatsächlich noch als gedrückt gewertet, auch
wenn HandleKeys sie nicht berücksichtigt.
Ich hätte doch das Abspielen der LED-Sequenz auch über HandleKeys
auslösen lassen sollen. Wäre programmiertaktisch besser gewesen.
maik m. schrieb:> jetzt ist es denk ich mal so wie es sein sollte, inkl 1/1 wobei das> egal sein sollte, da ich es ohne Beleuchtung eh nicht sehen kann :D
Wer weiß, wozu man das in der Zukunft mal brauchen kann :-)
Dem µC ist es wurscht ob er was hinmalt oder nicht.
Und sei es nur, damit du zu Hause im Zimmer testen kannst, wie lange das
Abspielen der LED-Sequenz dauern wird.
geplant sind eh nur einzelne Bilder, jetzt noch gucken wie ich den SD
Reader fest bekomme und aus was ich nen kleines schönes Gehäuse basteln
kann
aber die frage mit der Stromversorgung hat noch niemand beantwortet :P
soo, liebe Leute, leds kamen grad an und der Postbote wollt direkt ma
knapp 40€ zoll >.<
naja aber letzte frage (hoffentlich) warum ist laut Zeichnung nen
470ohm Wiederstand an der Datenleitung? hat das nen sinn? (läuft auch
ohne) muss es unbedingt 470 sein? denn nen 508er hätt ich noch da
aber zum Thema 13A
grad nachgemessen. zieht bei 100% (laut einstellung) nur max 1,2A
1,2A bei 5V macht 6W.
40 Euronen Zoll für 6W LED Leistung?
Nee, da stimmt was nicht.
Oder sind die LEDs in Gold eingefasst?
Der 470R dient zum Schutz des Atmegas.
500R, oder 510R sollten da kein Problem machen.
Man könnte auch ganz darauf verzichten.....
Aber das widerspricht der Empfehlung des Herstellers.
die werden ja bei totaler Dunkelheit genutzt und laufen vom Programm her
auch sicher niemals auf 100% da es einfach sinnlos ist :D
ja die haben beim Zoll wieder geschlampt und falsche Daten geholt
deshalb soviel
maik m. schrieb:> naja aber letzte frage (hoffentlich) warum ist laut Zeichnung nen> 470ohm Wiederstand an der Datenleitung? hat das nen sinn? (läuft auch> ohne) muss es unbedingt 470 sein? denn nen 508er hätt ich noch da
Das muss nicht unbedingt 470 Ohm sein, 300 oder Deiner 508er gehen
sicherlich auch. Das hängt im Endeffekt von der Länge Deiner Zuleitung,
der Dicke des Drahtes und der Leitungskapazität ab. Wenn die Zuleitung
zwischen uC und LEDs sehr kurz ist und die VCC von uC und LEDs bis auf
wenige hundertestel Volt identisch ist, kann der Widerstand ggf. auch
weggelassen werden.
Der Widerstand dient als Schutzmaßnahme für den Dateneingang der ersten
LED. Im Arduino-Forum gibt es reihenweise User, denen bei
WS2812-Basteleien immer wieder die erste LED am WS2812-Strang defekt
wird. Nach 5 Minuten, nach einer Stunde oder nach 10 bis 100 Stunden
Betriebsdauer.
Ein Problem der WS2812 ist nämlich: Die verkraften nahezu keine
Überspannung am Dateneingang, die über der angelegten Betriebsspannung
liegt. Gerade diese Überspannung am Dateneingang der ersten LED bekommst
Du aber bei langen Zuleitungen aufgrund von zwei Effekten:
- Spannungsabfall auf der VCC-Zuleitung wg. ohmschem Widerstand
- Spannungsüberhöhung beim Schalten wg. Leitungskapazität ("induktive
Last")
Also besser Du hältst Dich an die empfohlene Schaltung als nicht.
Denn im Zweifelsfall ist ein einzelnder Widerstand billiger als alle
paar Betriebsstunden die erste LED im LED-Strang zu ersetzen.
> aber zum Thema 13A>> grad nachgemessen. zieht bei 100% (laut einstellung) nur max 1,2A
Welche LEDs genau (gibt ja unterschiedliche wie WS2812 oder WS2812B)?
Bei wie vielen LEDs insgesamt?
Bei welcher Stromversorgung für die LEDs?
Bei wieviel Betriebsspannung gemessen an der ersten WS2812LED?
Und alle wieviele LEDs speist Du die Spannung im Strang neu ein?
ob B oder nicht weiß ich grad garnicht, jedenfals 285 LEDs ca, bei 5V
(powerbank) gemessen direkt am ausgang der Powerbank, also inkl arduino
aber hat evtl jemand ne idee was ich als verbinder nehmen könnte? also
was leicht nutzbares auf kleinem raum, was die 2 leisten verbindet wenn
sie zusammen schiebe
maik m. schrieb:> ob B oder nicht weiß ich grad garnicht, jedenfals 285 LEDs ca, bei 5V> (powerbank) gemessen direkt am ausgang der Powerbank, also inkl arduino
Also ich lese im Datenblatt der WS2812 etwas von 18,5 mA @4.5...5.5V.
Ich beziehe das auf "per channel" also pro Farbe, so dass jede LED
3*18,5mA bei voller Ansteuerung braucht.
Wenn sich die Angabe nicht auf "per channel" sondern "per LED" bezieht,
wäre der Verbrauch allerdings nicht 3*18,5mA, sondern nur 18,5 mA pro
LED.
ja der verbrauch ist ja erstmal egal, die leds werden nie mit voller
leistung laufen da es unnütz ist, sie sollen so leuchten das man die
noch "ablichten" kann ohne einfach nur nen hellen fleck zu sehen :D
Jürgen S. schrieb:> Also ich lese im Datenblatt der WS2812 etwas von 18,5 mA @4.5...5.5V.> Ich beziehe das auf "per channel" also pro Farbe, so dass jede LED> 3*18,5mA bei voller Ansteuerung braucht.
pro Farbe bis 20mA macht maximal 60mA pro LED obwohl meine 117 LEDs auch
ohne sichtbare Funktionsbeeintächtigung am 5V/4A Netzteil laufen, sollte
eigentlich 7A brauchen, es fliesst aber nur 4A und ich sehe nicht das
die dunkler werden.
die frage bleibt aber wie ich die leisten am besten "steckbar" mach,
weil eine 2m leiste zu Transportieren ist nicht grad einfach :D
die ist bei 1m geteilt und ich suche jetz noch ne Idee wie ich diese
verbinde sodass sie auch zerlegen kann
kann mir denken was du meinst, aber nein :D ich hab "lose enden" ohne
Kabel usw, würde auch vom Abstand nicht hinhauen da der Übergang so
klein wie möglich sein soll..
maik m. schrieb:> kann mir denken was du meinst, aber nein :D ich hab "lose enden"> ohne> Kabel usw, würde auch vom Abstand nicht hinhauen da der Übergang so> klein wie möglich sein soll..
schafft man ohne Abstand mit 3- IC Pins und Stifte.
man kann auch diese mit kurze Kabel zurücksetzen, jedenfalls bei dem
Stripe mit 1,6cm Abstand 60/m , aber ich weiss es gibt auch welche mit
144/m nur gelesen, da wirds eng
maik m. schrieb:> ich überlege gerade was wäre wenn ich die obere leiste einfach> "von> hinten" ansteuer? geht das?
wenn du umdrehst?
es ist bei der Datenleitung immer die Einspeiserichtung zu beachten, der
+- 5V ist es egal
ja dann fällts aus weil die Datenleitung ja auch von hinten eingespeist
werde würde... ma gucken ob iwo 2 Stiftleisten und 3 Jumper oder so
aufgetrieben bekomm, mehr fällt mir grad nich ein
sieht halt im mom so aus
----o o---
----o o---
----o o---
könnte es vom Abstand her so Zusammenlöten
aber bringt ja nix weil dann nichmehr mit zerlegen hinhaut
maik m. schrieb:> ja dann fällts aus weil die Datenleitung ja auch von hinten eingespeist
und die Leiste umdrehen geht nicht?
von hinten ist ja relativ
oder meinst du auf der Klebeseite? das geht natürlich.
Manno deutsche Sprache, mach ein Bild!
ok anders gesagt, aktuell speise ich es von UNTEN ein, aber um die nicht
verbinden zu müssen dachte ich das ich sie evtl von UNTEN UND OBEN
einspeisen kann, aber geht ja wegen der Datenleitung nicht