RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#26 von Hobbyprog , 26.09.2022 15:34

Hallo Du hoffentlich nicht so alter rhoenwolf,

ich habe jetzt nicht alles gelesen.
Aber warum installierst Du nicht Rocrail auf ein Rasperry falls Du keinen PC möchtest.
Das kostet nichts und ist eine vollwertige Modellbahn Software.
https://wiki.rocrail.net/rocrail-snapshot/

Du kannst dich dann auf die anderen Sachen z. B. Decoder usw, konzentrieren. Ich habe auch fast alle selber gebaut und programmiert.
https://bluethners.de/DCCProjekt/Zentrale/index.html

Rocrail hat auch eine XML Skript Schnittstelle, wo Du einiges Programmieren kannst.
https://wiki.rocrail.net/doku.php?id=xmlscripting-de

Mit Rocrail kannst Du auch leicht ein Stellpult mit LED Anzeige machen.
Ich hatte das schon mal mal hier vorgestellt.
🚂 Gleisstellpult mit Rückkanal für kleine bis mittlere Rocrail MoBa- Anlagen!
Alle Befehle werden dann simultan in Rocrail und Stellpult angezeigt. Egal von wo Du das Bedienst.

Im Moment experimentiere ich mit dem kostenlosen Z21 Modile App, damit kannst Du einfach mit dem Handy oder Tablett Loks fahren
https://bluethners.de/DCCProjekt/Zentral...ocRailSimpelZ21
Das funktioniert auch ohne meine 8,00€ ESP32 Lösung, wenn Du ein WLAN Router hast.
Die Funktionen sind ohne der Z21 Zentrale etwas eingeschränkt, aber die Loksteuerung mit 28 Funktionen und Weichen funktionieren!
Ich kann mir vorstellen, dass so das manuelle Rangieren mit einer Telexkupplung Spaß macht! und das ganz ohne Kosten, Lötarbeiten und Kabelsalat!

CV Lesen/Schreiben mach ich direkt in Rocrail, das ist so wieso komfortabler und geht mit fast jeder Zentrale.

Ich hoffe ich konnte ein wenig helfen.

Viele Grüße Martin


 
Hobbyprog
InterRegioExpress (IRE)
Beiträge: 422
Registriert am: 03.11.2020
Homepage: Link
Ort: NRW
Spurweite H0
Steuerung DCC Eigenbau
Stromart Digital

zuletzt bearbeitet 26.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#27 von Stahlblauberlin , 26.09.2022 15:58

Ganz schöner Aufwand, das Programm. Hab persönlich immer den "drang" identische Programmabläufe in Funktionen zu packen die ich nur mit den entsprechenden Parametern, hier: den Indizes, aufrufe..
Abgesehen davon: nach dem Setup passiert ja nicht so fürchterlich viel. Wenn die Delays rausfliegen und durch passende Konstrukte mit millis() ersetzt werden sollte die Performance stimmen. Den Rest muss ich mal in Ruhe zerpflücken. Die objektorientierte Herangehensweise ist zwar modern, aber bei begrenzten Ressourcen etwas sperrig. Hab für eine ähnliche Aufgabe Byte-Arrays benutzt (Jedes Bit ein Status) und Zuweisungen zu Klartext-Bezeichnern separat definiert. Da letztere statisch sind (zumindest in meinem Fall) hab ich sie via Progmem aus dem RAM gehalten.
Für das Status-Array haben 32 Byte = 256 Bit = 256 Stati gereicht, mit Bool hätte ich das achtfache gebraucht..


Stahlblauberlin  
Stahlblauberlin
Metropolitan (MET)
Beiträge: 3.240
Registriert am: 07.03.2022
Ort: Berlin
Spurweite H0, Z, G
Steuerung Roco digital, Z21-Nachbau
Stromart DC, Digital, Analog

zuletzt bearbeitet 26.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#28 von Gelöschtes Mitglied , 27.09.2022 13:37

hi, punkt geklärt :
"Meine Vermutung: du initialisierst dein obr[idx] von 0 ..43 greifst aber in Z616 auf idx= 44 zu!"

das ist sicherlich falsch, aber - leider - vermeidet es Nicht den Repeat
jedenfalls habe ich das mit wesentlich kleinerem Code auch probiert...scheint nicht ursächlich zu sein..



RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#29 von bertr2d2 , 27.09.2022 14:04

Hallo lupus,

Zitat von lupus51 im Beitrag #28
hi, punkt geklärt :
"Meine Vermutung: du initialisierst dein obr[idx] von 0 ..43 greifst aber in Z616 auf idx= 44 zu!"

das ist sicherlich falsch, aber - leider - vermeidet es Nicht den Repeat
jedenfalls habe ich das mit wesentlich kleinerem Code auch probiert...scheint nicht ursächlich zu sein..

größerer Code führt rein statistisch zu mehr Fehlern. Das ist kein Gegenbeweis zu der These, das ein Speicherfehler im Code existiert.
Ein "größere Arduino" garantiert Dir nicht, das der Dein Code dann funktioniert.

Stelle Deinen Code in irgendeiner Form Online, z.B. über github. Dann können die Leute drüber schauen und können Dir ggf. helfen, den/die Fehler zu lokalisieren.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.539
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 27.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#30 von RichyD , 27.09.2022 14:16

Servus Gerd,

Zitat von bertr2d2 im Beitrag #29
(...)Stelle Deinen Code in irgendeiner Form Online, z.B. über github. Dann können die Leute drüber schauen und können Dir ggf. helfen, den/die Fehler zu lokalisieren.(...)


das hat Wolf in #22 getan, mit einem Link zu Filehorst.
Ich hatte noch keine Zeit, selber zu schauen

Beste Grüsse,
Richy


bertr2d2 hat sich bedankt!
RichyD  
RichyD
InterCity (IC)
Beiträge: 871
Registriert am: 02.11.2020


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#31 von bertr2d2 , 27.09.2022 15:20

Hallo lupus,

Zitat von RichyD im Beitrag #30
Servus Gerd,
Zitat von bertr2d2 im Beitrag #29
(...)Stelle Deinen Code in irgendeiner Form Online, z.B. über github. Dann können die Leute drüber schauen und können Dir ggf. helfen, den/die Fehler zu lokalisieren.(...)
das hat Wolf in #22 getan, mit einem Link zu Filehorst.
Ich hatte noch keine Zeit, selber zu schauen


hoppla, das habe ich übersehen - Entschuldigung. Kurzer Check:

% cppcheck mng_realAllPins_new_man8.ino
Checking mng_realAllPins_new_man8.ino...
[mng_realAllPins_new_man8.ino:217]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:227]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:617]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:618]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:619]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:620]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:621]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:622]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:623]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:624]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.
[mng_realAllPins_new_man8.ino:625]: (error) Array 'obr[44]' accessed at index 44, which is out of bounds.

Das hatte Jo ja auch schon vermutet.

Ich würde das erstmal korrigieren und dann schauen, ob das Problem noch existiert.
Ich bin kein Arduinio Experte. Wird der Watchdog des Atmels abgeschaltet ?

Nachtrag:
Du gehst großzügig mit dem Speicher um:
struct objects_rows {
unsigned int idx;
unsigned int object_no;
unsigned int object_type;
unsigned int object_pin_type;
unsigned int object_io_type;
unsigned int led_no;
unsigned int servo_no;
unsigned int sensor_no;
unsigned int pin_no;
unsigned int count;
unsigned int direction_flag = 0;
bool isBool;
String conn_name;
bool enabled;
};

'unsigned int' ist 16Bit bei Arduino. Sicherlich können hier einige Variablen auf 8 Bit gesetzt werden (object_type, object_io_type ...). Speicher ist immer knapp bei Mikrocontrollern.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.539
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 27.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#32 von Stahlblauberlin , 27.09.2022 15:32

Der Watchdog muß explizit aktiviert werden, per default ist er aus. Dafür gibt es eigene Libraries: Arduino Reference


Stahlblauberlin  
Stahlblauberlin
Metropolitan (MET)
Beiträge: 3.240
Registriert am: 07.03.2022
Ort: Berlin
Spurweite H0, Z, G
Steuerung Roco digital, Z21-Nachbau
Stromart DC, Digital, Analog


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#33 von Gelöschtes Mitglied , 27.09.2022 16:23

hi,
habe ich doch geschrieben : "das ist sicherlich falsch" :
#44-Fehler hatte ich somit doch zugegeben

Zitat von bertr2d2 im Beitrag #31
Du gehst großzügig mit dem Speicher um


"Du gehst großzügig mit dem Speicher um" : schau ich gerne mal rüber..

mittlerweile habe ich einen anderen Sketch - ohne LED-Ansterung, sonst gleiche Funktionen -
neu geschrieben : kein Repeat bisher..am besten gehe ich hiervon in ganz kleinen Schritten aus..

Zitat von bertr2d2 im Beitrag #31
[mng_realAllPins_new_man8.ino:217]: (error) Array \'obr[44]\' accessed at index 44, which is out of bounds.

wie kriege ich denn diese Anzeige ?.. sowas kommt hier mit der "gewöhnlichen" IDE nicht..? oder rutscht das mit der
Anzeige der weißen Zeilen so schnell durch, daß ich das garnicht mitkriege ?

Gibts evtl eine bessere Entwicklungsumgebung zur Arduino-Programmierung ?
(für JAVA habe ich gern NetBeans verwendet oder auch Eclipse bei Webanwendung)



RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#34 von bertr2d2 , 27.09.2022 16:59

Hallo lupus,

Zitat von lupus51 im Beitrag #33

mittlerweile habe ich einen anderen Sketch - ohne LED-Ansterung, sonst gleiche Funktionen -
neu geschrieben : kein Repeat bisher..am besten gehe ich hiervon in ganz kleinen Schritten aus..


OK, dann könnte wirklich der Fehler sein:
void led_control(unsigned int servo_no)
...
switch (swd[servo_no].wstat)
{
case SW_STRAIGHT :
{
led_idx_on = swd[servo_no].idx_led_straight;
led_idx_off = swd[servo_no].idx_led_round;

led_pin_on = obr[led_idx_on].pin_no;
...
led_pin_off = obr[led_idx_off].pin_no;

so etwas ist oft eine Quelle für Fehler: Ohne Überprüfung von servo_no und led_idx_on/off würde ich das nicht machen. Immer vom schlimmsten ausgehen.

Zitat
Zitat von bertr2d2 im Beitrag #31
[mng_realAllPins_new_man8.ino:217]: (error) Array \'obr[44]\' accessed at index 44, which is out of bounds.
wie kriege ich denn diese Anzeige ?.. sowas kommt hier mit der "gewöhnlichen" IDE nicht..? oder rutscht das mit der
Anzeige der weißen Zeilen so schnell durch, daß ich das garnicht mitkriege ?


ich habe cppcheck unter Linux verwendet.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.539
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 27.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#35 von Gelöschtes Mitglied , 27.09.2022 17:36

hallo gerd,

zu "ich habe cppcheck unter Linux verwendet."

Danke für den Tipp..gibts auch für Win..habs gleich mal runtergeladen..

Vielen Dank !

Die kleine Mühe der Umwandlung oder Kopie in eine ..cpp-Datei lohnt sich jedenfalls !

nun hab ich Arbeit



RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#36 von Klaus3 , 27.09.2022 18:17

Hi,

warum verwendest du nicht einen Simulator mit Debugger? Einfach Programm darin laufen lassen und dann sieht man sich was falsch ist.

Rätselraten und endlos raumprobieren wäre mir zu doof!

Hatte ich ja schon Mal geschrieben...

Gruß Klaus


Klaus3  
Klaus3
InterCity (IC)
Beiträge: 546
Registriert am: 06.11.2015
Spurweite N
Stromart DC


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#37 von bertr2d2 , 27.09.2022 18:17

Hallo lupus,

Zitat von lupus51 im Beitrag #35
hallo gerd,
nun hab ich Arbeit


wenn Du schon dabei bist, würde ich Dir raten, die Daten gleich in einer Tabelle abzulegen:
  obr[row].idx = 1;
obr[row].object_no = row;
obr[row].object_type = OBJ_TYP_SERVO_PWM;
obr[row].object_pin_type = OBJ_PIN_TYPE_SERVO;
obr[row].object_io_type = OBJ_IO_TYPE_OUTPUT;
obr[row].servo_no = 0;
obr[row].pin_no = 9;
obr[row].conn_name = "PWM Servo 1 ST1WL Pin9";
obr[i].enabled = true;
row = 2;
obr[row].idx = row;
obr[row].object_no = row;
obr[row].object_type = OBJ_TYP_SERVO_PWM;
obr[row].object_pin_type = OBJ_PIN_TYPE_SERVO;
obr[row].object_io_type = OBJ_IO_TYPE_OUTPUT;
obr[row].servo_no = 1;
obr[row].pin_no = 10;
obr[row].conn_name = "PWM Servo 2 ST1 WR Pin10";
obr[i].enabled = true;
...
=>
struct object_rows obr[] = {
{ 0 },
{ 1, 1, OBJ_TYP_SERVO_PWM, OBJ_PIN_TYPE_SERVO, OBJ_IO_TYPE_OUTPUT, 0, 0, 0, 9, 0, 0, false, "PWM Servo 1 ST1WL Pin9", true},
{ 2, 2, OBJ_TYP_SERVO_PWM, OBJ_PIN_TYPE_SERVO, OBJ_IO_TYPE_OUTPUT, 0, 1, 0, 10, 0, 0, false, "PWM Servo 2 ST1 WR Pin10", true}
...
};

Das ergibt weniger Code-Zeilen und wird dadurch besser lesbar. Und dadurch dürfte die Code Größe auch etwas schrumpfen.

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


Domapi hat sich bedankt!
bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.539
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 27.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#38 von Domapi , 27.09.2022 18:48

Mach` doch mal nach jeder Befehlszeile oder nach größeren Blöcken ein

Serial.println("Zeile xx");

rein. Dann kannst Du sehen, bis zu welcher Zeile der Arduino kommt und dann einen Reset macht.
Dort muss der Fehler liegen.

BTW: Der Code ist sehr unübersichtlich, einige Anregungen, wie man das vereinfachen kann (mit Arrays und Index) etc. wurden ja schon genannt.


Viele Grüße
Martin

- Mein Trennungsbahnhof: viewtopic.php?f=64&t=152275
- Drehscheibensteuerung auf Arduinobasis "LocoTurn": https://wiki.mobaledlib.de/anleitungen/b...v10/150_inhalte


 
Domapi
CityNightLine (CNL)
Beiträge: 1.618
Registriert am: 22.09.2015
Ort: Nämberch
Gleise Ohne Pickel
Spurweite H0
Steuerung Mit Hirn und Verstand
Stromart DC, Digital


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#39 von Klaus3 , 27.09.2022 19:56

Hi,

Zitat
Daten in einer Tabelle ablegen



Ja aber dann bitte nicht als Kopie ins RAM, sondern als Daten im Flash. Einfach den Code so zu schreiben wie oben gezeigt, endet in einem gigantischen RAM-Verbrauch. Und dann muss man sich nicht wundern, wenn die Kiste neu startet, wo es für den Stack nicht reicht.

Irgendwie glaub ich aber, mit hört hier keiner zu.😭😀

Gruß
Klaus


Klaus3  
Klaus3
InterCity (IC)
Beiträge: 546
Registriert am: 06.11.2015
Spurweite N
Stromart DC


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#40 von bertr2d2 , 27.09.2022 22:10

Hallo Klaus,

Zitat von Klaus3 im Beitrag #39

Zitat
Daten in einer Tabelle ablegen
Ja aber dann bitte nicht als Kopie ins RAM, sondern als Daten im Flash. Einfach den Code so zu schreiben wie oben gezeigt, endet in einem gigantischen RAM-Verbrauch. Und dann muss man sich nicht wundern, wenn die Kiste neu startet, wo es für den Stack nicht reicht.

Irgendwie glaub ich aber, mit hört hier keiner zu.😭😀


zum bestehenden Code dürfte das erstmal keinen Unterschied machen im RAM Verbrauch. Der verlinkte Code nutzt rund die Hälfte des verfügbaren RAMs.
Aber Du hast volkommen Recht, besser man verwendet Flash Speicher, wenn der Inhalt statisch ist:

const struct PROGMEM objects_rows obr[] = {
{ 0 },
{ 1, 1, OBJ_TYP_SERVO_PWM, OBJ_PIN_TYPE_SERVO, OBJ_IO_TYPE_OUTPUT, 0, 0, 0, 9, 0, 0, false, "PWM Servo 1 ST1WL Pin9", true},
{ 2, 2, OBJ_TYP_SERVO_PWM, OBJ_PIN_TYPE_SERVO, OBJ_IO_TYPE_OUTPUT, 0, 1, 0, 10, 0, 0, false, "PWM Servo 2 ST1 WR Pin10", true},
...
};

Wenn dann noch die Typen in objects_rows angepasst werden, dann sollte noch reichlich Platz für Erweiterungen sein ...

Gruß

Gerd


Smallest Rocrail Server Ever II ist jetzt Smallest Railroad Server Ever II
SRSEII -> SRSEII (Raider heisst jetzt Twix, sonst ändert sich nix )


bertr2d2  
bertr2d2
CityNightLine (CNL)
Beiträge: 1.539
Registriert am: 09.10.2012
Spurweite H0
Stromart Digital

zuletzt bearbeitet 27.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#41 von andreas21 , 29.09.2022 09:05

Hallo lupus51,

ich habe jetzt auch nicht alles gelesen.
Aber warum nutzt du nicht Loconet-Panel?
Damit die Module ohne Zentrale zusammen arbeiten kannst du einen Arduino Nano als LocoNet Buffer nutzen. Zusätzlich wird eine 15 mA Stromquelle für den Datenaustausch und eine 12V Spannungsversorgung gebraucht. Die Zutaten findest Du auf den Seiten von Philipp.

Loconet Buffer mit Arduino Nano

Loconet Stromquelle

Die LnControlPanel habe ich mit Arduino Nano aufgebaut. Du kannst an den 32 Ports auf jedem Modul LEDs verbinden, Taster nutzen und mit Stromsensoren Belegt-Meldungen weitergeben. So zum Beispiel sind an einem Modul 32 Rückmelder angeschlossen und am zweiten Modul 32 LEDs die im Stellpult die Belegung der Gleise anzeigen. Jeder der 32 Ports kann als Eingang oder Ausgang genutzt werden.
Die Module können mit RJ12-Kabel verbunden werden. Für den Datenaustausch ist an einem Ende vom LocoNet der Arduino Nano als LocoNet Buffer mit der Stromquelle 15 mA und der 12V Versorgung für die Module angeschlossen.
Die Dateien für das Panel findest Du hier.

LnControlPanel

Loconet Buffer mit Arduino Uno

Wenn du diesen Aufbau nutzt können auch am LocoNet Servodecoder, Zubehördecoder und Sounddecoder gesteuert werden.

LocoNet Decoder mit Arduino Nano

Zum Einstellen der Decoder kann der Arduino Nano vom LocoNet Buffer mit USB zum PC verbunden werden und in z.B. Rocrail die LocoNet-Decoder eingestellt werden.
Für den Betrieb an der Anlage, analog oder digital, ist diese Verbindung nicht notwendig. Soll auch ein Programm auf dem PC den Zubehör steuern kann die USB-Verbindung dazu genutzt werden.
Viel Spaß beim Basteln.

PS.
wer LocoNet-Module auf Lochraster- oder Streifenraster-Platinen aufbauen will kann diese Modular-Westereinbaubuchsen RJ12 nutzen.
https://www.rm-computertechnik.de/Shop/1...dular_6P6C.html

Modularkabel RJ12, Stecker / Stecker, 6-adrig, 6P6C, 5m
https://www.rm-computertechnik.de/Shop/4...bel_6_6_5m.html

Kabel können auch bei Reichelt elektronik gekauft werden. zum Beispiel 3m Westernkabel, WK 6-6 3M


Viele Grüße
Andreas


vikr hat sich bedankt!
andreas21  
andreas21
EuroCity (EC)
Beiträge: 1.029
Registriert am: 06.07.2018
Ort: Brandenburg
Spurweite N, G
Steuerung Handregler
Stromart Digital

zuletzt bearbeitet 29.09.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#42 von Gelöschtes Mitglied , 01.10.2022 13:57

hi,

wegen der "Energiekrise" hat meine Freundin ne totale Haushaltsperre verkündet

gibt nix mit Neuinvestitionen bzw Neuplanungen,
muß ich ich momentan erstmal mit "dem alten Kram" weitermachen..
immhin funktioniert jetzt schon mal die Sensor-Weichensteurung per A.mega Ohne weitere LED'S

aber bezgl Rocrail und Loconet usw : werd ich mich schon mal "einlesen"

wünsche schönes WE


andreas21 hat sich bedankt!

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#43 von andreas21 , 01.10.2022 20:04

Hallo lupus51,

hier der Schaltplan mit dem ich den LocoNet Buffer aufgebaut habe.
Der Schaltungsteil "Statusanzeige" wird für die Funktion nicht benötigt. Die LED zeigt einen Datenaustausch am LocoNet an. Der Sketch auf dem Arduino Nano ist von Philipp.
Sketch & Bilder (Pin9 das CTS-Signal mit dem Arduino Pin 9 verbunden, Drahtbrücke)

Bild entfernt (keine Rechte)

Mit dem LocoNet Buffer habe ich einen Test mit einem Servodecoder gefilmt. Im Video ist links der LocoNet Buffer,
in der Mitte ein LN I/O Modul auf dem ein kleiner Sketch ständig den Befehl sendet das Servo umzuschalten und
rechts ein LN Servodecoder.



Die Programme (Sketch) der Eisenbahnfreunde99 habe ich auch getestet und in diesem Video sind ein I/O Modul als "Sounddecoder", ein I/O Modul und zwei Servodecoder zu sehen.
Getestet habe ich hier einen Sound abzuspielen.
Verschiedene Sounds können auf der SD-Karte gespeichert werden und mit den geplanten Decoder-Adressen gestartet/abgespielt werden.
Mit einem Kontakt im Gleis, manuell per Taster oder z.B. mit einem Hallsensor in der Fahrbahn der Car-Anlage kann über ein I/O Modul einen Sound am Sounddecoder gestartet werden.



Auf der Webseite von Dieter Etzold findest Du eine Corel Draw-Datei als Vorlage für eine Stelltafel. Diese Datei kann auch mit LibreOffice Draw genutzt werden.
Du kannst die Symbole bearbeiten und auch auf einer neuen Seite für deine Stelltafel neu zusammen stellen und ausdrucken.
Stelltafel

Viele Grüße
Andreas


davidlong1978 hat sich bedankt!
andreas21  
andreas21
EuroCity (EC)
Beiträge: 1.029
Registriert am: 06.07.2018
Ort: Brandenburg
Spurweite N, G
Steuerung Handregler
Stromart Digital

zuletzt bearbeitet 01.10.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#44 von Gelöschtes Mitglied , 01.10.2022 22:19

n'abend andreas,

oh jeh, muß noch viel lernen ! momentan verstehe ich meist nur "Bahnhof"

z.B. ist es momentan so, daß Keine meiner Loks einen Decoder hat.
Welchen Sinn macht dann DCC ?
Kann das z.B. auch nur für Weichen,Signale usw,Lichtschranken bzw sonstige Melder
verwendet werden, die Loks aber kriegen ein PWM-Signal aus einem selbstgebauten mobilen Handregler?

und woher soll das DCC-Sginal (oder so) eigentlich kommen ?

ähm, gibt es irgenwo eine allgemeinverständliche Einführung , wo auch Fachbegriffe erklärt werden,
nicht nur eine Anhäufung von Aussagen, was man noch alles machen könnte..

soory, aber ich fühl mich sooo dooof

morgen bin ich ganztags outdoor, montags wieder da..



RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#45 von Hobbyprog , 01.10.2022 23:24

Hallo rhoenwolf,

lass dich nicht verrückt machen.

Das ist alles ganz einfach.

Wenn Du digital Fahren möchtest, brauchst Du eine Zentrale, welche das gewünschte Protokoll unterstützt.

Für Spur N ist DCC das gängige Protokoll das aber auch für H0 geeignet ist.
Märklin hat ein eigenes Protokoll, unterstützt aber auch das DCC-Protokoll.

Dann müssen die Loks ein entsprechender Decoder haben. Die Empfangen die Befehle der Zentrale.
Die Gleisspannung ist immer an, der Trafo sitzt praktisch im Lokdecoder.
DCC-Decoder bekommst Du ab 22€ ,

Das ist eigentlich schon alles. Eine einfache Zentrale hat keine Bedienoberfläche.

Daher hast Du da auch mehre Optionen.

1, Einfach Zentrale ab 25€ mit PC-Steuerung. Ich verwende das kostenlose Rocrail und meine Eigenbau - Zentrale. Das DCC ++ Projekt ist auch für Bastler gut geeignet.
2. Zentrale mit Eingabefeld für Lokadressen und und Weichen < 100€ . Ist für sehr kleine Anlagen geeignet.
3. Zentrale mit großem Display und Gleisplan > 600€ und vielen Einstellungen usw. kann aber auch mit einem PC gesteuert werden.

Über die Zentrale bzw Modellbahnsoftware und Zubehördecoder kannst Du dann z. B. für Weichen, Signale, Licht, Signale usw schalten.
Auch das hast Du eine große Auswahl an Eigenbauten oder kommerziellen Produkten.


Um eine MOBa automatisch zu fahren, müssen Rückmelder vorhanden sein. Die melden der Zentrale bzw Software, ob eine Lok einen Abschnitt erreicht hat.

Dort ist das S88 Protokoll seit Jahren aktuell.
Es gibt aber mittlerweile viel andere Bussysteme CAN BIDI usw. die das angeblich besser machen. Das ist auch teilweise nicht falsch, solange es gut funktioniert.
Wenn aber mal Fehler auftreten, ist der nicht so eingearbeitet Anwender schnell an Ende.
Für mich hätte nur die Lokmelder z. B. Railcom ein echten mehr Wert, für meine Rocrail Anlage.

Das ist natürlich alles nur meine Meinung, daher unmaßgeblich.

Auf meine Homepage habe ich ein Bild, das ungefähr die Komponenten einer digitalen Modellbahn zeigt.

https://bluethners.de/DCCProjekt/Zentral...html#Komponente

Ich hoffe das ich ein wenig helfen konnte.

Viele Grüße Martin


 
Hobbyprog
InterRegioExpress (IRE)
Beiträge: 422
Registriert am: 03.11.2020
Homepage: Link
Ort: NRW
Spurweite H0
Steuerung DCC Eigenbau
Stromart Digital


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#46 von andreas21 , 01.10.2022 23:27

Hallo lupus51,

steht da in meinem Text "DCC" dann habe ich mich verschrieben, entschuldige bitte.
Es wird nur Loconet mit dem LocoNet Buffer und auch nur zwischen den Modulen ohne Zentrale und ohne PC genutzt.

Die LnControlPanel können in der Arduino IDE im Serial Monitor eingestellt werden. Hier wird z.B. für einen Port ein Switch und eine LocoNet Adresse eingestellt, z.B. "1".
Mit dem Taster kann dann zum Beispiel ein Servo mit LocoNet Adresse "1" geschaltet werden.
Ein anderer Port für zwei LEDs erhält eine weitere LocoNet Adresse und kann die Signalstellung (z.B. rot/grün) anzeigen. (oder Weichenstellung)

An einem LocoNet I/O Modul sind Rückmelder angeschlossen die dann Belegtmeldung der Gleise weiter geben u.v.a.m.. Hier werden die Ports auf Input mit freien, noch ungenutzte Adressen z.B. 32 bis 47 eingestellt.
16 Ports an einem LnControlPanel werden dann auf Output mit den Adressen 32 bis 47 eingestellt und hier können dann 16 LEDs die Belegtmelder anzeigen.

Die Module nutzen für die Kommunikation LocoNet und damit der Austausch ohne Zentrale funktioniert wird die 15mA Stromquelle und die 12V Versorgung auf dem Bus benötigt.

Zum ersten Einstellen der LocoNet Decoder kann der LocoNet Buffer die Verbindung der Module mit USB zum PC herstellen.
Der LocoNet Buffer wird erst hier "voll" genutzt wenn Decoder z.B. mit Rocrail am PC voreingestellt werden.
Zum Beispiel am Servodecoder die Adressen für die Servo einstellen (1..2048), den Stellweg und die Geschwindigkeit der Stellbewegung voreinstellen.

Für den Betrieb an der Anlage wird dann keine Zentrale, DCC oder PC benötigt. Nur die LocoNet Module sind verbunden und der LocoNet Buffer liefert die 12V und stellt die
Stromquelle 15mA bereit. Das wird sonst von einer Zentrale ausgegeben.

Bild entfernt (keine Rechte)

Links:
LocoNet

Viele Grüße
Andreas


andreas21  
andreas21
EuroCity (EC)
Beiträge: 1.029
Registriert am: 06.07.2018
Ort: Brandenburg
Spurweite N, G
Steuerung Handregler
Stromart Digital

zuletzt bearbeitet 02.10.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#47 von Hobbyprog , 01.10.2022 23:34

Hallo

Hoppla .... ich glaube ich war mit mein DCC-Thema oben am falschen Ort.
Aber eventuell hilft es dennoch jemand.

Viele Grüße Martin


 
Hobbyprog
InterRegioExpress (IRE)
Beiträge: 422
Registriert am: 03.11.2020
Homepage: Link
Ort: NRW
Spurweite H0
Steuerung DCC Eigenbau
Stromart Digital

zuletzt bearbeitet 02.10.2022 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#48 von Gelöschtes Mitglied , 03.10.2022 08:56

moin

Zitat
Wenn Du digital Fahren möchtest, brauchst Du eine Zentrale, welche das gewünschte Protokoll unterstützt.



hallo ?

in meinem Thread #8 hatte ich geschrieben :

Zitat
ich fahre Gleichstrom-Loks Epoche I-III in Spur N..das ist alles so winzig..weiß nicht, wo da noch ein Dekoder reinpassen soll.


und da die Lokmodelle auf dem Markt nur sehr spärlich zu erhalten sind, möchte ich da auch Nicht unkompetent herumfriemeln,
freue mich, daß sie noch gut fahren !

Es ist doch auch nicht so, daß automatisches Fahren von Protokollen und Netzen abhängig ist :
in meinen jugendlichen Jahren habe ich rein mit Märklins elektromechanischer Technik ohne Probleme
automatisch fahren können !!!

Jetzt mache ich das mit Reflex-Lichtschranken und Sensoren statt mit mechanischen Kontakten, H-Brücken-Ansteurung und PWM-Handregler
und halt dem Arduino Mega 2560...

..bite sich nicht ärgern, aber so verstehe ich auch wenigstens einigermaßen ,
was ich da mache, ok ?

wünsche schönen Montag..


zuletzt bearbeitet 03.10.2022 10:15 | Top

RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#49 von MicroBahner , 06.10.2022 20:40

Zitat von lupus51 im Beitrag #48
Es ist doch auch nicht so, daß automatisches Fahren von Protokollen und Netzen abhängig ist :

Absolut nicht. Das hatte ich mit meinem Post #16 ja schon sagen wollen. Und ein Arduino Mega reicht da eben für eine ganze Menge automatisches Fahren aus. Das was Du vorhast, lasst sich damit sicher realisieren - sprich Du brauchst keinen 'mächtigeren Arduino' ( auch wenn's mächtigere Arduino kompatible Boards gibt ).

Deine Probleme liegen sicher 'nur' im Aufbau deines Sketches.


viele Grüße
Franz-Peter
Ein 'elektromechanisches' Stellwerk
Der (ehemalige) 'Eisberg'


 
MicroBahner
Metropolitan (MET)
Beiträge: 2.833
Registriert am: 28.11.2012
Ort: Mittelfranken
Gleise Tillig Elite
Steuerung Eigenbau
Stromart Analog


RE: gibt es einen Noch Mächtigeren Arduino als den A. mega ?

#50 von Gelöschtes Mitglied , 06.10.2022 22:23

n'abend,

ich habe den Eindruck, es hängt auch manchmal mit der Stromversorgung zusammen..wenn deren Innenwiderstand zu hoch ist,
oder wenn zuviel "Ripple" vorhanden ist, "spinnt" der Arduino !

Mit einer vereinfachten Schaltung unter Weglassen der LED'S, Sensoren für die Weichen-Servos
und mit einfachen Schaltern für die Fahrspannung auf den Blockstrecken funktioniert es ja schon.

Dafür habe ich in der Bastelkiste ein vor "zig" Jahren gebautes Netzteil (LM317K) mit ganz sauberer Ausgansspannung gefunden,
allerdings reichte die Belastbarkeit Nicht für das "Große" GBS, wofür ich den "Arduino-Gott" suchte..da spinnt der Ardi wieder, aber anders :
irgendwie kriegen die TTP223-Sensoren "von hinten" Spannung und leuchten abwechselnd wie ne Baustellen-Lichterkette..

hab jetzt bei pollin ein Netzteil gefunden, daß die Aufgabe schaffen dürfte..hoffe nur, daß es KEIN Schaltnetzteil ist :
ich brauche beim "Großen" GBS etwa 15V für die Fahrspannung und die LED-Zeilen , für den Ardi-mega ist ein Schaltregler mit 8V
und für die Sensoren sowie weitere Einzel-LED'S u Weichen - LED'S und Servos ein Schaltregler mit 5V nachgeschaltet.

Wenn man nämlich 2 Schaltregler hintereinander schaltet, kriegt man nen schönen Sägezahn an den Schaltregler-Ausgängen

Jetzt kann mein Krokodil wieder schleppen...hurra !


zuletzt bearbeitet 06.10.2022 23:50 | Top

   

Z21 Maintenance-Tool + WLan-Maus Update
New Freeware Version ESU player NextGen 6.3.3 ready for download

  • Ähnliche Themen
    Antworten
    Zugriffe
    Letzter Beitrag
Xobor Einfach ein eigenes Forum erstellen
Datenschutz