Erste Stufe:
da eine Roco Maus 2 vorhanden ist, bietet sich an die Anschlussbox 10761 als Booster an.
Verwendet wird ein MEGA 2560 und eine NodeMCU V3 als WiFi Modul.
15.4.2021
SW 4.89 aufgespielt. NodeMCU über RX2 TX2 am Arduino verbunden. WiFi in Heim WLAN eingebunden. Z21 Apps erkennen die Zentrale.
Nächster Schritt: Warten auf Hardwarelieferungen
15.2.2022
Mit der DCC Adresse 2 bewegt sich meine V100 Ost einige cm über die PG Zentrale. Angeschlossen ist ein interner Booster L 298. Steuerung über die Z21 App auf dem IPhone. Jetzt kann optimiert werden.
Display funktioniert.
16.2.2022
Es funktioniert! Mit einem Node MCU mit der Software 4.95 und dem L298 funktioniert der Fahrbetrieb erstmals. Auslesen geht allerdings noch nicht.
Linksammlung ( wird laufend erweitert)
Stückliste
Paterweb ( Tschechische Sprache )
Aufgebaut wird die Schaltung mit einem Arduino Nano und einem Motortreiber mit L298. Die beiden Endsensoren sind Reed Kontakte. In den entsprechenden Fahrzeugen ist ein Magnet befestigt, der die Reed Kontakte schaltet.
[code]
// angelehnt an (c) Michael Schoeffler 2016, http://www.mschoeffler.de
const int enb = 6; // PWM pin 6
const int in3 = 7;
const int in4 = 8;
int sensorA = 14 ; // Analog Pin 0 Haltepunkt A
int sensorB = 15; // Analog Pin 1 Haltepunkt B
void setup() {
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(enb, OUTPUT);
pinMode ( sensorA, INPUT ); //Sensor A und B als Input
pinMode ( sensorB, INPUT );
digitalWrite( sensorA , HIGH ); //Interne Widerst�nde setzen
digitalWrite( sensorB , HIGH );
}
void slow() {
analogWrite(enb, 128);
}
void fast() {
analogWrite(enb, 255);
}
void halt() {
analogWrite(enb, 0);
}
void loop() {
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
fast();
while (1) //Loop bis SensorA aktiviert ist
{
if ( digitalRead( sensorA ) == 0 ) //SensorA ist gegen 0 geschaltet
break ;
delay( 10 );
}
halt();
delay(5000);
// change of direction
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
fast();
while (1) //Loop bis SensorB aktiviert ist
{
if ( digitalRead( sensorB ) == 0 ) //SensorB ist gegen 0 geschaltet
break ;
delay( 10 );
}
halt();
delay(5000 );
}
[/code]
Den Arduino UNO mit L293 Motorshield habe ich auch verwendet. Funktioniert ebenso gut. Hier der Code:
[code]
#include "AFMotor.h"
int sensorA = 14 ; // Analog Pin 0 Haltepunkt A
int sensorB = 15; // Analog Pin 1 Haltepunkt B
AF_DCMotor motor( 1 ); //
void setup()
{
pinMode ( sensorA, INPUT ); //Sensor A und B als Input
pinMode ( sensorB, INPUT );
digitalWrite( sensorA , HIGH ); //Interne Widerst�nde setzen
digitalWrite( sensorB , HIGH );
}
void loop()
{
motor.run( FORWARD );
motor.setSpeed( 200 );
while (1) //Loop bis SensorA aktiviert ist
{
if ( digitalRead( sensorA ) == 0 ) //SensorA ist gegen 0 geschaltet
break;
delay( 10 );
}
motor.run( RELEASE );
delay( 5000 ); // 5 Sekunden Wartezeit
motor.run( BACKWARD );
motor.setSpeed( 200 );
while (1) //Loop bis SensorA aktiviert ist
{
if ( digitalRead( sensorB ) == 0 ) //SensorB ist gegen 0 geschaltet
break;
delay( 10 );
}
motor.run( RELEASE );
delay(5000 ); // 5 Sekunden Wartezeit
}
[/code]
.
Stellprobe auf einem Modul
Foren
Links
Modellbeleuchtungen Hufing Tronic
Servoansteuerung (Tutorial, HomoFaciens)
DCC Zentrale nach Philipp Gahtow
Pendelzugsteuerung mit Arduino
Drehscheibe ansteuern mit Arduino
Wolkingen Leds mit WS2812
HP1