• Die Forumsregeln und Nutzungsbedingungen findet ihr in der Navbar unter Impressum !
    Bitte unbedingt beachten!
    Wie überall im Leben gibt es Spielregeln, so auch hier!
    Die Datenschutzerklärung zum DSGVO findet ihr ebenfalls in der Navbar unter Datenschutzerklärung !
    Hinweis nach DSGVO :
    Es ist hier keinerlei Angabe erforderlich. Alle Angaben in diesem Bereich sind öffentlich sichtbar und werden freiwillig gemacht. Mit einem Eintrag in diesem Bereich erkenne ich dieses an, und bestätige die Datenschutzerklärung zur DSGVO für das Forum gelesen zu haben.

    Danke
  • Hallo Gast, beschränke dich hier bitte auf den Bereich der Elektronik. Die Fahrzeuge oder Gebäude, wo diese Elektronik eingebaut wird bitte in dem passenden Fachbereiich behandeln. Auch wenn Teile des Projektes dadurch im Forum doppelt vorhanden sind! Danke.

Arduino Truck Licht und Funktions Modul mit Bus Erweiterung

Hallo Bert,
Hast du schonmal die Blinker der Autos beobachtet, während du an der Ampel stehst.
Die blinken alle total unterschiedlich und das obwohl sie doch Recht ähnlich blinken.
Wobei es je nach Marke es sogar gravierende Unterschiede gibt.

Ich hab Mal ein Blink Relais für ein Auto gebaut, seither fällt mir sowas im Detail auf. Ich denke also, selbst wenn es nur minimal wäre, dann würde mir persönlich das zumindest auffallen.
Und die Arduinos haben sicher nicht die besten Quarze.

Letztlich lege ich selbst wert darauf, dass das bestmöglichst funktioniert. Das ist einfach mein Anspruch an mich selbst.
Ich werde einfach jeden Ein und Aus Takt den Befehl senden.

Aber ich finde deine Idee dennoch nicht Abwägig. Falls doch Mal ein Telegramm verloren geht, dann kann ich ja dennoch das so machen, dass es selbständig weiter blinkt. So würde das gar nicht erst auffallen. Halte ich zwar für unwahrscheinlich, aber man soll ja nie, nie sagen ;)
Danke! :D
 
Hat deine Funke kein S-Bus oder deren Derivate ?
So hättest Du die ganzen Kanäle auf einmal Seriell im Prozessor und kein "Umständliches" Sampeln der Proportional Kanäle.

Bei einem meiner geplanten Fahrzeuge (Autokran), werde ich den Prozessor im Fahrzeug ein S-Bus erzeugen lassen.
Das geht durch die Drehdurchführung und wird dort mit einer Standard S-Bus zu PPM Platine für die ganzen Regler und Servos im Kranaufbau zurück gewandelt.
So brauche ich nur eine Datenleitung und kann den Rest für die Spannungsübertragung nutzen.

Nur so als Gedanke

Gruss
Juergen
 
Hallo Jürgen,

Wow S-Bus das kenne ich nur von SPS Steuerungen meiner Firma, aber das ist was anderes.
Scheinbar gibt es viele die ihren Bus so nennen.

Bus Schnittstellen gibt es auf meiner Futaba F14 noch nicht und auch die nächste Steuerung von Servonaut, die ich ins Auge fassen würde, kann sowas nicht. Die setzten mehr auf herkömmliche Techniken.
Mir wurde ja auch ein gemeinsames PPM Signal reichen, aber sowas gibt's bei modernen 2,4GHz Empfängern nicht mehr.
Ich will dabei auch bleiben, da ich so mit einer Fernsteuerung alle meine Modelle steuern kann bzw. allgemein kompatibel bleibe.

Hab mir dass S-Bus System Mal grob angeschaut. Scheint ein relativ einfaches Serielles Master-Slave Protokoll zu sein.
Im Grunde noch einfacher, als das was ich plane.
Aber interessant ist hier, dass nur der Empfänger sendet.
Also eigentlich das selbe Broadcast verhalten, wie das was ich hier umsetzen will.
Letztlich ist es für mich im Grunde das selbe, ob ich nun ein PPM signal oder ein Bus Signal auswerten müsste.

Interessant finde ich es dennoch, den es zeigt doch, was für einfache Bus Protokolle es gibt, die auch im Modellbau gut funktionieren.
Das bedeutet ich könnte auch einfaches UART verwenden.
Allerdings mit dem Nachteil, dass es hier nur einen Master geben kann. Da könnte ich dann auch auf einen Draht setzten.
Im Gegensatz zu I2C ist es vom Hardware Aufbau dadurch auch simpler.
Dagegen ist mein angedachtes RS485 nahezu Störungssicher und bietet alle Möglichkeiten.

Ich sehe schon ich muss mir dazu näher Gedanken machen.
Denn es soll ja ein System werden was Zukunft hat.
Das heißt die Hardware muss fest definiert sein.

Ich fasse Mal zusammen
UART (ähnlich S-Bus):
- nur ein Master möglich
- es wäre ein einzelner Draht möglich.
- keine zusätzliche Hardware notwendig.

I2C:
- Alle können Master sein
- Zwingend zweit Drähte nötig
- Hardware Aufbau und Protokoll hat seine Schwierigkeiten.

-RS485:
- zwingend zwei Drähte nötig
- Sehr störungssicher
- Hardwareaufbau sehr einfach
- Alle können Master sein
 
So der Schaltplan hat sich noch ein wenig geändert.
Und nach und nach entstehen auch die anderen Module.
Die folgen dann noch ;)
Ich überlege auch gerade, weil es doch ein System für mehrere Fahrzeuge werden soll, dass ich mir die Platinen vielleicht sogar fertigen lasse, anstatt Sie auf Streifenraster Platinen selbst aufzubauen.
Ich hab gesehen das es doch relativ günstige Hersteller gibt. Mals schauen ;)
Dafür sollte dann aber alles passen. Das heißt ich muss auch noch einiges testen.

Ich hab mich außerdem jetzt entschieden, dass ich RS485 verwende. Das kostet mich nicht mehr Platz und hält mir später alle Möglichkeiten offen.
Die Möglichkeit UART zu verwenden ist damit außerdem weiterhin gegeben, selbst mit der späteren Software.
Und über Störungen muss ich mir auch keine Sorgen machen.

Jetzt müsste nur noch jemand von den Mods oder Admins, den Titel ändern "Truck Licht und Funktions Modul mit I2C Erweiterung" -> "Truck Licht und Funktions Modul mit Bus Erweiterung".
Das wäre nett, Danke!

An der Software schraube ich weiter dran herum. Einen Eindruck bekommt man im Link oben zu Github. Wobei ich vielmehr nur erstmal mal Grundlagen für die eigentliche Programmierung schaffe.
Aber wichtiger ist erstmal, dass die Platinen langsam einen Plan haben, auf dessen Basis dann die Programmierung entsteht.
Dann werde ich auch einen Plan haben, wie groß die Platinen letztendlich werden, was ich dann bei meinen anderen Modellen berücksichtigen kann.
Ich will euch davon dann auch eine komplette Übersicht machen, was alles Möglich sein soll.

Letztendlich wird es aber recht flexibel werden, wodurch ich weiter offen bin für weitere Möglichkeiten.

So hier mal ein weiterer Eindruck:
2020-06-05 16_01_29-1 Schaltplan - truckModul.jpg
2020-06-05 16_22_52-2 Board - truckModul2.brd - .png
 
Hallo Marina,

ich würde noch einen "vernünftigen" 5V Regler vorsehen. Wenn du auf dem Arduino als Versorgung 7,2-12V anschliessts geht dir früher oder später der Spannungsregler auf dem Arduino hoch. Habe ich selbst schon 3x bei unterschiedlichen Modellen erlebt.
 
Hallo Bert,

dann musst du ihn überlastet haben. Ich hab Arduinos in Verbindung mit den Spannungsreglern zum Teil im Dauerbetrieb über mehrere Jahre im Betrieb.
Die Dinger sind schon relativ empfindlich, da sie kaum Kühlfläche haben. Aber es sind keine Qualitativ schlechten Bauteile zumindest auf originalen Arduinos.
Zu hohe Eingangspannung und, oder zu hohen Strom, sind auf Dauer nicht gut. Denn die überschüssige Energie der Spannungsdifferenz wird verbraten.

Ich hab deshalb keinen zusätzlichen Spannungsregler eingebaut, da ich kaum Verbraucher auf der 5V Schiene habe.
Die Darlington arrays ziehen nur ein paar mA und der Transceiver zieht auch kaum was.
Ansonsten hab ich ne relativ saubere Spannung und muss nicht viel weg Filtern. Damit sollte sich der Spannungsregler eigentlich kaum eine Belastung erfahren.
Also ich hab da keine bedenken, aber trotzdem danke für den Einwand!
 
Hallo Magraina,
hab noch zwei-drei Vorschläge für Dein Projekt (wie gehabt, kein "Leermeister, nur erfahrung).

Bei RS485 fehlen die Pullup/down-Widerstände für das Ruhesignal wenn kein Teilnehmer sendet. Beim Aufschalten eines Teilnehmers kann so das erste Zeichen getriggert werden obwohl dann nichts kommt. Das sind die "Geister-FF-00" im Eingangsstring.

Die RE/ Leitung auf Dauereingang ermöglicht das Mithören des eigenen Strings. Kurzschluß oder ein zweiter RS485-Sender kann festgestellt werden.
(Jetzt noch nicht so wichtig aber später bei einem Netz ziemlich praktisch).

Z-Diode am 12V Eingang gegen Masse. Fahrregler (je nach Hersteller/Type) können > 15V ausgeben bei "Ohne Akku" und das Modell wird in die Kiste geschoben(Dynamo)!

Grüße aus Heufeld, Johann
 
Hallo Johann,

Das ist doch das tolle an so einem Forum.
Man bekommt viel Erfahrung anderer mit und gibt sie auch weiter ;)
Vielleicht nicht alles aber vieles. Freue mich auf jede Art von Kritik!:ok

Vor dem Geisterimpuls, hab ich dank Fehlererkennung keine sorge.
Die Widerstände hab ich bisher bewusst weg gelassen. Ursprünglich für die Streifenrasterplatine wollte ich Platz sparen.
Eigentlich gehören sie immer mit dazu, aber irgendwie kam es mir übertrieben vor. Letztendlich sollten sie auf eine geäzte Platine immer mit drauf. Die kommen auf jedenfall auch noch rein, hat ich nur nicht mehr dran gedacht. Danke!:thx

Weiß nicht ob mithören wirklich Sinn macht. Kann schon praktisch sein. Aber in meinem Fall sehe ich nicht wirklich nen Vorteil.
Wenn nicht gesendet wird, dann empfange ich eh nur.
Dazu kommt, dass ich mir dann immer unnötig den Kommunikations Puffer fülle.

Z-Diode oder Varistor ist eine hervorragende Idee!:ok:ok:ok:ok
Das würde nicht nur meine Elektronik schützen, sondern vorallem auch die des Fahrreglers!
Prinzipiell sollte man zwar ein Modell niemals ohne Akku bewegen, aber vielleicht kann man es nicht immer vermeiden.
 
Ich weis jetzt nicht wie Fit Du mit Leiterplatten erstellen bist.

Aber ich werde meine Zukünftig bei JLCPCB machen lassen und den Bestückservice nutzen. (Nein, ich bekomme keine Werbeprämie ;) )
So kann man SMD nutzen, ohne sich mit den Bauteilen einen abbrechen zu müssen.
Außerdem habe ich mal grob drüber gerechnet, und zum Teil sind die Bauteile bei denen auch noch Billiger wie wenn man diese in kleinen Mengen kauft.
Man muss eben nur Bauteile wählen, die bei denen zum Standard gehören, sonst kostet es Aufpreis.

Eventuell kann es so auch gleich besser sein, die 2-3 Bauteile vom Arduino direkt auf deine Platine zu setzen.

Gruss
Juergen
 
Hallo Jürgen,

Genau da will ich meine Platinen auch machen lassen.
SMD löte ich so auch gerne noch selbst.
Preislich ist das natürlich immer eine Frage der Stückzahl.
Ich hab hier keine SMDs gewählt, sondern Teile die sich gegebenenfalls austauschen lassen.
Dazu kommt dass das alles Teile sind, die ich ohnehin da hab.

SMD Varianten, währen aber sicher in Zukunft auch noch interessant. Aber das müssen finde ich die Stückzahlen rechtfertigen. Für mich ist das jetzt erstmal ne Kleinserie.
 
Ich hab mich heute Mal mit den Multiswitch Signalen meiner Futaba F-14 außeinander gesetzt.

Damit ich für mein Vorhaben genügend Schalterfunktionen für die Zukunft habe, hab ich an der F-14 ein zusätzliches Multiswitch Modul nachgerüstet.
Das 12+2 Prop Modul.
Das 8 Kanal Schaltmodul hatte ich bereits.

Leider ist die Abdeckblende für die Taster unten nicht mehr zu bekommen.
Deshalb hab ich Löcher in die bestehende Blende gebohrt. Damit die Optik nicht zu sehr leidet habe ich das 8 Kanal Modul unten verkehrt herum verbaut.
So musste nur ein Schriftzug darunter leiden. Später wenn die Funktionen klar sind, will ich das ganze noch beschriften mit so Symbolen, wie man Sie aus Fahrzeugen kennt.

IMG_20200607_172203.jpg

Dann hab ich meinen Microcontroller Testaufbau an den Empfänger gekoppelt, um die Signale einmal auszuwerten, damit ich weiß, welches Signal, von welchem Schalter ist.
IMG_20200607_172138_2.jpg

Die Signale kommen als PPM Signal. Das ist vom Aufbau her dem normalen Servo PWM Signal sehr ähnlich.
Beim Servo PWM haben wir ca. alle 20ms einen High Impuls mit einer Länge von 1-2ms. Also 1000-2000 Microsekunden bilden den gesamten weg von 0-100% ab.

Beim PPM Signal kommen jetzt die einzelnen 8 Kanäle alle der Reihe nach durch.
Gefolgt von einem Synchronisations Signal mit einer Länge von ca. 0,9ms
Darüber lässt sich ermitteln wo der Anfang ist.
Also:
PPM Multiswitch.jpg

Deshalb kommen die Signale deutlich träger an, als beim normalen PWM Signal.
Was allerdings für Zusatz-Funktionen unkritischer ist, als für beispielsweise Fahr-Funktionen.

Früher war es ein Problem sehr viele Kanäle per Funk in kürzester zeit zu übertragen, da es eben analog war, deswegen hat man sich mit dieser Methode beholfen die Anzahl zu vergrößern, ohne Einbußen in der Übertragungszeit zu haben.

Heutige 2,4GHz Fernsteuerungen haben da deutlich bessere Möglichkeiten, da sie digital arbeiten.

Wobei wie in meinem Fall das Servonaut Modul für 2,4GHz mir diese Vorteile auch bringt, was das ganze Störungssicher auf dem Funkweg macht.
Und dabei hab ich volle Kompatibilität zur PPM Multiswitch Technik.
Sollte ich später Mal zu einer neueren Servonaut Fernbedienung wechseln, dann funktionieren meine Module weiterhin. Ich würde also weiter kompatibel bleiben.

Nun hab ich meine Interrupt Routine aus vorangegangenen Projekten etwas überarbeitet, da mir aufgefallen ist, dass gerade beim neuen Multiswitch Modul der Sync Impuls auch Mal ein wenig länger dauern kann.
Dies hätte zu Fehlern geführt, da ich früher den Zähler für die Speicherung nach 8 Kanälen zurückgesetzt habe. Jetzt warte ich solange bis ich ein validen Sync Impuls bekomme.

Hier Mal der Vergleich neu (grün) und alt (rot):
2020-06-07 18_36_14-Window.png

Mit jeder Veränderung des Zustands am Interrupt Eingang speichere ich die aktuelle Zeit in Microsekunden und Vergleiche Sie mit der vorherigen Zeit.
Ist die Zeit im Bereich von 700-2200µs, dann muss es sich um einen High Impulse, also um die Zeit des jeweiligen Kanal Signal handeln.
Ist der Impuls nur ca. 900µs lang dann weiß ich, dass das der Start ist und daraufhin speichere ich nach und nach die Werte auf dem Array.
Code:
//Vars for Interrupt
volatile int int1Value[8] = {0};		//saves time difference of every channel
volatile int int1Index = 0;				//actual index for interrupt
volatile long int1LastChange = 0;		//time since last interrupt

void ppmMultiInterrupt1(){
	volatile long nMicros = micros(); 						//Save actual time
	volatile long nDifference = (nMicros - int1LastChange); //Calc time since last Change
	if((nDifference > 700) && (nDifference < 2200)) { 		//Filter HIGH Impulse | HIGH if time is between 700 and 2200 
		if((nDifference > 850) && (nDifference < 980)) { 	//if time is ~915 then this is the start impulse
			int1Index = 0; 									//then set index to 0
		} else {
			if (int1Index < 8) {							//if index is out of bound, then wait for next start impulse
			int1Value[int1Index] = nDifference;				//save actual time difference to value
			int1Index++; 									//increment index by one
			}
		}
	}

	int1LastChange = nMicros;								//save time for next interrupt
}

Dann habe ich mir das ganze Seriell im Sekundentakt ausgegeben und mir die Schalterstellungen zu der Impulslänge notiert.
Code:
		if((millis()%1000 >= 500) && (serialIsSent == false)) {
			Serial.println("--Start---");
			Serial.println(int1Value[0]);
			Serial.println(int1Value[1]);
			Serial.println(int1Value[2]);
			Serial.println(int1Value[3]);
			Serial.println(int1Value[4]);
			Serial.println(int1Value[5]);
			Serial.println(int1Value[6]);
			Serial.println(int1Value[7]);
			Serial.println("---End----");
			Serial.println("--Start2---");
			Serial.println(int2Value[0]);
			Serial.println(int2Value[1]);
			Serial.println(int2Value[2]);
			Serial.println(int2Value[3]);
			Serial.println(int2Value[4]);
			Serial.println(int2Value[5]);
			Serial.println(int2Value[6]);
			Serial.println(int2Value[7]);
			Serial.println("---End----");
			serialIsSent = true;
		} else if((millis()%1000 < 500) && (serialIsSent == true)) {
			serialIsSent = false;
		}

Das zweite Modul kommt verkehrtherum herein, da ich es ja verkehrtherum eingebaut habe.
Beim zweiten Modul gibt es außerdem die Besonderheit, dass die 3 Wege Schalter sich zwei Kanäle teilen.
Code:
16:59:31.637 -> --Start--- 12+2 Prop Modul oben rechts
16:59:31.637 -> 1504 	Reihe Unten:	1 Poti (0-100% -> 1000-2000)
16:59:31.637 -> 1568	Reihe Unten:	2 Poti (0-100% -> 1000-2000)
16:59:31.637 -> 1516	Reihe Unten:	3 Schalter (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> 1528	Reihe Unten: 	4 Schalter (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> 1508	Reihe Oben:		1 Taster (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> 1532	Reihe Oben:		2 Schalter (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> 1532	Reihe Oben:		3 Schalter (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> 1528	Reihe Oben:		4 Tast/Schalter (oben/mitte/unten 1000/1500/2000)
16:59:31.637 -> ---End----
16:59:31.637 -> --Start2--- 8 Kanal Modul unten
16:59:31.637 -> 1976	Reihe Oben:		4 Tater (oben/unten 2000/1000)
16:59:31.637 -> 1984	Reihe Oben:		3 Schalter (oben/unten 2000/1000)
16:59:31.637 -> 1980	Reihe Oben:		2 Schalter (oben/unten 2000/1000)
16:59:31.637 -> 1980	Reihe Oben:		1 Schalter (oben/unten 2000/1000)
16:59:31.637 -> 1696	Reihe Unten:	2 Schalter (oben/mitte/unten 1000/1700/1700)
16:59:31.637 -> 1716	Reihe Unten:	2 Schalter (oben/mitte/unten 1700/1700/1000)
16:59:31.637 -> 1692	Reihe Unten:	1 Schalter (oben/mitte/unten 1000/1700/1700)
16:59:31.637 -> 1696	Reihe Unten:	1 Schalter (oben/mitte/unten 1700/1700/1000)
16:59:31.637 -> ---End----

Gleichzeitig hab ich eine Langzeit Signal Analyse gemacht (ca. 1h), indem ich die Seriellen Daten per Software "PuTTY" in eine Datei geloggt habe.
So konnte ich jetzt feststellen, dass die Auswertung, so wie ich sie jetzt mache, fehlerfrei funktioniert.
 
So es geht langsam weiter! :D

Die ersten 3 Module habe ich soweit fertig Design und bei JLCPCB bestellt (ich hoffe dass darf man erwähnen?).
Heute kamen die Platinen an, nach gerade Mal einer Woche!
Ich bin begeistert, so schnell hatte ich das nicht erwartet! :D
Und an der Qualität kann ich auf den ersten Blick nichts aussetzten. Vollkommen zufriedenstellend. Bin gespannt, was die Praxis dann dazu noch sagen kann :D

IMG_20200615_154915_970.jpg
 
So heute hab ich Mal meine Rundumleuchten umgebaut auf LEDs.
Die LEDs haben etwa ne höhe von etwas weniger als nem Millimeter.
Ich hab mir ein kleines Röhrchen mit 4mm Durchmesser gemacht.
IMG_20200616_201830.jpg

Auf dieses habe ich mit viel Feingefühl 7 der SMD LEDs geklebt.
Dafür hab ich Sekundenkleber benutzt.
IMG_20200616_204357.jpg

Danach hab ich noch Drähte angelötet und eine Seite mit einem Draht verbunden.

Mein Programm musste ich natürlich von 4 auf 7 LEDs erweitern.
Und dann könnte ich im Testaufbau, das geniale Ergebnis bestaunen. Bin echt begeistert wie gut es geworden ist.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
 
Ist deutlich heller als die ursprünglichen Glühbirnen. Somit auch bei Tag besser sichtbar.

Hier noch ne Aufnahme im Dunkeln.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
 
Heute hab ich Mal die zweite Rundumleuchte fertig gemacht.
Das ging Dank der Erfahrung von der ersten, viel einfacher.

Ich hatte nur beim Testen das Problem, dass sie nicht so hell leuchtete wie die andere. Da hatte sich ein kleiner Fehler eingeschlichen ins Programm.
IMG_20200621_174237.jpg

Und außerdem hab ich die ersten zwei Platinen bestückt :D
IMG_20200621_164456.jpg

Jetzt muss nur langsam Mal mein Programm voran kommen.
 
Hier noch das Video von beiden.
Sie drehen beide mit einer minimal unterschiedlichen Drehfrequenz, was ja auch das Ziel der Elektronik war.
Zusammen mit den 7 LEDs und dem einzelnen Auf und Abblenden der LEDs, wirkt das richtig realistisch. Ich glaube sogar besser als mit den ursprünglichen 4 Glühbirnen. Und dazu noch ordentlich hell.
Jetzt fehlt an der Stelle, noch die Kommunikation, damit das Licht vom Hauptmodul aus angesteuert werden kann.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.
 
Hallo Marina,

ich beobachte dein Thema hier mit größtem Interresse. Bist du schon weitergekommen seit dem letzten Treat ?

Ich habe mir den ESP32 Sound und Lichtcontroller von Martin (Diy Guy 999) aus YouTube / Github erst mal nachgebaut und experimentiere damit im Moment. Was ich sagen kann sind seine Ansätze bei Sound und Regelverhalten in Bezug auf Schaltgetriebe und "Motorbremse" ( Jakebrake, hatte der SK auch!) einfach genial..... Es fehlt mir aber so ein bißchen der Modulare Aufbau und damit verbunden die Tatsache das der ESP32 an seine Speichergrenze kommt. Zumal ich günstig 2 Kingpad Schaltmodule von Pistenking ergattern konnte und diese über einen Kanal zur Licht und Zusatzfunktionssteuerung nutzen möchte. Bei ihm geht das im Moment über den rechten Kreuzknüppel und Zusatsschalter bzw. Drehpotis.
 
Moin Marina,

die RKLs sehen wirklich klasse aus, aber die Platine dazu ist je gewaltig. Dafür brauchst du ja ein komplettes Hochdach....
 
Hallo Peter,
Vielen Dank!
Ja das stimmt wohl, aber ich bekomme es schon unter.
Den Platz hab ich auch.
Das hätte man natürlich viel kleiner realisieren können, aber ich wollte es so haben. Ich wollte keine SMD Bauteile verwenden, sondern teile die ich ohnehin auf Lager hab.
Zudem kann ich problemlos teile austauschen, falls doch Mal was kaputt geht. Ist ja doch irgendwie noch ein Prototyp.
 
Ich empfehle auch dir die ESP32 Sound und lichter Modul von Martin zu schauen. Es ist viel (und sehr sauber) schon implementiert von was du brauchst. Der code ist sehr klar, ich hab mir auch alles angepasst was ich brauchte.
Und der ESP bittet dir viel mehr als Arduino, verbrauch muss auch nicht höher sein. Kommunikation mit Anhänger kannst du dann lieber über low power BL z.B. Und Martin ist ein sehr Tolle Typ, er hilft jedem über der Forum: https://www.rc-modellbau-portal.de/...2-arduino-rc-sound-und-licht-controller.7183/
Ich hoffe ist OK das ich der Link hier eingetragen habe.
 
Hallo ?

Natürlich könnte ich einen ESP32 nehmen. Allerdings werde ich den Arduino, welchen es bereits gibt, kaum an derartige Grenzen bringen, dass das die Relevanz eine 32 Bit Controllers rechtfertigt.

Sollte ich später einmal Ideen haben, die das rechtfertigen, dann lässt sich das immernoch anpassen.
Letztlich existiert der Arduino nunmal auch bereits.

Bezüglich BLE ist das natürlich ne tolle Sache, aber ich will unbedingt eine Kabelverbindung haben und deshalb stört es Recht wenig dass ich hier auf RS485 setzte, welches für mich noch viel einfacher ist, zu implementieren.

Gerade dass sich selbst einen Kopf machen, macht mir ja bei diesem Projekt, so sehr Spaß.
Code oder anderes, von anderen einfach nur zu übernehmen würde mir nur wenig Freude bereiten.
Ich denke das liegt einfach in meiner Natur, als Elektronikerin und Programmiererin
 
So mit der Elektronik ging es nun auch endlich weiter.
Ich habe das bisherige Programm einmal komplett auf den Kopf gestellt.
Noch ist es nicht fertig aber es funktioniert schonmal das meiste am lebenden Objekt.
Ich denke es wird im Lauf der Zeit auch stetig erweitert werden, um neue Funktionen je nach Anforderungen, die sich ergeben.

Was ich grundlegend geändert habe ist der Aufbau. Ich habe das Programm in einzelne Dateien mit spezifischen Aufgaben unterteilt. Damit will ich den Code übersichtlicher gestalten.
Mir ist es sehr wichtig eine gute übersicht zu haben, um den Code auch in Zukunft gut verstehen zu können.

Wie gehabt findet sich der aktuelle Stand auf GitHub:
Lkw Funktionsmodul
https://github.com/SheepCreativeSoftware/truckLightAndFunction

Trailer Funktionsmodul
https://github.com/SheepCreativeSoftware/trailerLightAndFunction

Rundumleuchtenmodul
https://github.com/SheepCreativeSoftware/truckBeaconLightModule

So gibt es nun in allen Programmen eine config.h Datei in welcher grundlegende Konfiguration für das jeweilige Modell vorgenommen werden kann.

Dann gibt es die ioMapping.h in welcher die I/Os des arduinos zugeordnet werden.

Die Auswertung des PPM Signals habe ich etwas überarbeitet, um möglichst effizient diesen Code abzuarbeiten. Da es bei interrupts wichtig ist, diese schnell wieder zu beenden. Das geht sicher noch besser, aber das Ergebnis ist aktuell mehr als zufriedenstellend.

Die Idee den Lenkservo für den Blinker zu nutzen habe ich verworfen, da ich ohnehin nur einen 3 Positions-Schalter dafür vorgesehen habe und mir das so besser gefallen hat. Stattdessen Werte ich den schaltkanal der Soundelektronik aus, um alle Lichter zu dimmen wenn der Anlasser angeht. Das funktioniert auch schon gut, aber es fehlt noch an Feinheiten.
Der Starter des Soundmodul reagiert unterschiedlich in Abhängigkeit, wie lange der Taster gedrückt wird. Diese Feinheiten muss ich noch mit in Bezug setzen. Außerdem wird auch gedimmt beim Ausschalten, was mit noch nicht gefällt.

Grundlegende Funktionen fürs Licht sind jetzt implementiert:
- Alle Lichtausgänge lassen sich individuell dimmen.
- Alles Ausgänge gehen mit leichtem Glimm Effekt an und aus (ähnlich einer glühbirne)
- Standlicht
- Ablendlicht (im Fall des SK kombiniert mit Standlicht via Dimmung)
- Fernlicht (kombiniert mit Ablendlicht oder einzeln)
- Fernlicht Lichthupe über separaten Taster (eine Art blink Effekt solange gehalten wird)
- Nebelscheinwerfer
- Blinker in jede Richtung inklusive Warnblinker (warnblinker hat Priorität)
- Blinker beginnt und endet immer mit einer vollständigen blinkphase (Blinker wird nicht während der Leuchtdauer unterbrochen).
- Rundumlicht Ein/Aus

Darüber hinaus habe ich ein Kommunikations Treiber geschrieben für je Master und Slave.
Aktuell kommuniziert nur der Master (Truckmodul) und ein jeweiliger Slave antwortet nicht auf ein Telegramm. Es ist schlicht nicht notwendig die Antwort zu bekommen und es ist mir wichtig vom Master möglichst in kurzen Zeitabständen Daten zu senden (um kritische Dinge, wie den Blinker, synchron zu halten).
Das Telegram was gesendet wird ist relativ simpel und schlank in einzelne Bytes aufgebaut.

1. Byte Funktionscode
2. Byte Daten (kann mehr als ein Byte sein)
3. zweit letztes und letztes Byte sind eine CRC Prüfsumme gebildet aus allen Bytes des Telegramms

So wird es verschiedene Funktionscode für verschiedene Arten von Funktionen geben, welche gesendet werden können.

Zum aktuellen Zeitpunkt gibt es nur einen aktiven Functionscode für Lichtfunktionen.

Dieses ist ein Byte, welches Binär auf den 8 Bits die einzelnen Funktionen abbildet.
Bit 0: Standlicht
Bit 1: Bremslicht
Bit 2: Rückfahrlicht
Bit 3: Blinker Rechts
Bit 4: Blinker Links
Bit 5: Zusatzlicht
Bit 6: Rundumlicht
Bit 7: Starter Dimmfunktion aktiv

Jedes Telegramm hat einen Versatz von wenigen Millisekunden zueinander. So ist es dem Slave möglich, den Start des Telegramms zu erkennen.
Die beiden Module für Rundumlicht und den Auflieger benötigen aktuell nur dieses Telegramm, um ihre Funktionen abzubilden.

Hier Mal eine Vorführung der Funktionen von vorne (Dimmfunktionen sind leider schwer zu filmen; daher kann es hier und da auch Mal flackern, was es in echt nicht tut).
Besonders gut sieht man hier auch, wie schnell das Licht angeht, nach betätigung des Schalters.
Zu Anfang sieht man eine Failsafe Funktion, welche aktuell nur den Warnblinker aktiviert und alles abschaltet.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

Und von hinten. Hier sieht man das Zusammenspiel mit dem Auflieger. Man muss wirklich sehr gezielt kucken um eine Verzögerung zu erkennen, die fast nicht existent ist.

Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

- - - Aktualisiert - - -

Ich wollte noch ein drittes Video mit der Dimmfunktion zeigen, aber ich bekomme immer den Fehler, dass ich nur 3 Videos Posten darf. Und in der Nachricht steht immer der Text vom vorherigen Beitrag.
Naja ich Versuch das zu späterer Zeit nochmal.

Ansonsten war's das fürs erste.
Mal schauen wie ich in nächster Zeit weiter komme, es steht privat nämlich ein Umzug an (aber dafür mit zukünftig besseren Möglichkeiten fürs Hobby :hfg )
 

Servonaut
Zurück
Oben Unten