INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Modellbahn in Klein oder Groß
19.07.2015, 12:47 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2015 12:53 von fraju.)
Beitrag #1
Modellbahn in Klein oder Groß
Gibt es hier einige welche sich spielerisch oder ernsthaft mit der Modelleisenbahn beschäftigen?
Viele denken das die Modelleisenbahn nichts mehr ab 12 Jahre ist.
Ja,dann hört das spielen auf und die Elektronikanwendungen fangen an.
Würde mich interessieren was so entwickelt/gebastelt wurde/wird.

Mit MEINEN Modellbahngruß " Rad ab" hoffe ich auf Informationen?

Nicht jeder Neuling in einem Forum hat keine Ahnung über die Materie!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.07.2015, 13:06
Beitrag #2
RE: Modellbahn in Klein oder Groß
Ich interessiere mich indirekt an Modelleisenbahn.
Ich hatte mal son "Starterkit" mit 2 Loks, ein paar Waggons und ein paar Schienen.

War sehr interessant das man 2 Loks separat mit einem Steuergerät steuern konnte.

Zudem besuche ich sehr gerne das Miniaturwunderland in Hamburg. Wenn ich eine Anlage dieser größe für mich haben könnte, wäre mein interesse groß. Diese Heim/Dachbodenplatten finde ich eher uninteressant.

Ich würde eher sagen das Modelleisenbahn AB 12 Jahre ist, nicht bis. Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.07.2015, 12:40 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2015 13:40 von fraju.)
Beitrag #3
RE: Modellbahn in Klein oder Groß
(19.07.2015 13:06)MeisterQ schrieb:  Diese Heim/Dachbodenplatten finde ich eher uninteressant.

Ich würde eher sagen das Modelleisenbahn AB 12 Jahre ist, nicht bis. Smile

Ich sagte bis 12 Jahren wird mit der Bahn am meisten gespielt,
danach geht das richtige "basteln" los

(20.07.2015 12:40)fraju schrieb:  
(19.07.2015 13:06)MeisterQ schrieb:  Diese Heim/Dachbodenplatten finde ich eher uninteressant.

Ich würde eher sagen das Modelleisenbahn AB 12 Jahre ist, nicht bis. Smile




Ich sagte bis 12 Jahren wird mit der Bahn am meisten gespielt,
danach geht das richtige "basteln" los

       





Das ist ein Steuerung für eine Kleinbahn!
Diese ist seriell mit Ausführenden Steuerung verbunden.
Eigentlich 8 Gleisblöcke/8Gleisblockabfragen/8Weichen/64Bit Lichtauswertung/Grafikfahrplananzeigen/PWM Fahrstrom
Bei Ausstellungen wird mit 2 Triebwagen gefahren, wobei die Besucher Alle Funktionen selbst bedienen können.
Zum lernen der Programmierung können auch mal 6 Loks fahren.
..es ist natürlich nicht Alles.

Es soll eigentlich Schüler und Jugendliche zum Verein locken, welche nichts mit der Modellbahn am Hut haben, aber gerne Elektronik basteln.
Der Erfolg ist eher minimalistisch, man sieht es ja in Foren.


Noch ein Altmodell was seinen Namen verdient.
Hier sind zu 95% teile eingesetzt welche über 30/40 Jahre alt sind.
Moderne Teile wie das Autokino,jetzt stehen keine Autos, sind natürlich Neuzeit.
Beleuchtung Blocksignale Sonstiges sind alle einzeln Ansteuerbar und im Programm eingebunden.

Ist alles ein wenig durcheinander gekommen.

Altmodellbahn

   
Eine kleine Steuerung


Angehängte Datei(en) Thumbnail(s)
       

Nicht jeder Neuling in einem Forum hat keine Ahnung über die Materie!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 21:05
Beitrag #4
RE: Modellbahn in Klein oder Groß
Hallo

Ich baue gerade ein Modul und werde es über einen Arduino Mega steueren.

Folgende Rahmenbedingungen Sollen/werden erfüllt

16 Servos
4/8 Schrittmotoren
20+20 WS2812 LEDs für Rückmeldung (aktuell)
10 Schaltrelais für Beleuchtung

Steuerung über I2C-Bus.

Soweit meine Rahmenbedingungen. Derzeit überlege ich, wie ich noch 2 zusätzliche Arduino's einbinde (für Erweiterung).

Mein aktuelles Programm stelle ich noch ein.

schönen Abend.

aldidilein
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 22:18 (Dieser Beitrag wurde zuletzt bearbeitet: 18.12.2017 22:20 von MicroBahner.)
Beitrag #5
RE: Modellbahn in Klein oder Groß
(19.07.2015 12:47)fraju schrieb:  Gibt es hier einige welche sich spielerisch oder ernsthaft mit der Modelleisenbahn beschäftigen?
Viele denken das die Modelleisenbahn nichts mehr ab 12 Jahre ist.
Ja,dann hört das spielen auf und die Elektronikanwendungen fangen an.
Würde mich interessieren was so entwickelt/gebastelt wurde/wird.

Mit MEINEN Modellbahngruß " Rad ab" hoffe ich auf Informationen?
Hallo,
Modellbahn und Elektronikbasteln passen ja sehr gut zusammen. Auf meiner Modellbahn werkeln inzwischen so ca. 10 Microprozessoren. Auch wenn die Loks noch 'analog' fahren ist die Bahn schon ziemlich 'digital'.
Ich habe für den Arduino auch eine Lib ( die MobaTools ) geschrieben, die viele bei der Moba häufig vorkommenden Aufgaben sehr erleichtert.
Für die 'Digitalos' gibt's auch einen arduinobasierten DCC-Zubehördecoder

Ich hoffe mal. dass ich kein "Rad ab" habe Big GrinBig Grin

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.12.2017, 16:41
Beitrag #6
RE: Modellbahn in Klein oder Groß
Hallo MoBa-Freunde,

Auch mich hat es vor ca. 3 Jahren gepackt. Mittlerweile 62 Jahre alt, seit 3,5 Jahren gesundheitshalber aus dem Arbeitsleben raus. Da mußte ein Hobby her.

MoBa, Kinderkram, war mein erster Gedanke. Aber man kann sich ja informieren.
Oh, digital ! Ich habe die letzten 20 Jahre Tankstellen repariert, da hatte man mit allerhand Elektronik und Software zu tun, man war also vorbelastet.
Also doch MoBa.

Eine volldigitale Anlage ist im Bau, Z21 als Zentrale, einige Littfinski-Decoder.
Und dann kommt man mit den Arduinos in Kontakt, ich mag diese Dinger.

Erst einige kleine Sachen, belebte Häuschen, einige Zubehördecoder.
Dann ein über Zubehördecoder gesteuertes Soundmodul für die Kirchenglocken.
Dann einen genialen, über CV programmierbaren Decoder nach Geoff Bunza.
Servo-Decoder für Weichen für den Club, ich glaub für mittlerweile über 40 Weichen.
Die Seite von Philipp Gathow entdeckt, eine Spiel-Z21 mit Arduino MEGA gebaut.
Mittlerweile bin ich beim Aufbau der neuesten Version der Arduino-Z21.
Ein paar kleine Test-Sachen, DCC-Monitor, Loconet-Monitor...

Und immer wieder Sachen für den Club, es ist ja nie genug Geld da, Ingo, kannst du nicht ??

Letztens einen Preisanzeiger für die Tankstelle, hatte hier im Forum großartige Hilfe.

Es macht mir jedoch viel Spaß, ich habe meine Beschäftigung, lerne etwas und
versauere nicht.

Wer näheres wissen möchte, immer Fragen.

Grüße und schöne Feiertage

Ingo
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.12.2017, 21:39 (Dieser Beitrag wurde zuletzt bearbeitet: 19.12.2017 21:41 von aldidilein.)
Beitrag #7
RE: Modellbahn in Klein oder Groß
Hallo

Ich freu mich, daß es doch einige MoBa-Freunde gibt, welche sich mit Arduino und Modellbahn beschäfftigen.

Anbei mein aktueller sketch für einen Arduino. Was mich derzeit beschäfftig ist, wie kann ich einen weiteren Arduino mit ansteuern.
So möchte ich z.B. Häuser per zusätzlichen Arduino ansteuern.

Code:
//Beginn Definitionsteil für Arduino mega

#include <Wire.h>
#include <Servo.h>
#include <Adafruit_MCP23017.h>
#include <Adafruit_PWMServoDriver.h>
#include <AFMotor.h>        
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 8           // Hier wird angegeben, an welchem digitalen Pin die WS2812 LEDs bzw. NeoPixel angeschlossen sind
#define NUMPIXELS 25     // Hier wird die Anzahl der angeschlossenen WS2812 LEDs bzw. NeoPixel angegeben
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800 );

//    Stepper für Drehscheibe
AF_Stepper motor(200, 2);

int aktuellePos = 0;    //Variable „aktuellePos“ wird angelegt und auf 0 gesetzt  
int Taster0=A8;        //Das Wort „Taster0“ steht jetzt für Gleis 1
int Taster30=A9;       //Das Wort „Taster30“ steht jetzt für Gleis 2
int Taster60=A10;       //Das Wort „Taster60“ steht jetzt für Gleis 3
int Taster180=A11;      //Das Wort „Taster195“ steht jetzt für Wenden 180° auf Gleis 1

Adafruit_MCP23017 mcp1; //Input Frankenberg Weichen und Signale 1. 16 Weichensteuerung
Adafruit_MCP23017 mcp2; //Input Frankenberg Beleuchtung Entkuppler
Adafruit_MCP23017 mcp3; //Input HP Bergrün
Adafruit_MCP23017 mcp4; //Input
Adafruit_MCP23017 mcp5; //Output Fankenberg Weichenpolarisierung
Adafruit_MCP23017 mcp6; //Output Fankenberg

#define PCA9685  0x40

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);
#define SERVOMIN  325 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  275 // this is the 'maximum' pulse length count (out of 4096)
boolean datenkomm=true;
int anzahl_servos = 16;
uint8_t servonum = 0;

//Funktion zum Schreiben auf einen PCA9685-Baustein
void PCA9685_Write(int adresse, byte daten) {
  Wire.beginTransmission(adresse);
  Wire.write(daten);
  Wire.endTransmission();
  delay(5);

//wird nicht benötigt da nur geschrieben werden soll
//Funktion zum Lesen des PCF8574-Bausteins  
//byte PCF8574_Read(int adresse) {
//  byte datenByte=0xff;
//  Wire.requestFrom(adresse,1);
//  if(Wire.available()){
//    datenByte=Wire.read();
//    datenkomm=true;
}

void setup() {

  //Setup für Drehscheibe
  motor.setSpeed(10);  // 10 rpm
  pinMode(Taster0, INPUT_PULLUP);    //Taster für die Stellung 0° (Pin5) ist ein Eingang
  pinMode(Taster30, INPUT_PULLUP);   //Taster für die Stellung 30° (Pin6) ist ein Eingang
  pinMode(Taster60, INPUT_PULLUP);   //Taster für die Stellung 60° (Pin7) ist ein Eingang
  pinMode(Taster180, INPUT_PULLUP);  //Taster für die 180° Drehung (Pin11) ist ein Eingang
    
  mcp1.begin(0);          // MCP 1 on Hardware address 0x20
  mcp1.pinMode(0, INPUT); // Weiche 1 Define GPA1 on MCP1 as input
  mcp1.pullUp(0, HIGH);
  mcp1.pinMode(1, INPUT); // Weiche 2 Define GPA2 on MCP1 as input
  mcp1.pullUp(1, HIGH);
  mcp1.pinMode(2, INPUT); // Weiche 3 Define GPA3 on MCP1 as input
  mcp1.pullUp(2, HIGH);
  mcp1.pinMode(3, INPUT); // DKW 1/1  Define GPA4 on MCP1 as input
  mcp1.pullUp(3, HIGH);
  mcp1.pinMode(4, INPUT); // DKW 1/2  Define GPA5 on MCP1 as input
  mcp1.pullUp(4, HIGH);
  mcp1.pinMode(5, INPUT); // DKW 2/1  Define GPA6 on MCP1 as input
  mcp1.pullUp(5, HIGH);
  mcp1.pinMode(6, INPUT); // DKW 2/2   Define GPA7 on MCP1 as input
  mcp1.pullUp(6, HIGH);
  mcp1.pinMode(7, INPUT); // Weiche 4  Define GPA8 on MCP1 as input
  mcp1.pullUp(7, HIGH);
  mcp1.pinMode(8, INPUT); // Weiche 5  Define GPA9 on MCP1 as input
  mcp1.pullUp(8, HIGH);
  mcp1.pinMode(9, INPUT); // Weiche 6/1 Define GPA9 on MCP1 as input
  mcp1.pullUp(9, HIGH);
  mcp1.pinMode(10, INPUT); // Weiche 6/2 Define GPA10 on MCP1 as input
  mcp1.pullUp(10, HIGH);
  mcp1.pinMode(11, INPUT); // Weiche 7   Define GPA11 on MCP1 as input
  mcp1.pullUp(11, HIGH);
  mcp1.pinMode(12, INPUT); // Signal 1  Define GPA9 on MCP1 as input
  mcp1.pullUp(12, HIGH);
  mcp1.pinMode(13, INPUT); // Signal 2  Define GPA9 on MCP1 as input
  mcp1.pullUp(13, HIGH);
  mcp1.pinMode(14, INPUT); // Signal 3  Define GPA10 on MCP1 as input
  mcp1.pullUp(14, HIGH);
  mcp1.pinMode(15, INPUT); // Signal 4  Define GPA11 on MCP1 as input
  mcp1.pullUp(15, HIGH);

  mcp2.begin(1);          // MCP 1 on Hardware address 0x21
  mcp2.pinMode(0, INPUT); // Weiche 1 Define GPA1 on MCP1 as input
  mcp2.pullUp(0, HIGH);
  mcp2.pinMode(1, INPUT); // Weiche 2 Define GPA2 on MCP1 as input
  mcp2.pullUp(1, HIGH);
  mcp2.pinMode(2, INPUT); // Weiche 3 Define GPA3 on MCP1 as input
  mcp2.pullUp(2, HIGH);
  mcp2.pinMode(3, INPUT); // Signal 1
  mcp2.pullUp(3, HIGH);
  mcp2.pinMode(4, INPUT); // Signal 2
  mcp2.pullUp(4, HIGH);
  mcp2.pinMode(5, INPUT); // DKW 2/1  Define GPA6 on MCP1 as input
  mcp2.pullUp(5, HIGH);
  mcp2.pinMode(6, INPUT); // DKW 2/2   Define GPA7 on MCP1 as input
  mcp2.pullUp(6, HIGH);
  mcp2.pinMode(7, INPUT); // Weiche 4  Define GPA8 on MCP1 as input
  mcp2.pullUp(7, HIGH);
  mcp2.pinMode(8, INPUT); // Weiche 5  Define GPA9 on MCP1 as input
  mcp2.pullUp(8, HIGH);
  mcp2.pinMode(9, INPUT); // Weiche 6/1 Define GPA9 on MCP1 as input
  mcp2.pullUp(9, HIGH);
  mcp2.pinMode(10, INPUT); // Weiche 6/2 Define GPA10 on MCP1 as input
  mcp2.pullUp(10, HIGH);
  mcp2.pinMode(11, INPUT); // Weiche 7   Define GPA11 on MCP1 as input
  mcp2.pullUp(11, HIGH);
  mcp2.pinMode(12, INPUT); // Signal 1  Define GPA10 on MCP1 as input
  mcp2.pullUp(12, HIGH);
  mcp2.pinMode(13, INPUT); // Signal 2  Define GPA10 on MCP1 as input
  mcp2.pullUp(13, HIGH);
  mcp2.pinMode(14, INPUT); // Signal 3  Define GPA10 on MCP1 as input
  mcp2.pullUp(14, HIGH);
  mcp2.pinMode(15, INPUT); // Signal 4  Define GPA11 on MCP1 as input
  mcp2.pullUp(15, HIGH);


  mcp5.begin(5);          // MCP 2 on Hardware address 0x24
  mcp5.pinMode(0, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 1
  mcp5.pinMode(1, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 2
  mcp5.pinMode(2, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 3
  mcp5.pinMode(3, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 4
  mcp5.pinMode(4, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 5
  mcp5.pinMode(5, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 6/1
  mcp5.pinMode(6, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 6/2
  mcp5.pinMode(7, OUTPUT); //Ansteuerung Weichenpolarisierung Weiche 7
  mcp5.pinMode(8, OUTPUT); // Ansteuerung Signalrelais Signal 1
  mcp5.pinMode(9, OUTPUT);  //Ansteuerung Signalrelais Signal 2
  mcp5.pinMode(10, OUTPUT); //Ansteuerung Signalrelais Signal 3
  mcp5.pinMode(11, OUTPUT); //Ansteuerung Signalrelais Signal 4
  mcp5.pinMode(12, OUTPUT); // Relais 1 Beleuchtung Bahn
  mcp5.pinMode(13, OUTPUT); // Relais 2 Beleuchtung Häuser
  mcp5.pinMode(14, OUTPUT); // Relais 3 Beleuchtung Straßen
  mcp5.pinMode(15, OUTPUT); //
  
  Wire.begin();
  Serial.begin(9600);
  PCA9685_Write(PCA9685,0xff);
  pwm.begin();
    pwm.setPWMFreq(50);  // Analog servos run at ~60 Hz updates
}

void setServoPulse(uint16_t n, double pulse)
{
  double pulselength;
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 50;   // 60 Hz
  pulselength /= 4096;  // 12 bits of resolution
  pulse *= 1000;
  pulse /= pulselength;
  pwm.setPWM(n, 0, pulse);

  pixels.begin(); // Initialisierung der NeoPixel
}
//  pixels.setPixelColor(1, pixels.Color(0,0,0));
//  delay(2000);
// End Setup

void loop()
{
  
  byte daten;
  if (mcp1.digitalRead(0)== HIGH)//Weiche 1 mit Herstückpolarisierung
    {uint16_t pulselen = SERVOMIN; { pwm.setPWM(0, 0, pulselen); }
    pixels.setPixelColor(0, pixels.Color(0,255,0)); // Pixel1 leuchtet in der Farbe Grün
    pixels.setPixelColor(1, pixels.Color(255,0,0)); // Pixel1 leuchtet in der Farbe Rot
    pixels.show(); // Durchführen der Pixel-Ansteuerung
    mcp5.digitalWrite(0, HIGH);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(0, 0, pulselen); }
    pixels.setPixelColor(0, pixels.Color(255,0,0)); // Pixel1 leuchtet in der Farbe Rot
    pixels.setPixelColor(1, pixels.Color(0,255,0)); // Pixel1 leuchtet in der Farbe Grün
    pixels.show(); // Durchführen der Pixel-Ansteuerung
    mcp5.digitalWrite(0, LOW);
    }
    
  if (mcp1.digitalRead(1)== HIGH)//Weiche 2 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(1, 0, pulselen); }
    pixels.setPixelColor(2, pixels.Color(0,255,0)); // Pixel1 leuchtet in der Farbe Grün
    pixels.setPixelColor(3, pixels.Color(255,0,0)); // Pixel1 leuchtet in der Farbe Rot
    pixels.show(); // Durchführen der Pixel-Ansteuerung
    mcp5.digitalWrite(1, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(1, 0, pulselen); }
    pixels.setPixelColor(2, pixels.Color(255,0,0)); // Pixel1 leuchtet in der Farbe Rot
    pixels.setPixelColor(3, pixels.Color(0,255,0)); // Pixel1 leuchtet in der Farbe Grün
    pixels.show(); // Durchführen der Pixel-Ansteuerung
    mcp5.digitalWrite(1, HIGH);
    }

if (mcp1.digitalRead(2)== HIGH)//Weiche 3 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(2, 0, pulselen); }
    mcp5.digitalWrite(2, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(2, 0, pulselen); }
    mcp5.digitalWrite(2, HIGH);
    }
    
  if (mcp1.digitalRead(3)== HIGH)//DKW 1/1
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(3, 0, pulselen); }
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(3, 0, pulselen); }
    }

  if (mcp1.digitalRead(4)== HIGH)//DKW 1/2
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(4, 0, pulselen); }
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(4, 0, pulselen); }
    }

  if (mcp1.digitalRead(5)== HIGH)//DKW 2/1
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(5, 0, pulselen); }
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(5, 0, pulselen); }
    }

  if (mcp1.digitalRead(6)== HIGH)//DKW 2/2
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(6, 0, pulselen); }
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(6, 0, pulselen); }
    }
  
  if (mcp1.digitalRead(7)== HIGH)//Weiche 4 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(7, 0, pulselen); }
    mcp5.digitalWrite(3, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(7, 0, pulselen); }
    mcp5.digitalWrite(3, HIGH);
    }

  if (mcp1.digitalRead(8)== HIGH)//Weiche 5 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(8, 0, pulselen); }
    mcp5.digitalWrite(4, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(8, 0, pulselen); }
    mcp5.digitalWrite(4, HIGH);
    }

  if (mcp1.digitalRead(9)== HIGH)//Weiche 6/1 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(9, 0, pulselen); }
    mcp5.digitalWrite(5, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(9, 0, pulselen); }
    mcp5.digitalWrite(5, HIGH);
    }

  if (mcp1.digitalRead(10)== HIGH)//Weiche 6/2 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(10, 0, pulselen); }
    mcp5.digitalWrite(6, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(10, 0, pulselen); }
    mcp5.digitalWrite(6, HIGH);
    }

  if (mcp1.digitalRead(11)== HIGH)//Weiche 7 mit Herstückpolarisierung
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(11, 0, pulselen); }
    mcp5.digitalWrite(7, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(11, 0, pulselen); }
    mcp5.digitalWrite(7, HIGH);
    }

  if (mcp1.digitalRead(12)== HIGH)//Signal 1
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(12, 0, pulselen); }
    mcp5.digitalWrite(8, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(12, 0, pulselen); }
    mcp5.digitalWrite(8, HIGH);
    }

  if (mcp1.digitalRead(13)== HIGH)//Signal 2
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(13, 0, pulselen); }
    mcp5.digitalWrite(9, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(13, 0, pulselen); }
    mcp5.digitalWrite(9, HIGH);
    }

   if (mcp1.digitalRead(14)== HIGH)//Signal 3
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(14, 0, pulselen); }
    mcp5.digitalWrite(10, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(14, 0, pulselen); }
    mcp5.digitalWrite(10, HIGH);
    }

  if (mcp1.digitalRead(15)== HIGH)//Signal 4
    { uint16_t pulselen = SERVOMIN; { pwm.setPWM(15, 0, pulselen); }
    mcp5.digitalWrite(11, LOW);
    }
  else
    { uint16_t pulselen = SERVOMAX; { pwm.setPWM(15, 0, pulselen); }
    mcp5.digitalWrite(11, HIGH);
    }
// Loop für Drehscheibe

if(aktuellePos == 0)      //Abfrage ob „aktuellePos“ „0“ ist
   {
  if(digitalRead(Taster30) == LOW) //Abfrage ob „Taster30“ betätigt ist
  {
    motor.step(15, BACKWARD, INTERLEAVE);
    pixels.setPixelColor(20, pixels.Color(0,255,0)); // Pixel1 leuchtet in der Farbe Grün
    aktuellePos = 30;     //setzt die Variable „aktuellePos“ auf 30°
  }
  }
if(aktuellePos == 30)      //Abfrage ob „aktuellePos“ 30° ist
  {
  if(digitalRead(Taster0) == LOW)  //Abfrage ob „Taster0“ betätigt ist
    {
    motor.step(15, FORWARD, INTERLEAVE);
    aktuellePos = 0;     //setzt die Variable „aktuellePos“ auf 0°
    }
  if(digitalRead(Taster60) == LOW) //Abfrage ob „Taster60“ betätigt ist
    {
    motor.step(15, BACKWARD, INTERLEAVE);  
    aktuellePos = 60;     //setzt die Variable „aktuellePos“ auf 60°
    }
    }        
if(aktuellePos == 60)      //Abfrage ob „aktuellePos“ 60° ist
  {
   if(digitalRead(Taster30) == LOW) //Abfrage ob „Taster30“ betätigt ist
    {
    motor.step(15, FORWARD, INTERLEAVE);
    aktuellePos = 30;     //setzt die Variable „aktuellePos“ auf 30°
    }
  if(digitalRead(Taster180) == LOW)
    {
    motor.step(150, BACKWARD, INTERLEAVE);
    aktuellePos = 180;  
    }
    }
if(aktuellePos == 180)      //Abfrage ob „aktuellePos“ 180° ist
  {
  if(digitalRead(Taster60) == LOW) //Abfrage ob „Taster60“ betätigt ist
    {
    motor.step(150, FORWARD, INTERLEAVE);
    aktuellePos = 60;     //setzt die Variable „aktuellePos“ auf 60°
    }
}

}

// End loop

Hallo

Nachtrag: Ich fahre derzeit Digital (MCC). Irgendwann möchte ich das mit dem Arduino und Signalen verbinden.

Gruß aldidilein
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.12.2017, 18:07
Beitrag #8
RE: Modellbahn in Klein oder Groß
(19.12.2017 21:39)aldidilein schrieb:  Was mich derzeit beschäfftig ist, wie kann ich einen weiteren Arduino mit ansteuern.
Was verstehst Du darunter? Soll der Arduino 1 dem anderen Kommandos geben was der wann zu tun hat?
Wenn die Entfernung nicht zu groß ist, würde ich I2C nehmen. Wie Du das Kommunikationsprotokoll aufbaust, hängt von den konkreten Anforderungen ab.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Digital-Modellbahn: DCC-Zubehördecoder MicroBahner 8 1.920 27.12.2017 20:57
Letzter Beitrag: MicroBahner
  Dumheit oder doch ein Fehler im System ? Gandalf 7 1.419 03.09.2016 10:16
Letzter Beitrag: amithlon
  Modellzeit / Tag-Nacht Simulation auf einer Modellbahn MK.Matthias 14 6.226 23.05.2016 23:15
Letzter Beitrag: SkobyMobil
Lightbulb Steuerung einer Modellbahn mit Arduino und PC via ethernet nilsh 8 9.280 19.03.2015 18:10
Letzter Beitrag: Home38
Rainbow Hochleistungs-Rechteckgenerator für Silberkolloid oder EMP JoeDorm 4 3.086 05.06.2014 19:57
Letzter Beitrag: rkuehle
  Autoradio/Car PC realisierbar oder zu komplex Simons 0 2.979 25.05.2014 12:08
Letzter Beitrag: Simons

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste