Elektronika na kolejišti

21.02.2025

Jednoduše použití zvukového modulu.Lze spouštět ručně například hlášení, nebo ve vagonu spouštěný magnetem na kolejí a přes snímač s jazýčkovým kontaktem na spodku vagonu.

lze doplnit i malým zesilovačem 2x5W PAM8406.cena každého modulu je přibližně 40 korun.

Použití led pásku - imitace zářivkového svítidla vyrobené z hliníkové lišty.Já používám napětí 24 V, pro 12 V budou srážecí odpory 05 - 1.5 K ohmu.

Pro osvětlení vozů používám katalogové zapojení obvodu stabilizátoru LM317.Napětí se dá brát z kolejí přes diodový můstek např. DB107.Použitý odpor R1 při zapojených 8 diodách na výstupu je 50 Ohmů.

zapojení na univerzální desce ve vagonu.

Jednoduchá pendl automatika.Základní zapojení je na obrázku.

Vložení diody do kolejnice.

Já pro ovládání směru a spouštění používám Arduino k řízení. 

Jízda se spouští tlačítkem. na Arduino je napojen zvukový modul se zesilovačem (vlak před rozjezdem zapíská) a přes relé se sepne napětí nastavené na regulátoru.Jakmile lokomotiva přejede koncovou diodu vlak se zastaví a po nastaveném čase arduino přepne relé s napětím opačné polarity a vlak jede zpět.

Program pendl se zvukem pro arduino:

#define RELE1_PIN 4

#define RELE2_PIN 5

#define RELE3_PIN 6

#define RELE4_PIN 7

int start = 8; // tlacitko

#define LED_ZELENA_PIN 9

#define LED_RUDA_PIN 10

#include "SoftwareSerial.h"

#include "DFRobotDFPlayerMini.h"

// Use pins 2 and 3 to communicate with DFPlayer Mini

static const uint8_t PIN_MP3_TX = 2; // Connects to module's RX

static const uint8_t PIN_MP3_RX = 3; // Connects to module's TX

SoftwareSerial softwareSerial(PIN_MP3_RX, PIN_MP3_TX);

// Create the Player object

DFRobotDFPlayerMini player;

int buttonState = 0;

void setup() {

pinMode(start, INPUT);

digitalWrite(start, HIGH);

pinMode(RELE1_PIN, OUTPUT);

pinMode(RELE2_PIN, OUTPUT);

pinMode(RELE3_PIN, OUTPUT);

pinMode(RELE4_PIN, OUTPUT);

pinMode(LED_ZELENA_PIN, OUTPUT);

pinMode(LED_RUDA_PIN, OUTPUT);

// nuluje relatka, Led

digitalWrite(RELE1_PIN, HIGH);

digitalWrite(RELE2_PIN, HIGH);

digitalWrite(RELE3_PIN, HIGH);

digitalWrite(RELE4_PIN, HIGH);

digitalWrite(LED_ZELENA_PIN, HIGH);

digitalWrite(LED_RUDA_PIN, HIGH);

// Init USB serial port for debugging

Serial.begin(9600);

// Init serial port for DFPlayer Mini

softwareSerial.begin(9600);

// Start communication with DFPlayer Mini

if (player.begin(softwareSerial)) {

Serial.println("OK");

// Set volume to maximum (0 to 30).

player.volume(30);

// Play the first MP3 file on the SD card

// player.play(1);

} else {

Serial.println("Connecting to DFPlayer Mini failed!");

}

}

void loop() {

digitalWrite(LED_ZELENA_PIN, LOW);

buttonState = digitalRead(start);

if (buttonState == LOW) // ceka na stisk tlacitka

{

digitalWrite(LED_RUDA_PIN, LOW);

digitalWrite(LED_ZELENA_PIN, HIGH);

delay(6000);

// spusti zvuk

player.play(1);

delay(6000);

// vlak se rozjede

digitalWrite(RELE1_PIN, LOW); // vpred

digitalWrite(RELE2_PIN, LOW); // vpred

delay(6000);

digitalWrite(RELE1_PIN, HIGH); // stop

digitalWrite(RELE2_PIN, HIGH); // stop

// vlak ceka

delay(5000);

digitalWrite(RELE3_PIN, LOW); // vzad

digitalWrite(RELE4_PIN, LOW); // vzad

delay(6000);

digitalWrite(RELE3_PIN, HIGH); // stop

digitalWrite(RELE4_PIN, HIGH); // stop

digitalWrite(LED_ZELENA_PIN, LOW);

digitalWrite(LED_RUDA_PIN, HIGH);

// vlak ceka

delay(5000);

} else { }

}