Recente berichten

Pagina's: 1 2 [3] 4 5 ... 10
21
Planning modelbaan / Re: Klein en simpel rangeerbaantje
« Laatste bericht door Bert Gepost op 3 augustus 2025, 12:45:12 »
En dan een sketch om hem DCC aan te sturen


#include <Servo.h>
#include <DCC_Decoder.h>

#define SERVO_PIN 9    // Pin waar de servo op is aangesloten
#define DCC_ADDR 3     // DCC-adres voor deze servo (standaard = 3)

Servo mijnServo;

// Instelbare parameters via DCC
int beginHoek = 0;      // Standaard beginhoek (0°)
int eindHoek = 90;      // Standaard eindhoek (90°)
int snelheid = 15;      // Snelheid in ms per graad
int huidigePositie = 0; // Huidige positie van de servo

void setup() {
  Serial.begin(115200);
  Serial.println("DCC-gestuurde Servo Controller");

  mijnServo.attach(SERVO_PIN);
  mijnServo.write(beginHoek); // Startpositie instellen

  // DCC-decoder initialiseren
  DCC.SetBasicAccessoryDecoderPacketHandler(DCCPacketHandler, true);
  DCC.SetupDecoder(0x00, 0x00, 0); // Basis DCC-instellingen
  Serial.println("Wacht op DCC-commando's...");
}

void loop() {
  DCC.loop(); // DCC-decoder bijwerken
}

// Verwerkt DCC-commando's
void DCCPacketHandler(int adres, int functie, bool direction, bool power) {
  if (adres != DCC_ADDR) return; // Alleen reageren op het juiste DCC-adres

  if (functie == 1) { // Functie F1: Stel beginhoek in (0-180)
    beginHoek = map(direction ? 1 : 0, 0, 1, 0, 180);
    Serial.print("Beginhoek ingesteld op: ");
    Serial.println(beginHoek);
  }
  else if (functie == 2) { // Functie F2: Stel eindhoek in (0-180)
    eindHoek = map(direction ? 1 : 0, 0, 1, 0, 180);
    Serial.print("Eindhoek ingesteld op: ");
    Serial.println(eindHoek);
  }
  else if (functie == 3) { // Functie F3: Start beweging
    beweegServo();
  }
}

// Beweeg de servo van begin- naar eindpositie
void beweegServo() {
  Serial.println("Beweging gestart...");
 
  if (beginHoek < eindHoek) {
    // Naar boven bewegen
    for (huidigePositie = beginHoek; huidigePositie <= eindHoek; huidigePositie++) {
      mijnServo.write(huidigePositie);
      delay(snelheid);
    }
  } else {
    // Naar beneden bewegen
    for (huidigePositie = beginHoek; huidigePositie >= eindHoek; huidigePositie--) {
      mijnServo.write(huidigePositie);
      delay(snelheid);
    }
  }
  Serial.println("Beweging voltooid");
}


Met uitleg:

Hoe werkt het?**
1. **DCC-adres instellen** 
   - Het DCC-adres van de servo is standaard `3` (aanpasbaar via `#define DCC_ADDR`). 
   - Gebruik een DCC-centrale (zoals Rocrail, JMRI of een DCC-command station) om commando's te sturen.

2. **Commando's via DCC-functies** 
   - **F1 (Aan/Uit)** → Stelt de **beginhoek** in (0-180°). 
   - **F2 (Aan/Uit)** → Stelt de **eindhoek** in (0-180°). 
   - **F3 (Aan)** → Start de beweging van begin- naar eindstand. 

3. **Snelheid aanpassen** 
   - De snelheid is handmatig instelbaar in de code (`int snelheid = 15;`). 

---

### **Benodigdheden**
- **DCC Decoder** (zoals een Arduino met DCC-interface of een standaard DCC-accessoire-decoder). 
- **Servo** (aangesloten op de ingestelde pin, standaard **Pin 9**). 
- **DCC Command Station** (bijv. Digitrax, Lenz, Roco). 

### **Mogelijke uitbreidingen**
- Meerdere servos aansturen met verschillende DCC-adressen. 
- Snelheid instelbaar maken via DCC (bijv. via F4). 
- Feedback geven naar de centrale (bijv. via RailCom). 
22
Planning modelbaan / Re: Klein en simpel rangeerbaantje
« Laatste bericht door Bert Gepost op 3 augustus 2025, 12:38:53 »
Hoi Tom,
Mooi bezig.

Je zou een losse Nano kunnen gebruiken en daar een sketch op kunnen laden met een instelbare snelheid die veel lager is.

Ik laat AI vaak het meeste werk dien, meestal gaat dat meteen goed.
Onderstaand een voorbeeld, niet getest.


#include <Servo.h>

Servo mijnServo;  // Maak een servo object aan

// Standaardwaarden
int beginHoek = 0;
int eindHoek = 90;
int snelheid = 10;  // milliseconden vertraging per graad
int huidigePositie;

void setup() {
  mijnServo.attach(9);  // Sluit servo aan op pin 9
  Serial.begin(9600);
 
  // Initialiseer servo op beginpositie
  huidigePositie = beginHoek;
  mijnServo.write(huidigePositie);
 
  // Toon instructies
  Serial.println("Servo controller met instelbare begin/eindstand en snelheid");
  Serial.println("Gebruik de volgende commando's:");
  Serial.println("b[hoek] - Stel beginhoek in (0-180)");
  Serial.println("e[hoek] - Stel eindhoek in (0-180)");
  Serial.println("s[snelheid] - Stel snelheid in (1-100 ms per graad)");
  Serial.println("r - Start beweging");
  Serial.println("p - Pauzeer beweging");
  Serial.println("Huidige instellingen:");
  printInstellingen();
}

void loop() {
  if (Serial.available() > 0) {
    verwerkCommando(Serial.read());
  }
}

void verwerkCommando(char commando) {
  static int waarde = 0;
 
  if (isDigit(commando)) {
    waarde = waarde * 10 + (commando - '0');
  } else {
    switch (commando) {
      case 'b':  // Beginhoek instellen
        beginHoek = constrain(waarde, 0, 180);
        Serial.print("Beginhoek ingesteld op: ");
        Serial.println(beginHoek);
        break;
      case 'e':  // Eindhoek instellen
        eindHoek = constrain(waarde, 0, 180);
        Serial.print("Eindhoek ingesteld op: ");
        Serial.println(eindHoek);
        break;
      case 's':  // Snelheid instellen
        snelheid = constrain(waarde, 1, 100);
        Serial.print("Snelheid ingesteld op: ");
        Serial.print(snelheid);
        Serial.println(" ms per graad");
        break;
      case 'r':  // Start beweging
        beweegServo();
        break;
      case 'p':  // Pauzeer beweging
        // Pauzeren gebeurt automatisch aan het eind van een beweging
        Serial.println("Beweging voltooid of gepauzeerd");
        break;
    }
    waarde = 0;
    printInstellingen();
  }
}

void beweegServo() {
  Serial.println("Beweging gestart...");
 
  if (beginHoek < eindHoek) {
    // Naar boven bewegen
    for (huidigePositie = beginHoek; huidigePositie <= eindHoek; huidigePositie++) {
      mijnServo.write(huidigePositie);
      delay(snelheid);
      if (Serial.available() > 0 && Serial.peek() == 'p') {
        Serial.read();  // Leeg de buffer
        break;
      }
    }
  } else {
    // Naar beneden bewegen
    for (huidigePositie = beginHoek; huidigePositie >= eindHoek; huidigePositie--) {
      mijnServo.write(huidigePositie);
      delay(snelheid);
      if (Serial.available() > 0 && Serial.peek() == 'p') {
        Serial.read();  // Leeg de buffer
        break;
      }
    }
  }
 
  Serial.println("Beweging voltooid");
}

void printInstellingen() {
  Serial.print("Begin: ");
  Serial.print(beginHoek);
  Serial.print("°, Eind: ");
  Serial.print(eindHoek);
  Serial.print("°, Snelheid: ");
  Serial.print(snelheid);
  Serial.println("ms/graad");
}

23
Planning modelbaan / Re: Klein en simpel rangeerbaantje
« Laatste bericht door iTom Gepost op 3 augustus 2025, 12:00:56 »
En dan eindelijk wat bestellingen binnen.
Servo's, leds, geluidsdrager enz. enz.

2 dagen bezig geweest, ja ja, het tempo zit er nog niet echt in en verwacht ook niet dat het terug zal komen.
Geen probleem, vrije tijd genoeg.

Het was wel weer even puzzelen met de aandrijving en synchroon geluid.
Daar moet nog wel wat aan gedaan worden en misschien ook wat andere geluiden van deuren die met een beng dicht vallen.
De snelheid van het openen zou ook wat minder snel mogen maar dat gaat helaas niet lukken.
In de DCCNext is de laagste snelheid met het getal 100, zet je het bijv. op 50 dan gaat het nog sneller.

Nou ja, voorlopig ben ik er wel weer tevreden over.
Dan tot slot een kort filmpje met geluid.

24
Planning modelbaan / Re: Klein en simpel rangeerbaantje
« Laatste bericht door iTom Gepost op 3 augustus 2025, 11:58:11 »
De laatste tijd niet veel aan mijn baantje gewerkt.
Soms was het te warm of was het spannend in de Tour de Frans met Mathieu v.d. Poel.
Maar ook geen tijd (mantelzorg kost veel tijd) of behoefte aan het middag dutje.

Het bruggetje wilde ik nog wat verder bewerken, met een beetje drybrushen en met de poedertjes van Vallejo lekker zitten knoeien.
Het geheel in de blanke lak gespoten en nu kan het geplaatst worden en vastgelijmd.
Zie de verschillen.





Macro opname laten de klinknageltjes beter zien.


25
Planning modelbaan / Re: Planning van mijn spoorbaan
« Laatste bericht door Frits Gepost op 15 juli 2025, 11:28:57 »
Na enige overwegingen ben ik op 1:20 uitgekomen en heb een proefje geprint van mijn standaard wissel.



Het viel niet tegen. Ik kon het toch niet laten om de bovenste laag in zilver te printen :D
Nu eens kijken wat er nog meer beeldbepalend is op die layout.
26
Planning modelbaan / Planning van mijn spoorbaan
« Laatste bericht door Frits Gepost op 14 juli 2025, 14:30:47 »
Ik heb een tamelijk opmerkelijk baanontwerp en zit een beetje te twijfelen of ik niet beter eerst een model van mijn modelbaan zal maken.
Mijn 3D printers zijn 'gewillige' en geweldige helpers daarbij.
Wat voor schaal is nu het beste om een mini H0 baan uit te beelden?
Te klein, dan zie je niks en is het niet meer te printen.
Te groot, is veel werk en waar laat je zoiets dan.

Het is natuurlijk slechts een statisch geheel, maar het gaat om het inleven in de werkelijke baan.
Een layout, die overigens maximaal (2 x 1600) x 1600 mm is en aan alle kanten toegankelijk en verrijdbaar is.
Het geheel is een rangeerterrein bij een fabriek met nauwelijks landschap.

Wat zegt jullie gevoel je? ::) Is 1:10 een handige verhouding? Of is dat al te klein? H0/10= 1:870. :o
27
Elektronische en digitale techniek / Re: Pendelautomaat met Arduino - voor analoge rijders
« Laatste bericht door Frits Gepost op 13 juli 2025, 08:19:46 »
Heel interessante en leerzame materie.
Ook op mijn baan gaan straks treinen min of meer pendelen en ook die treinen worden met software aangestuurd.
De door mij beoogde ESP32 verschilt in weze niet zo heel veel van een Arduino. Komt goed. ;D
28
Diorama-bouw / Re: Eigen huis als diorama
« Laatste bericht door Frits Gepost op 12 juli 2025, 20:12:30 »
Een heel leuk idee Wim.  Knap dat glas-in-lood.
Het staat ook al jaren op mijn verlanglijstje, maar ik verhuis nog al eens.
Misschien is nu, nu ik zo oud ben, wel haalbaar om het te tekenen en te printen in 3D.
Ik heb wel in de jaren 90 eens een schaalmodel van een gedachte tuinbaan (spoor 1) zitten plakken van karton.
Van onze eerste woonboerderij bezat ik wel een kartonnen schaalmodel.
Dat vond ik ook heerlijk werk. Die tuinbaan zelf is helaas nooit af gekomen.

Wie weet wat er nog uit de bus gaat komen. :P
29
Diorama-bouw / Re: Diorama van restanten ( Station Meuk)
« Laatste bericht door Frits Gepost op 12 juli 2025, 19:53:26 »
Dit is nu precies de Pierre die ik mij herinner van jaren geleden. Een hobbyist in hart en ziel. :)
Volgens mij hebben wij elkaar ook een keer in Houten ontmoet.
Leuk man, zo'n opruimproject.
30
3D-printen / Re: Onderdelen 3D printen - om mee te beginnen
« Laatste bericht door Frits Gepost op 12 juli 2025, 16:56:34 »
Met een 0,2 mm nozzle zijn nog betere resultaten te halen. Het duurt natuurlijk wat langer (meer laagjes). Met mijn printer kan ik laagjes van 0,08 mm printen bij een printspoorbreedte van 0,2 mm. Maar er zijn natuurlijk grenzen en spuitgietwerk is beslist mooier.
Zie mijn zelf ontworpen stockcar in On3. De veertjes in het draaistel zijn van metaal en ook de kogellagers in de aspotten



Ook die trapbeugels zijn geprint en in de uitgespaarde gaatjes gedrukt.
Pagina's: 1 2 [3] 4 5 ... 10