also die Bauteile in meinem Plan mit Beschriftung DO4,DO5 usw. sind nur Stecker die ich auf meiner Platine verbaut habe. Die Bezeichnungen z.B. GY sind nur Farbnummerierungen damit ich auf der Platine schneller die Verbindungen finde.
Hier mal ein Beispiel wie die beiden ACLs angeschlossen werden können. Ich habe hier mal einen einzelligen Lipo genommen. Die Datenbank gibt für Spannungsquellen nicht besonders viel her.
Und hier der Scetch. Deine Pausenzeiten habe ich bereits berücksichtigt.
void setup() {
pinMode(3, INPUT_PULLUP); // Legt IN 3 als Eingang Schalter fest. Eingang ist LOW wenn Schalter geschlossen. pinMode(4, OUTPUT); // Legt OUT 4 als Ausgang ACL fest pinMode(5, OUTPUT); // Legt OUT 5 als Ausgang ACL fest
}
void loop() { // Loop starten
// ACL einschalten und blinken lassen
unsigned long time = millis() % 5900; // Zeitachse zum schalten der ACL Beleuchtung
if ((digitalRead(3) == LOW) && ((time <=40 || time >=80 && time <=120 || time >=160 && time <=200))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(0, HIGH); } else { digitalWrite(0, LOW); }
if ((digitalRead(3) == LOW) && ((time >=2500 && time <=2540 || time >=2580 && time <=2620 || time >=2660 && time <=2700))) { // Schaltet Dreifachblitz ACL Unten ein digitalWrite(4, HIGH); } else { digitalWrite(4, LOW); }
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
Eigentlich wäre es ziemlich cool wenn man die Schaltungen gleich offline mit einem Sketch testen könnte.
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
erst einmal vielen vielen Dank für Deine Bemühungen. Ich weiß nicht, wie ich Dir das wieder gut machen kann.
Nun hast Du in Deinem Sketch einen "Schalter" integriert. Wie würde der Sketch aussehen, wenn man die Beleuchtung über den Sender bedient? Als Sender verwende ich die Futaba t8fg. Der Empfänger wäre bei mir Futaba R6303SB. Den Empfänger habe ich mit Mode 7 programmiert. Port 1 wäre dann Kanal 11 und Port 2 wäre Kanal 12. Auf Kanal 11 würde ich einen 2-Stufenschalter legen, um die Beleuchtung vom Sender ein- und ausschalten zu können. Wie müsste ich in diesem Fall das Arduino programmieren, damit ich die Beleuchtung über den Sender ansteuern kann? Muss das Arduino vorher mit gewissen Befehlen programmieren, damit er die Befehle des Senders auslesen kann?
Mit einem ganz einfachen Sketch habe ich die ACLs, so wie ich es mir vorstelle, zum blitzen gebracht. Mit "normalen" LEDs hat es auch einwandfrei funktioniert. Nur wenn ich anstatt den normalen LEDs nun rote 1W Emitter anschließe, erhalte ich einen "Kriechstromm" von 1,56V (habe ich mit einem Multimeter gemessen). D.h., wenn das eine ACL blitzt glimmt das andere ACL schwach nach. Andersrum genauso.
In einem anderen Versuch hatte ich genau das gleiche Phänomen. Zu diesen ACLs habe ich noch die Funktion der Landescheiwerfer mit eingebunden. Fährt das Servo den Landescheinwerfer aus, schaltet sich die LED des Landescheinwerfers ein. Fährt der Landescheinwerfer wieder ein, schaltet sich die LED aus.
Nun geschied folgendes: Wenn sich die LED des Landescheinwerfers eingeschaltet, glimmen die ACLs ganz schwach. Andersrum, blitzen die ACLs auf, blitzt/glimmt auch die LED des Landescheinwerfers auf. Kann das am IC (ULN2003A) liegen, dass die Ströme nicht richtig getrennt werden?
Wenn ich diesen Effekt abstellen könnte, wäre das Grundproblem von mir gelöst.
hast du die 1W Emitter direkt am Arduino dran? Du benötigst auf jeden Fall den Treiberbaustein. Kannst du mal von deiner Schaltung ein Foto posten?
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
Nein, die Emitter habe ich nicht direkt ans Arduino angeschlossen, da die Emitter jeweils eine Stromstärke von 350mA benötigen. Die Ausgänge vom Arduino können nur 50mA abliefern.
Wie bei Deiner Schaltung verwende ich auch den ULN2003A.
Ich werde heute Abend eine Zeichung (Fritzing) einstellen, wie ich alles angeschlossen habe.
Dazu möchte ich noch sagen, dass die ACLs mit einem 2C Lipo (7,4V) versorgt werden. Die Angaben der Widerstände sind nicht korrekt. Diese betragen jeweils 14 Ohm.
Gruß Peter
Helipitt
hat folgende Bilder an diesen Beitrag angehängt
das Bild ist zu klein. Ich kann darauf nichts erkennen. Habe aber komischerweise in diesem Bereich des Forums das gleiche Problem mit der Bilderablage. Kannst du das Bild online hochladen und hier den Link posten? So habe ich es oben auch gemacht.
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
also mir fallen zwei Dinge auf. Erster Punkt ist, du hast in deinem Aufbau Anode und Kathode an den LEDs vertauscht. Der Baustein schaltet die Masse durch.
Ist der Lipo auch gleich die Spannungsversorgung für das Arduino? Wenn nicht hast du vermutlich schon eine Masseverschleppung zwischen den beiden Spannungsquellen. Es macht Sinn noch eine Brücke vom Arduino zur Masse der Versorgungsspannung (2S Lipo) der LEDs zu machen. Siehe hierzu das angehängte Bild.
Dann noch was. Du hast LEDs mit 2,2V. Der Vorwiderstand muss 2W Verlustleistung können. Also die normalen kleinen Widerstände mit 0,25W sind hier etwas unterdimensioniert. Das aber nur als Hinweis. Du hast ja bereits geschrieben das die Widerstände in der Schaltung nicht die richtigen sind.
Bitte kontrollier auch noch einmal die Anschlüsse am Treiber so wie ich sie eingezeichnet habe. Vermutlich werden diese aber passen.
So sollte es eigentlich blinken und blitzen wie du es wünscht.
Gruß Volle
|addpics|blq-8-1865.jpg|/addpics|
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
mir fällt gerade ein großer Stein vom Herzen!!! Die ACLs blitzen ohne "Kriechstrom"!!! Jetzt sind die einzelnen Schaltungen getrennt. Super...jetzt ich bin schonmal erleichtert.
Um auf Deine Fragen zurück zu kommen. Ja, der Lipo (2S) wird auch gleich die Spannungsversorgung für das Arduino sein.
Bei den ACLs habe ich jeweils einen Widerstand von 18 Ohm angelegt mit jeweils 0,25W, wie Du vermutet hast. Was könnte im schlimmsten Falle passieren, wenn ich keine Widerstände mit 2W Leistung verwende, sondern nur die 0,25W??? Eigentlich funktioniert jetzt alles einwandfrei.
Jetzt habe ich Deinen Sketch nach meiner Pinbelegung umgeschrieben und auch das funktioniert jetzt einwandfrei!!! Den Befehl mit dem Schalter habe ich "zunächst" rausgenommen. Bin begeistert!!! Die Blitzfrequenz ist auch super!!!
Wie müsste der Sketch aussehen, wenn ich die Schaltfunktion über die Fernsteuerung bzw. über den Empfänger bediene? Ich wollte einen 2- oder 3-Stufenschalter verwenden.
Dauert nicht mehr lange...bald haben wir es geschafft!!!
also die Verlustleistung tritt in Form von Wärme auf. Am Widerstand werden 1,6 W verbraten. Auf Dauer wird der Widerstand gegrillt. Beim ACL mag das eventuell noch funktionieren weil diese lange Pausenzeiten haben. Kannst ja mal deine Schaltung 20 Min. laufen lassen und schauen ob die Widerstände warm werden. Wenn du Landescheinwerfer hast sind diese vermutlich längere Zeit eingeschaltet. Dort würde ich schon einen passenden Widerstand verwenden.
Das mit den Schaltern ist ganz einfach. Die Programmzeile sagt einfach folgendes. Wenn der Schalter am Eingang geschlossen (GND wird über einen Schalter auf Eingang gebrückt) UND einer der Zeitbereiche wahr ist, wird der Eingang eingeschaltet.
&& ist eine UND-Verknüpfung || ist eine ODER-Verknüpfung
if ((digitalRead(3) == LOW) && ((time <=40 || time >=80 && time <=120 || time >=160 && time <=200)))
Wenn du am Eingang ein Signal vom Empfänger anlegen willst muss folgendes gemacht werden. Der Empfänger sendet ein Pulssignal von ca. 1000 bis 2000ms. Das ist übrigens immer so. Egal ob es ein Schalter oder sogar die Knüppelposition vom Sender ist. Das Signal hat immer diese Bereiche. Kann aber etwas abweichen. Muss nicht immer exakt diese Werte haben. Als Beispiel: Schalterstellung Unten = ca.1000ms Schalterstellung Mitte = ca. 1500ms Schalterstellung Oben = ca.2000ms
Hierzu muss der Wert an einem Eingang als Ganzzahl zur Verfügung stehen.
Als erstes also oben vor void setup einen Int bereitstellen. Bei mir war das z.B. Kanal 7 der Funke. Kann aber auch einen anderen Namen haben.
int Kanal7; // Wert Eingang Kanal7 von Sender
Dann wird des ankommende Signal im Sketch ausgelesen und in den Int Kanal7 eingetragen. Ist dann ein Wert zwischen 1000 und 2000ms Das geschieht bei mir im Sketch mit dem Befehl
Kanal7 = pulseIn(1, HIGH); //Ließt Eingangssignal am Input 1 von Kanal 7 des Sender
Jetzt musst du nur noch festlegen was ausgeführt wird wenn ein gewisser Wert ankommt. In meinem Sketch wird der Ausgang 12 eingeschaltet wenn die Schalterstellung ganz oben (ca. 2000) ist. Bringe ich den Schalter wieder in Mittelstellung (ca. 1500), wird der Ausgang wieder ausgeschaltet.
if (Kanal7 >=1800) { //Wenn Eingangssignal größer 1800 (Schalter ganz oben) Signal ein Titel weiter Schalter SG ganz oben digitalWrite (12,HIGH); //Schaltet Relais K2 am Ausgang 12 Vorwärts am MP3 Player } if (Kanal7 <=1700){ digitalWrite (12,LOW); }
Hoffe ich habe das gut erklärt. Jetzt kannst du wieder ein wenig spielen
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
also die Verlustleistung tritt in Form von Wärme auf. Am Widerstand werden 1,6 W verbraten. Auf Dauer wird der Widerstand gegrillt. Beim ACL mag das eventuell noch funktionieren weil diese lange Pausenzeiten haben. Kannst ja mal deine Schaltung 20 Min. laufen lassen und schauen ob die Widerstände warm werden. Wenn du Landescheinwerfer hast sind diese vermutlich längere Zeit eingeschaltet. Dort würde ich schon einen passenden Widerstand verwenden.
Das mit den Schaltern ist ganz einfach. Die Programmzeile sagt einfach folgendes. Wenn der Schalter am Eingang geschlossen (GND wird über einen Schalter auf Eingang gebrückt) UND einer der Zeitbereiche wahr ist, wird der Eingang eingeschaltet.
&& ist eine UND-Verknüpfung || ist eine ODER-Verknüpfung
if ((digitalRead(3) == LOW) && ((time <=40 || time >=80 && time <=120 || time >=160 && time <=200)))
Wenn du am Eingang ein Signal vom Empfänger anlegen willst muss folgendes gemacht werden. Der Empfänger sendet ein Pulssignal von ca. 1000 bis 2000ms. Das ist übrigens immer so. Egal ob es ein Schalter oder sogar die Knüppelposition vom Sender ist. Das Signal hat immer diese Bereiche. Kann aber etwas abweichen. Muss nicht immer exakt diese Werte haben. Als Beispiel: Schalterstellung Unten = ca.1000ms Schalterstellung Mitte = ca. 1500ms Schalterstellung Oben = ca.2000ms
Hierzu muss der Wert an einem Eingang als Ganzzahl zur Verfügung stehen.
Als erstes also oben vor void setup einen Int bereitstellen. Bei mir war das z.B. Kanal 7 der Funke. Kann aber auch einen anderen Namen haben.
int Kanal7; // Wert Eingang Kanal7 von Sender
Dann wird des ankommende Signal im Sketch ausgelesen und in den Int Kanal7 eingetragen. Ist dann ein Wert zwischen 1000 und 2000ms Das geschieht bei mir im Sketch mit dem Befehl
Kanal7 = pulseIn(1, HIGH); //Ließt Eingangssignal am Input 1 von Kanal 7 des Sender
Jetzt musst du nur noch festlegen was ausgeführt wird wenn ein gewisser Wert ankommt. In meinem Sketch wird der Ausgang 12 eingeschaltet wenn die Schalterstellung ganz oben (ca. 2000) ist. Bringe ich den Schalter wieder in Mittelstellung (ca. 1500), wird der Ausgang wieder ausgeschaltet.
if (Kanal7 >=1800) { //Wenn Eingangssignal größer 1800 (Schalter ganz oben) Signal ein Titel weiter Schalter SG ganz oben digitalWrite (12,HIGH); //Schaltet Relais K2 am Ausgang 12 Vorwärts am MP3 Player } if (Kanal7 <=1700){ digitalWrite (12,LOW); }
Hoffe ich habe das gut erklärt. Jetzt kannst du wieder ein wenig spielen
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
Noch was zu Info. Du kannst den Wert den deine Funke liefert auch im seriellen Monitor in der Arduino IDE anzeigen lassen. Werkzeug --> serieller Monitor
Dazu in der void setup angeben
Serial.begin(9600);
Und dann noch im Sketch folgendes eintragen. Dann wird alle 300ms das ankommende Signal im Monitor angezeigt.
Achtung: Wenn du das machst darf am Eingang 0 und 1 nichts angeschlossen sein. Das Programm belegt für die serielle Kommunikation diese beiden Eingänge. Bin selbst mal 5 Stunden ratlos vor der Kiste gesessen und habe nicht gecheckt warum mir der Wert nicht angezeigt wird ;-)
Gruß Volle
Abstürze 2017: Noch keine :-) CH53 Eigenbau mit Eigenbaumechanik SH60R mit Rex500 Mechanik Bell UH1-H RAVEN3 mit Eigenbaumechanik Goblin 570 um ein bischen rumzuturnen
super...vielen Dank für die ausführliche Erklärung. Werde ich in der nächsten Zeit ausprobieren. Momentan habe ich andere Sachen um die Ohren. Werde zu gegebener Zeit über meinen Erfolg /Mißerfolg berichten!
Die ACLs hatte ich schon über einen gewissen Zeitraum in Dauerbetrieb gehabt. Habe auch mit den Finger geprüft, ob die Widerstände heiß geworden sind. Habe jetzt nichts feststellen können. Vorsorglich werde ich doch leistungsfähigere Widerstände einbauen, wenn ich alles auf die Platine löte.
bei #9 hast Du mich darauf hingewiesen, dass der Vorwiderstand 2W Verlustleistung haben sollte. Wie berechnet man diesen Wert? Ich habe recherchiert wie man die Formel dafür anwendet, ich kam aber nie auf diesen Wert! Sollte ich den Vorwiderstand mit 2W Verlustleistung bei jeder LED anbringen?
Meine roten und grünen LEDs können eine Spannung von 2,2V ab bei 20mA; die weißen 3,0V bei 20mA und die 1W Emitter 2,2V bei 350mA.