Doel:€250.00
Donaties:€0.00

Per saldo:€-250.00

Steun ons nu!

Laatst bijgewerkt
op 03-12-2025

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

3 januari NVBS oliebollenrit door Seinhuis
Vandaag om 00:25:28
Trix 22128 EETC 1200 - 175 Jaar spoorwegen DCC Sound - Decoder plots dood. door Ronald A.
04 December 2025, 23:38:05
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Sven
04 December 2025, 23:17:21
Eindstation Daarhuizen door HenkN
04 December 2025, 23:07:38
Cornfield Junction / Boulder Crossing - Afsluiten Topic door RobVille
04 December 2025, 23:01:50
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door Martin Welberg
04 December 2025, 22:51:42
De overeenkomst tussen een Ovaalramer en een Motorpost. door FritsT
04 December 2025, 22:51:06
Alternatieven voor de messing lagers van een Fleischmann rondmotor door GerardvV
04 December 2025, 22:28:44
Toon hier je nieuwe (model-) spooraanwinst(en)... door barry1972
04 December 2025, 21:37:57
Piko blauwe 1000: de decoderzaken door damngrazy
04 December 2025, 21:32:25
Treinverkeer in het oostblok, grensoverschrijdend? door Herb73
04 December 2025, 21:29:05
Test van een Rapido Trains GE 44 tonner Claremont and Concord door Ronald Halma
04 December 2025, 21:14:59
Mijn eerste H0-modeltreinbaan in aanbouw door Frank 123
04 December 2025, 21:14:26
Rondom Charlois door NS264
04 December 2025, 20:30:21
Altburg. een analoge, opklapbare Märklinbaan door daan2353
04 December 2025, 19:58:09
Wat is dit voor component door 008200
04 December 2025, 19:18:51
De IJmuider spoorlijn - korte geschiedenis en plaatjes door IJmc
04 December 2025, 18:04:09
BNLS modulebaan: Werkspoor-Kathedraal 3.5 door NS264
04 December 2025, 18:03:13
Piko blauwe 1000 door Huup
04 December 2025, 17:52:54
DVT: Belgische (militaire) "Dagelijkse Verlofgangers Trein": samenstelling? door martijnhaman
04 December 2025, 17:04:36
Rondje door Lissabon met Lijn 28 door Sven
04 December 2025, 16:17:19
BNLS-Module: "Rvbr-Btk, Ringvaartbrug Haarlemmermeer nabij Buitenkaag" NS H0 door nighttrain1
04 December 2025, 16:05:37
ByPass Junction, een Amerikaanse modelbaan in N door RobVille
04 December 2025, 15:37:51
De bouw van een modulebaan met Nederlands landschap. door Anton Maris
04 December 2025, 15:12:43
Jaques Crousteaux, Poissons et Homards door daan2353
04 December 2025, 14:37:16
Da's Daz 2 door spoorijzer
04 December 2025, 14:22:34
Rail away door Eric v C
04 December 2025, 14:17:48
Extra functie in Zimo MS450P22 door RobbertJan
04 December 2025, 14:04:30
Diorama Memburg Klütjenfelderkai door neudalhausenstadbahn
04 December 2025, 13:45:21
US diorama in H0 door Wim Vink
04 December 2025, 11:05:22
  

Auteur Topic: Schets Weistra regeling met arduino UNO  (gelezen 4652 keer)

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #15 Gepost op: 30 July 2025, 16:23:16 »
Dag Bas,

Ik heb je filmpje meerder malen bekeken en het is me gelukt (y). Kan de schets uploaden naar de arduino.

Maar nu ..... de aansluitingen (pin-nummers) op de arduino of hoe de L298N aan te sluiten. Of kan ik nog instellingen veranderen??
Schema of zoiets ??????

In ieder geval al hartelijk bedankt hiervoor. Ben denk ik al een stuk op weg. Nu de rest nog.

mvg
Kees

bask185

  • Offline Offline
  • Berichten: 5176
Re: Schets Weistra regeling met arduino UNO
« Reactie #16 Gepost op: 30 July 2025, 22:05:57 »
const int pinA          =   2 ;
const int pinB          =   3 ;
const int Fmin          =  50 ;
const int Fmax          = 100 ;
const int CS            =  A0 ;
const int potPin        =  A1 ;
const int acceleration  = 500 ;
const int potMiddle     = 512 ;
const int deadRange     =  20 ;
Bijna alle instellingen heb ik bovenin gezet. PinA en pinB gaan naar de L298n. Hier zijn dat pin 2 en pin 3 maar je kan alle pinnen daarvoor gebruiken. Zolang de nummers maar kloppen met de fysieke pinnen. Ik zou pin 0 en 1 niet gebruiken omdat we nu nog tekst naar de monitor kan sturen. Kan handig zijn om evt te debuggen.


Train-Science.com
Train-Science github
It ain't rocket science ;-)

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #17 Gepost op: 01 August 2025, 15:54:37 »
Helaas Bas.
Ik krijg wel een puls op de rail waar de trein  langzaam op rijd. Maar GEEN reactie op de potmeter.
Zit er iets fout in de Schets? Is wel goed te laden en ziet er uit zoals op je filmpje.
Ik heb A0 aan massa gehangen. ik heb nog geen weerstand dus het leek mij het beste om deze aan massa te hangen. het is maar een test.
Heb je een oplossing voor het probleem?

kees

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #18 Gepost op: 01 August 2025, 15:55:15 »
En... hoe zit het met voor en achteruit??

bask185

  • Offline Offline
  • Berichten: 5176
Re: Schets Weistra regeling met arduino UNO
« Reactie #19 Gepost op: 01 August 2025, 22:55:41 »
Citaat
Ik heb A0 aan massa gehangen
Dat is goed, anders zou je uno denken dat er korsluiting is.

We kunnen data naar de computer sturen en dan kunnen we zien wat er mis is. Probeer deze sketch
#include "weistra.h"

const int pinA          =   2 ;
const int pinB          =   3 ;
const int Fmin          =  50 ;
const int Fmax          = 100 ;
const int CS            =  A0 ;
const int potPin        =  A1 ;
const int acceleration  =  50 ;
const int potMiddle     = 512 ;
const int deadRange     =  20 ;

Weistra pwm( pinA, pinB, Fmin, Fmax ) ;

void setup()
{
    pinMode( potPin, INPUT ) ;
    pwm.begin() ;

    uint8_t currentLimit = 169 ;
    /*currentLimit = Imax * Rshunt / 0.00488 -> 2.5A x 0.33R (3x 1R parallel) / 0.00488 = 169 */
    pwm.setCurrentSense( CS, currentLimit ) ;
    Serial.begin( 115200 ) ;
}

char buf[50] ;

void loop()
{
    static uint32_t lastTime = 0 ;
    if( millis() - lastTime >= acceleration )  // run every interval time
    {     lastTime = millis() ;

        static int8_t throttle = 0 ;
        int8_t        setPoint = 0 ;
        int           sample = analogRead( potPin ) ;

        if(      sample <= potMiddle - deadRange  ) setPoint = map( sample, 0, potMiddle - deadRange  ,  -100,   0 ) ;  // scale  [0.. middle -20]     to  [-100..0]
        else if( sample >= potMiddle + deadRange  ) setPoint = map( sample, potMiddle + deadRange  , 1023,  0, 100 ) ;  // scale  [middle + 20 .. 1023] to [0..100]
        else                                        setPoint = 0 ;                                                      // middle 40 adc steps = dead range -> speed 0

        if( throttle < setPoint ) throttle ++ ;
        if( throttle > setPoint ) throttle -- ;

        pwm.setSpeed( throttle ) ;

        sprintf( buf, "Throttle: %d\tSample: %d\tSetPoint: %d", throttle, sample, setPoint ) ;
        Serial.println( buf ) ;

       
    }

    pwm.update() ; // also handles short circuit.
}

Je kan in weistra.cpp ook nog wat code toevoegen om dingen te zien, zoals kortsluiting of stroom verbruik.


Na het uploaden, klik je rechtsboven in de IDE op dat vergroot glas, hotkey is Ctrl Shift M en dan moet je baudrate op 115200 zetten. Dan moet je dit gaan zien.
Je kan de ADC waarde zien, de setpoint in % en de huidige snelheid/throttle.

.

Ik had de acceleration op 500 gezet, maar met 2 updates per seconde, duurt het nogal lang, dus die heb ik aangepast naar 50. Dat moet je maar in de praktijk even aanzien wat jij fijn vindt.

Bas
Train-Science.com
Train-Science github
It ain't rocket science ;-)

bask185

  • Offline Offline
  • Berichten: 5176
Re: Schets Weistra regeling met arduino UNO
« Reactie #20 Gepost op: 01 August 2025, 23:09:02 »
Nog je vraag over achteruit voorruit.

Potmeter links = achteruit
potmeter rechts = voorruit.

Als ze contra zijn, kan je de 5V en GND omdraaien.

In het midden zit een 'dood' gebied waarin de snelheid 0 is. Dat zorgt er voor je makkelijk je trein kan stil zetten. Daarom kon ik niet zomaar de ADC waarde 0 <> 1023 in 1x ommappen naar -100 <> 100



Nu je dit plaatje gezien, snap je wellicht deze code beter:

De If else statements stellen vast in welk gebied de potmeter staat, Links, rechts of midden. En aan de hand daarvan kies ik de snelheid waar ik de ADC dan netjes omschaal naar een setpoint.

Die functie map() die schaalt een bepaald bereik lineair om naar een ander bereik. Rete handig.
        if(      sample <= potMiddle - deadRange  ) setPoint = map( sample, 0, potMiddle - deadRange  ,  -100,   0 ) ;  // scale  [0.. middle -20]     to  [-100..0]
        else if( sample >= potMiddle + deadRange  ) setPoint = map( sample, potMiddle + deadRange  , 1023,  0, 100 ) ;  // scale  [middle + 20 .. 1023] to [0..100]
        else                                        setPoint = 0 ;                                                      // middle 40 adc steps = dead range -> speed

https://docs.arduino.cc/language-reference/en/functions/math/map/
Train-Science.com
Train-Science github
It ain't rocket science ;-)

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #21 Gepost op: 02 August 2025, 19:29:23 »
Hoi Bas,
Bedankt voor de reactie. Ik heb dit weekend even weinig tijd.. Zal maandag avond het een een ander proberen.
Kijken of ik wat verder kom.
Dan reageer ik weer wel.

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #22 Gepost op: 04 August 2025, 19:03:19 »
Bas,
Om te beginnen krijg ik deze foutmelding.

Weistra_van_benweluxspoor:53: error: expected '}' at end of input

     pwm.update() ; // also handles short circuit.


Programmeren is niet mijn ding.

keesg

  • Offline Offline
  • Berichten: 24
Re: Schets Weistra regeling met arduino UNO
« Reactie #23 Gepost op: 04 August 2025, 19:04:13 »
Hierboven betreft de schets die je stuurde.

bask185

  • Offline Offline
  • Berichten: 5176
Re: Schets Weistra regeling met arduino UNO
« Reactie #24 Gepost op: 05 August 2025, 08:21:30 »
Ik denk dat je onderste accolade vergeten bent mee te kopieren
Train-Science.com
Train-Science github
It ain't rocket science ;-)