BeneluxSpoor.net forum

Vraag en antwoord => Elektronica en analoog => Topic gestart door: De Stoker op 05 April 2013, 10:30:58

Titel: PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 05 April 2013, 10:30:58
Maar eens een topic starten over waar ik mee bezig ben.
Ik heb in de simulatie een 4 kanaals PWM trafo gemaakt en ben nu bezig om daar een proef opstelling van te maken om te kijken of het werkt. 4 kanalen zijn nodig om twee treinen voor en achteruit te kunnen laten rijden.

Baan: Fleischmann profi ovaal op een basebord van 100x250cm met een stations deel en een rangeerstuk in het middel.
Deze is ontstaan uit de beschikbare materialen en om simpel weg rondjes te kunnen rijden om als test opstelling te fungeren.
Analoog DC

De trafo is eigenlijk geen trafo maar een digitale motor sturing met een Micro controller (PIC16F628A en een L293). Ik vindt het leuk om met electronica te stoeien en heb het modelspoor als object gekozen.

Mijn bedoeling is om naar een PWM (puls Width Modulation) te gaan rijden. zie ook http://forum.beneluxspoor.net/index.php/topic,48784.0.html (http://forum.beneluxspoor.net/index.php/topic,48784.0.html)
Alleen wil ik het in eerste instantie hand matig besturen net als met de "good old trafo" voorlopig in twee blokken, hoofdbaan en rangeer gedeelte

Het "probleem" met analoog is dat treinen erg lastig netjes langzaam kunnen rijden. De normale trafo regelt de spanning van 0 tot 12 volt DC. Langzaam rijden doe je dan met ongeveer 3-7 Vdc waardoor de kracht van detrein aanmerkelijk afneemt en de trein al gauw tot stilstand komt of erg schokkerig gaat rijden.
Een PWM stuurt kleine "schokjes" naar de L293 en de betreffende motor krijgt dan heel kort (ms) 12V toe gediend. Daar de lengte van deze "schokjes" te verlengen of te verkorten gaat de trein sneller of langzamer rijden. Je varieert dan 0 tot 100% van de tijd in een bepaalde periode lengte (frequentie)
Hierdoor wordt het mogelijk om de volle kracht van je locomotief te gebruiken en toch rustig te kunnen rijden.
Tevens zijn de kosten van een dergelijke PWM trafo laag, ik heb nog geen 15 euri aan onderdelen gebruikt.

Ander "probleem" is dat de PIC16F628A eigenlijk maar 1 aansturing heeft voor een motor terwijl ik er vier nodig heb. Nu is van 1 naar twee nog simpel op te lossen met een stukje electronica maar daarmee kun je geen twee motoren aansturen hooguit links en rechts om.
Dit heb ik software matig opgelost, mede daar door is het PIC programma vrij complex, maar omdat het toch snel moet werken moet er ook een externe kristal aan om de frequentie op te voeren van de PIC (4Mhz standaard naar 20 MHZ) of dit voldoende is moet nog blijken. In de software matige simulatie gaat het software programma in "slow motion" zodat alleen de werking is te testen en niet of het systeem voldoende reageert.

De PWM "trafo" krijgt de volgende functies:
- Snelheid regeling dmv draaiknop.
- rijrichting veranderen dmv keuze schakelaar (met automatische afrem en opstart functie)
- Startknop, rustig opgang komen van de trein en accelereren tot ingestelde snelheid.
- Stopknop, rustig afremmen tot aan nul

Later meer..

(https://images.beneluxspoor.net/bnls/PWM_trafo001.jpg) (https://images.beneluxspoor.net/bnls/PWM_trafo001.jpg)

De twee motoren stellen de beide treinen voor
Titel: Re:PWM "trafo"
Bericht door: Klaas Zondervan op 05 April 2013, 10:46:40
4 kanalen zijn nodig om twee treinen voor en achteruit te kunnen laten rijden.
Waarom 4 kanalen? Als je er een ompoolschakelaar achter zet heb je toch genoeg aan 1 kanaal per trein?
Titel: Re:PWM "trafo"
Bericht door: HansQ op 05 April 2013, 10:50:45
Uhhh, ik begrijp even iets niet... Ik neem aan dat je met 1 uitgang een analoge uitgang bedoelt? Maar een 628 heeft effectief digitaal 15 uitgangen vrij en PWM is puls-breedte, niet -hoogte. Dus je zou toch zeker 7 blokken moeten kunnen aansturen, met richting en puls-breedte?
Titel: Re:PWM "trafo"
Bericht door: De Stoker op 05 April 2013, 11:19:50
Waarom 4 kanalen? Als je er een ompoolschakelaar achter zet heb je toch genoeg aan 1 kanaal per trein?

Hallo Klaas,

In de L293 zitten vier kanalen, per trein heb ik er twee nodig (1x vooruit/1x achteruit). voor twee treinen maakt vier signalen.

Wat bedoel jij met omloopschakelaar?
Titel: Re:PWM "trafo"
Bericht door: De Stoker op 05 April 2013, 11:28:06
Uhhh, ik begrijp even iets niet... Ik neem aan dat je met 1 uitgang een analoge uitgang bedoelt? Maar een 628 heeft effectief digitaal 15 uitgangen vrij en PWM is puls-breedte, niet -hoogte. Dus je zou toch zeker 7 blokken moeten kunnen aansturen, met richting en puls-breedte?


Eigenlijk bedoel ik dat een PIC16F628A maar 1 ccp uitgang heeft deze stuurt een PWM signaal naar de L293. Dit kanaal kun je "aan" zetten en de rest van het programma draait onafhakelijk daar van door.
Als je twee ccp kanalen hebt kun je deze met een externe schakeling wel splitsen zodat je een motor vooruit en achter uit kunt laten draaien.
Ik heb er nu voor gekozen om de vier kanalen van de L293 rechstreeks aan te sturen met vier kanalen uit de PIC en het software matig op te lossen. Ik heb ook geen PWM instructie gebruikt maar een geschreven stukje software die de poorten aan zet en afhakelijk van de instelling van de Pot meter na bepaalde tijd (ms) weer uit zet.
Titel: Re:PWM "trafo"
Bericht door: Klaas Zondervan op 05 April 2013, 11:28:36
Niet omloopschakelaar, maar ompoolschakelaar.
Een schakelaar tussen de uitgang van je regelaar en de rails, waarmee je plus en min verwisselt.

Edit: dat schema maakt het ineens duidelijker. Je kanalen zitten in de PIC. Ik dacht eerst dat je ook 2 versterkers per trein had.
Het schema is overigens wel erg klein weergegeven.
Titel: Re:PWM "trafo"
Bericht door: De Stoker op 05 April 2013, 12:06:59

Het schema is overigens wel erg klein weergegeven.


Klopt ik had hem iets groter in gedachten, maar kreeg het nog niet voor elkaar
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 05 April 2013, 17:29:56
Kan je hem niet even uploaden via Plaatje uploaden (https://images.beneluxspoor.net/) hier links?

Ik mis wel de ouput clamp diodes. Want als ik zo snel de datasheet bekijk zitten deze alleen in het kleine broertje (de L293D) ingebakken... Uit de datasheet:
On the L293, external high-speed output clamp diodes should be used for inductive transient suppression.

En zoals al aangegeven, je kunt ook een ompoolschakelaar (relais bv) gebruiken ipv full H bridge. Maar ik weet niet hoe duur een L293 is en of dat op weegt tegen de prijs.

En hoe stuur je nu de PWM aan? Op een input of op de enable lijn?


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Gerrit Reitsema op 05 April 2013, 19:46:16
Als je met 2 of meer treinen PWM wilt rijden is een zelfbouw knutsel natuurlijk een uitdaging.
Er zijn er inmiddels misschien wel honderd soorten van.

Je geeft aan dat je PIC maar 1 PWM uitgang heeft, waarom neem je dan niet een met 4 PWM uitgangen?
Die dingen kosten geen drol meer. ;D
Ook het IC L293 MOTORDRIVER IC heb je miz niet nodig, achter elke PWM uitgang een darlington of mosfet is voldoende.
Zoals Klaas aangaf kun je de uitgangen hiervan ompolen met een eenvoudige schakelaar.

De meest simpele PWM regelaars maak je met een 555 en een darlington bv.

Als je met PIC's wil werken kun je ook eens gaan denken aan het Arduno platform, compleet gebouwd en getest bordje met 4 PWM's voor ca Euro 25,-- bv.

Gert. :D
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 05 April 2013, 20:41:11
Met een 555 kan idd, maar het optrekken en afremmen is dan wat lastiger. En een Arduino is way overpriced hiervoor. Een Arduino is een ontwikkelplatform, niet om in een product te hebben. En ik denk dat de PIC prima geschikt is. Hardware PWM is niet nodig, software PWM kan meer dan snel genoeg.

Ik weet niet wat die LM293 kost en of je die al hebt liggen. (Om maar niet gelijk je schema af te schieten ;D ) Maar anders zie ik een goedkope ULN2804 (€0.25) voor me met 4 relais (€3.50). Dan heb je 4 uitgangen.

Een PIC bied overigens nog wel leuke opties mss. Als je ipv een potmeter een rotary gebruikt (relatieve snelheid mee in te stellen ipv absoluut met een pot...) zou je kunnen zorgen dat je de huidige snelheid mee kunt nemen naar de volgende regelaar.  ;D Maar misschien is dat iets te complex, regelaar op dezelfde positie moet ook maar een minimaal verschil opleveren :p

Wat misschien makkelijker zou kunnen, 2 regelaar uitgangen koppelen en dat hij bij ontkoppelen met de ingestelde optrek/afrem vertraging naar de waarde toe gaat. Bv, je koppelt regelaar 2 aan regelaar 1. Beide uitgangen reageren nu gelijk op potmeter 1. Je kunt zonder verschil in snelheid van sectie 1 naar sectie 2. Daarna opkoppel je de regelaars en sectie 2 gaat weer naar potmeter 2 luisteren en zakt bv met de afremvertraging terug.

Of nog makkelijker :p Een LEDje (of een duo led) bij elke regelaar en een drukknop. Druk je de drukknop in van sectie 1 dan laat de led bij de andere regelaars zien of deze hetzelfde staat (binnen een marge). Dus als je van sectie 1 naar 2 wilt druk je de knop bij regelaar 1 in en draai je aan regelaar 2 tot bij deze de LED aan gaat, de regelaar staat dan op hetzelfde niveau als sectie 1. Doorrijden zonder hik :D

Okay, misschien sla ik door maar opties genoeg. Je bent op de goede weg! Zou alleen graag nog een schema zien.

Ow, en ik heb ik het verleden wel gezien dat alleen PWM niet genoeg kan zijn om een trein aan het rijden te krijgen bij lage duty cycle. Ik had bij lage duty cycle om de zoveel cycles als nog een cycle met een hogere duty cycle als "begin zetje". Hierdoor kon je makkelijker rustig weg rijden.

Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Menno op 05 April 2013, 21:09:11
Een Arduino is hiervoor zeer interessant denk ik. Wat veel mensen namelijk wel eens vergeten en wat soms ook niet erg is, is dat de Arduino een ontwikkelplatform en programmer in 1 is.

Niets houdt je tegen om een Atmega in een Arduino Uno te proppen, te programmeren met jouw programma, vervolgens de chip te verwijderen en in/op je zelfgemaakte printje te prikken. Je hoeft echt niet overal zo'n complete Uno (of eender welke Arduino) in te stoppen.

Dat het wel vaak gedaan wordt is vaak puur een vak-kwestie: heb je wel de software onder de knie, maar niet het solderen van een printje, dan kom je met een complete Arduino een heel eind.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 05 April 2013, 21:40:36
Dat is waar. Blijf je wel met een bootloader zitten maar idd goed mogelijk. Maar aangezien hij al een PIC werkend heeft kan hij deze dus al proggen. Zonde om er dan nog een te kopen.

Gelukkig gaan er meerdere wegen naar Rome. :)


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 08 April 2013, 17:18:22
@Timo en @Menno

Bedankt voor het meedenken, De L293 is volgens mij een L293DNE als ik het goed heb zal nog even kijken.

De keus voor de materialen is gedaan omdat ik ze al had inclusief the programmer voor de PIC.

Ik ben net een half jaar bezig met programmeren en moet ook nog de hardware onder de knie krijgen.

@Timo
Welk schema bedoelde je?

De optie van de 555 ken ik ook die staat op de website van circuits-online. Het gaat ook deels om het programmeren zelf

Ik heb ook nog een ULN2803 liggen, eigenlijk gekocht om wissels mee te gaan bedienen, kunnen deze dan ook een PWM "signaal" door geven. Is dus de schakelsnelheid hoog genoeg?
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: dimo1_dimo1 op 08 April 2013, 19:23:45
ikzelf heb ook met een microcontroller treinen aangestuurd, door middel van een Arduino en een L293D..
bij de L293D heb je een enable en 2 inputs die de richting verzorgen..
met een koelblokje kan de L293D prima treinen aansturen ;)
Het PWM signaal hoeft alleen op de enable input, je zou voor de richting gewoon een schakelaar kunnen gebruiken zoals hier werd aangegeven :)
dat zou maar 2 poortjes nodig hebben om aan te sturen(voor 2 treinen)

tip:
Arduino`s uit hong kong zijn ongeveer 9 euro incl verzendkosten(duurt wel 2 weken voor je m hebt)
andere electronica is daar ook goedkoop(zie ebay)
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Menno op 08 April 2013, 20:03:08
bij de L293D heb je een enable en 2 inputs die de richting verzorgen..
met een koelblokje kan de L293D prima treinen aansturen ;)
Het PWM signaal hoeft alleen op de enable input, je zou voor de richting gewoon een schakelaar kunnen gebruiken zoals hier werd aangegeven :)
De eerlijkheid gebiedt me te zeggen dat het eigenlijk netter is om het PWM signaal op de inputs aan te bieden en de enable te gebruiken zoals 'ie eigenlijk bedoeld is, maar ik weet het, het gebeurt vaker en er wordt in het datablad geloof ik ook over gesproken.

Het heeft wel het voordeel dat richting omdraaien dan via de PWM-signalen kan als ik het me goed herinner...

Even uit het blote hoofd, ken de L293 niet al te best.
tip:
Arduino`s uit hong kong zijn ongeveer 9 euro incl verzendkosten(duurt wel 2 weken voor je m hebt)
andere electronica is daar ook goedkoop(zie ebay)
En nog een tip: kijk verschrikkelijk goed uit met elektronica kopen op Ebay: de kans dat je fake-onderdelen in handen krijgt wordt/is steeds groter.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 09 April 2013, 09:48:54
De eerlijkheid gebiedt me te zeggen dat het eigenlijk netter is om het PWM signaal op de inputs aan te bieden en de enable te gebruiken zoals 'ie eigenlijk bedoeld is, maar ik weet het, het gebeurt vaker en er wordt in het datablad geloof ik ook over gesproken.

Het heeft wel het voordeel dat richting omdraaien dan via de PWM-signalen kan als ik het me goed herinner...

De L293D die ik heb heeft vier PWM kanalen, twee enable kanalen (EN A/B) en (EN C/D). en nog twee sens kanalen.
Die vier PWM kanalen kun je apart gebruiken. dan kun je vier motoren 1 richting op laten draaien. De twee EN poorten kun je gebruiken als rem maar moet je inschakelen als je de motoren wilt laten draaien.
Je kunt de vier PWM kanalen ook paarsgewijs gebruiken zodat de motoren voor EN achter uit kunt laten draaien. De PWM input kanalen en Output kanalen zitten, in de L293D, rechtstreeks aan elkaar.
In mijn ontwerp wil ik zo weinig mogelijk materiaal gebruiken en heb dus de vier PWM kanalen rechstraaks aan de PIC gekoppeld. Ik kan er nog voor kiezen om de twee EN kanalen permanent aan de 5V te leggen zodat de PWM signalen altijd te gebruiken zijn. Maar op dit moment heb ik er voor gekozen om de twee EN kanalen software matig te schakelen. Software matig gebruik ik de rem functie niet maar het is een extra zekerheid dat een trein blijft staan. Hij heeft immers een PWM signaal en een EN signaal uit de PIC nodig om te rijden
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 09 April 2013, 11:05:17
Het schema in je eerste post is echt te klein om te kunnen lezen. Al mijn uitspraken zijn dan ook op basis van de datasheet en hou ik het zou aansluiten. Misschien kan je deze nog even groter posten. (Tip: Plaatje uploaden (https://images.beneluxspoor.net/))

De L293D is wel de wat beperkte versie van de chip. Ik zou zelf 600mA wat krap vinden, dit omdat je niet alleen motoren moet voeden maar ook eventuele rijtuigen. Samen met een cirkelzaag motor kan dat wel krap zijn. Maar heb je dit niet is het natuurlijk prima.

Voordeel van het sturen met de enable (zeker als je de L293 als volle H brug gebruikt) is dat de motor op de momenten dat je PWM laag doet in vrijloop gaat ipv in rem. PWM je met de ingangen heb je pwm Hoog = draaien, pwm laag = remmen. Schakel je met de enable heb je pwm hoog = draaien, pwm laag is vrijloop. Maar dit is wel een beetje vals spelen met de componenten maar is het dat niet altijd :D

Heb je de boel nu al werkende? Gebruik je nu alleen lineaire pwm (vaste frequentie, duty aanpassen)? Of heb je er voor lage snelheid nog een extra lage PWM laag over om loc kleef te verminderen? Laatste kan er denk ik voor zorgen dat je nog langzamer kunt. Dus PWM als dit:
   __            __            _______       __
  |  |          |  |          |       |     |  |
__|  |__________|  |__________|       |_____|  |________
  Kort          Kort            Lang        Kort

Ik snap je keuze voor de volle H brug. Het scheelt wel in onderdelen als je de L293 gebruikt. Een ULN2803 moet ook prima kunnen. Als je ze per 2 groepeert heb je 1a per uitgang. Samen met een relais is het ook een extreem goedkope basis. Maar dat is natuurlijk een compleet ander ontwerp. Meerdere wegen leiden naar Rome :D

Om nog terug te komen op de Arduino, leuk ontwikkelplatform. Maar zoals gezegd niet voor een product. Komt nog bij dat 9 euro nog steeds 4 keer zo duur is als een 16F628A... En ja, tuurlijk is het met een Arduino (of een AVR) ook prima mogelijk. Maar laten we gewoon verder gaan op de weg die ingeslagen is :)


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 09 April 2013, 11:35:19
Misschien kan je deze nog even groter posten. (Tip: Plaatje uploaden (https://images.beneluxspoor.net/))


Het plaatje is nog steeds zo klein maar je kunt er nu wel op klikken en krijg je een groter plaatje wat je nog kun inzoomen.

Hoop dat het nu beter is

Rainbird
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 09 April 2013, 12:35:21
Dank je Timo voor je reacties, ik heb echter nog wel wat vragen en uitleg.

De L293D is wel de wat beperkte versie van de chip. Ik zou zelf 600mA wat krap vinden, dit omdat je niet alleen motoren moet voeden maar ook eventuele rijtuigen. Samen met een cirkelzaag motor kan dat wel krap zijn. Maar heb je dit niet is het natuurlijk prima.

Het is ook nog even uitproberen hoeveel vermogen de trein vraagt, Welke zou je anders adviseren?

Citaat
Voordeel van het sturen met de enable (zeker als je de L293 als volle H brug gebruikt) is dat de motor op de momenten dat je PWM laag doet in vrijloop gaat ipv in rem. PWM je met de ingangen heb je pwm Hoog = draaien, pwm laag = remmen. Schakel je met de enable heb je pwm hoog = draaien, pwm laag is vrijloop. Maar dit is wel een beetje vals spelen met de componenten maar is het dat niet altijd :D

Daarom stuur ik de Enable ook software matig aan. als blijkt dat remmen nodig is kan dat altijd nog worden aangepast.

Citaat
Heb je de boel nu al werkende? Gebruik je nu alleen lineaire pwm (vaste frequentie, duty aanpassen)?

Nee, ik ben op een testbord bovenstaand schema aan het bouwen maar moet nog bv de potmeters inregelen zodat de PIC ze ook over de hele schaal herkent. En voor deze ga ik de Duty aan passen. De duty wordt bepaald door de stand van de potmeter (0-100%).
Het is eigenlijk geen PWM maar een stukje software van Coenen Stijn (www.elektronicastynus.be)

PBM:                                  ; PBM cyclus voor alle uitgangen
  FOR x = 0 TO PWM_cycles
    HIGH pen_a
    HIGH pen_b
    HIGH pen_c
    HIGH pen_d
    IF x >= pbm1 THEN   
      LOW pen_a
    ENDIF
    IF x >= pbm2 THEN 
      LOW pen_b
    ENDIF
    IF x >= pbm3 THEN
      LOW pen_c
    ENDIF
    IF x >= pbm4 THEN
      LOW pen_d
    ENDIF   
    DELAYMS 1 
    NEXT
    GOTO Start

Deze code doorloopt hij dus per cyclus, samen met het uitlezen van de potmeters en de schakelaars. om een voldoende reactie te krijgen en dus om vier PWM poorten te creeren. Maar het is dus ook de reden waarom ik voor een externe cristal gekozen heb om voldoende software snelheid te krijgen. want als de PIC ergens blijft "hangen" staan de treinen stil volgens mij.
Ik moet het nog uit proberen dus of het werk weet ik nog niet!

Citaat
Of heb je er voor lage snelheid nog een extra lage PWM laag over om loc kleef te verminderen? Laatste kan er denk ik voor zorgen dat je nog langzamer kunt. Dus PWM als dit:
   __            __            _______       __
  |  |          |  |          |       |     |  |
__|  |__________|  |__________|       |_____|  |________
  Kort          Kort            Lang        Kort
Timo

Deze snap ik nog niet, kun je hier een voorbeeld van geven?
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 09 April 2013, 14:53:01
Het plaatje is nog steeds zo klein maar je kunt er nu wel op klikken en krijg je een groter plaatje wat je nog kun inzoomen.
Kijk, nu kan ik pinnamen lezen :D


Dat je de PWM in software doet maakt het gewoon nog steeds pwm ;) Ik zou het alleen wel in een timer interrupt stoppen ipv in de gewone flow. Als je nu bv langer bezig bent met het uitlezen van de knoppen zal je trein langzamer of sneller gaan... Helemaal omdat deze PIC geen ADC heeft en het dus met een omweg doet... Weet zo even niet welk alternatief wel een adc heeft.

Wat ik bedoel met pwm met anti kleef ziet er in code (niet gecheckte code, gaat om idee) er zo uit:
PBM:                                  ; PBM cyclus voor alle uitgangen
FOR x = 0 TO PWM_cycles
y++
IF x == 0 THEN
HIGH pen_a
HIGH pen_b
HIGH pen_c
HIGH pen_d
ENDIF

IF y = 7 THEN
IF x == PWM_kick_cycles THEN
y = 0;
LOW pen_a
LOW pen_b
LOW pen_c
LOW pen_d
ENDIF
ELSE
IF x >= pbm1 THEN  
LOW pen_a
ENDIF
IF x >= pbm2 THEN  
LOW pen_b
ENDIF
IF x >= pbm3 THEN
LOW pen_c
ENDIF
IF x >= pbm4 THEN
LOW pen_d
ENDIF  
ENDIF
DELAYMS 1  
NEXT
GOTO Start
Om de aantal normale pwm cycles zet je de uithang langer hoog dan de instelwaarde zou vertellen. Zo zorg je (in dit voorbeeld) dat iedere 20 normale PWM cycles de uitgang hoog blijft tot PWM_kick_cycles ipv tot pbmX. Voor het effectieve gebied aangenomen dat pbmX < PWM_kick_cycles. Natuurlijk zou je dit verschijnsel uit kunnen zetten als pbmX > PWM_kick_cycles

In plaatjes, normaal met PWM zou je op een bepaalde snelheid alleen dit verwachten:
  __               __               __               __               __               __               __               __
  |  |             |  |             |  |             |  |             |  |             |  |             |  |             |  |
__|  |_____________|  |_____________|  |_____________|  |_____________|  |_____________|  |_____________|  |_____________|  |________
  Kort             Kort             Kort             Kort             Kort             Kort             Kort             Kort
  Periode 1        Periode 2        Periode 3        Periode 4        Periode 5        Periode 6        Periode 7        Periode 8
Hoe harder de trein moet hoe langer het signaal hoog is.

Maar om zo af en toe even een "zetje" te geven op lage snelheid om wel op gang te komen maar je 1 keer per y periodes het signaal langer hoog dan je normaal zou doen. Krijg je dit:
  __               __               __               __               __               __               ________         __
  |  |             |  |             |  |             |  |             |  |             |  |             |        |       |  |
__|  |_____________|  |_____________|  |_____________|  |_____________|  |_____________|  |_____________|        |_______|  |________
  Kort             Kort             Kort             Kort             Kort             Kort                Lang          Kort
  Periode 1        Periode 2        Periode 3        Periode 4        Periode 5        Periode 6        Periode 7        Periode 8
Periode 3 is hierbij even langer dan de rest om de trein een zetje te geven. Rijdt hij eenmaal voldoet de normale pwm. Maar om te zorgen doe je zo'n schopje op lage snelheid periodiek (en dat hoeft echt niet zo vaak als hier aangegeven, is vooral proberen, afhankelijk van je PWM freqentie). Hierdoor gaat de trein wat minder kleven (= stil blijven staan of stoppen bij net iets meer mechanische weerstand).


Ook de pinnen alleen hoog maken als je begint met een nieuwe cycle. Weinig zin om de pin hoog te maken als de instelwaarde al hoger is... Dus alleen bij x = 0.

Waarom zitten pin B3 en A4 eigenlijk aan elkaar? Ook zou ik de richting schakelaar toch nog voorzien van Pull-up. Mocht de verbinding met de schakelaar los schieten ofzo zorgt dat iig niet voor rare dingen maar is de pin wel gedefineert.

Het is ook nog even uitproberen hoeveel vermogen de trein vraagt, Welke zou je anders adviseren?
Hij heeft nog een groot broertje, de L293 (zonder D). Deze is 1A. Nog wel zelf (snelle) clamp diodes plaatsen dan.

Allemaal beetje om het globale idee aan te geven :) Het precies toe te passen is aan jou.


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 09 April 2013, 15:25:24
Hallo Timo,

Bedankt voor deze uitleg, ik ben er nog niet helemaal achter maar ga je tip wel verder uitwerken. Ik wil in de komende week zien dat ik de proef opstelling aan de praat krijg. Dan wil ik ook jouw voorstel erbij in verwerken.

Ik neem wel aan dat je "PWM_kick_cycles" als variabele moet definiëren.

En even een vraag bij gebrek aan inzicht:
waarom LOW ipv HIGH bij de "PWM_kick_cycles"

Citaat
Waarom zitten pin B3 en A4 eigenlijk aan elkaar?

Die punt op de kruising van beide draden is het midden van het werk veld toevallig, deze horen niet aan elkaar

De tip van de weerstanden op de keuze schakelaar neem ik ook mee, want ik heb met de start en stop schakelaars ook al lopen "hanissen" om ze stabiel werkend te krijgen in de simulatie opstelling.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 09 April 2013, 19:15:12
Bekijk het zo, een trein heeft iets meer energie nodig om te gaan rijden vanuit stilstand dan om de snelheid vast te houden. Zie nu de eerste PWM en stel dat het genoeg is om een trein te laten rijden maar niet genoeg om te gaan rijden. Door dan af en toe even wel een lange puls te geven geef je de stilstaande trein een zetje om te gaan rijden.

PWM_kick_cycles mag vast gekozen worden. Maar welke waarde goed werkt is afhankelijk van de PWM frequentie en om de hoeveel cycles je de PWM puls langer maakt. Als ik zo even snel kijk hoe ik het had toegepast had ik een PWM signaal met een frequentie van 1,95kHz. Om de +-390ms maakte ik de output voor +-40ms hoog als de snelheid > 0 is. Maakt dus ongeveer 3 keer per seconde de uitgang voor 40ms hoog, ongeacht hoe lang een periode hoog zou zijn met normaal PWM. Dus om de zoveel normale duty cycle periodes een paar periodes hoog. Verhouding korte pulsjes langs pulsjes in me tekening kloppen dus niet. De lange zijn enkele periode. Maar dit is wel op 1,95kHz. Ik zou niet weten welke snelheid je met software haalt. Maar zeg 500Hz met 128 rijstappen moet denk ik wel lukken en is meer dan hoog genoeg.

Eigenlijk dus boven op de normale PWM frequentie met % duty cycle (wat dus de snelheid bepaald) maar daar boven nog een trage PWM van 3Hz met een dutycycle van 40:390 = 9.3%.

Deze waarde heb ik met test bepaald dus zit verder geen wiskunde achter :D De verhoudingen kun je dus wat mee spelen. Bijvoorbeeld door in een test programma de 2e potmeter dit te laten bepalen en te kijken hoe goed een trein hier op reageert.

Ik maak hem LOW omdat de periode altijd hoog begint en langer hoog blijft al naar gelang pbmX (potmeter waarde) hoger wordt. Is de waarde hoog gaat de pin LOW tot hij klaar is. Dit wil je nu uitstellen. Mijn code klopt nu niet echt. Ik ga er nu van uit dat de kick pulsen korter zijn dan een normale periode maar zoals ik het had toegepast is een kick puls (de lang) langer dan 1 periode. Hoe dit code technisch wel klopt laat ik even aan jou over. Anders blijft er geen schrijven meer aan :D


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 09 April 2013, 19:30:48
@Timo,

Dak voor de uitleg, ik zal eerst hem opbouwen en programmeren zoals ik het heb en uitproberen en dan ga ik kijken of ik jouw advies kan intergreren in mijn ontwerp. Ik snap het pricipe, nu alleen de uitwerking nog.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 16 April 2013, 00:34:36
Vanavond mijn test print opgebouwd en met een motortje proef gedraaid.

resultaat: niks.

Nu geen puf meer om storing te zoeken, binnenkort alles maar eens na meten.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: dimo1_dimo1 op 16 April 2013, 07:45:16
wel gedacht aan de gemeenschappelijke ground?
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Timo op 16 April 2013, 09:44:36
Altijd jammer als een schakeling niet in een keer doet wat je wilt :( Je zou een LEDje op de uitgangen van de PIC kunnen aansluiten om te zien of die wel het juiste uitstuurt.


Timo
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 16 April 2013, 09:47:49
Ja dat wel maar ik heb de weerstanden die de handleiding van de programmer aangeeft voor het programeren er niet tussen zitten. De pinnen 3, 4, 5 en 6  hebben een weerstand nodig tussen de chip en de rest van het circuit. De programmer aansluiting zit dan tussen de chip en de weerstand. Als je net op de verkeerde pin stroom afname of toevoer van uit het circuit hebt, dan programmeert hij niet goed. Ik heb dit al eerder gehad.
Het punt is namelijk hij doet helemaal niks, terwijl de vorige schakeling (pot meter met lcd scherm het wel goed deed.
Deweerstanden ga ik er nog even tussen zetten en alles even na meten. of de schakelaars en pot meters wel doen wat ze doen moeten.

Ik doe de PIC "in circuit" programeren, lekker handig als je achteraf aanpassingen wilt maken.

De gemeenschappelijke grond klinkt ook logisch in dit verhaal, die ga ik zeker ook nog controleren
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 17 April 2013, 09:32:31
Gisteren op de beschreven pinnen de weerstanden aangesloten maar helaas kwam het nog niet tot leven.
Her en der wat metingen gedaan en de schakelaars lijken te werken, de potmeters ook maar de PWM uitgangen van de PIC geven geen verandering in uitvoer (met DMM gemeten)

Zal eerst de hele test opstelling nog een keer moeten kontroleren.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 17 April 2013, 10:03:51
Hallo timo,

Ik lees nog even onderstaande opmerking van jou:
Citaat
Ik zou het alleen wel in een timer interrupt stoppen ipv in de gewone flow. Als je nu bv langer bezig bent met het uitlezen van de knoppen zal je trein langzamer of sneller gaan...

Dit heb ik nog nooit gedaan, zat net even wat te googlen maar daar werd ik nog niet echt wijzer van, heb jij een handleiding met de gedachtengang en werkwijze van deze timer interrupts in PICbasic, een website mag ook, al is het een online cursus
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 17 April 2013, 10:09:01
Hallo Dimo1_dimo1

ik heb mijn commentaar maar even hier neergezet

Er hangt van alles achter de PIC, ik programmeer hem "In circuit" Daar zijn een drietal weerstanden voor die de scheiding maken tussen programmer en de rest van het circuit. Deze heb ik er inmiddels tussen maar het mocht nog niet baten. helaas.

De programmer geeft aan dat alles goed is gegaan maar de PIC doet niets. vaak zou je zeggen hij doet wel wat en misschien vreemd maar niks is erg weinig, maar zal daar nog eens naar zoeken
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: dimo1_dimo1 op 17 April 2013, 10:15:07
ik vraag me af of een pwm signaal wel te meten is met de multimeter.. natuurlijk is de uit stand van de pwm uitgang te meten..
verder zou je kunnen kijken of je er een volledig aan en volledig uit op de poort kunt instellen om te zien dat het programmeren werkt en je code het probleem is :)
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 17 April 2013, 10:23:22
Het is natuurlijk niet de geijkte methode met een DMM maar mijn gedachte was door de potmeters te verdraaien moet je een verandreing op je DMM kunnen zien. Als deze verandering er is mag je concluderen dat je PWM iets doet.
Meer stelt de meting ook niet voor trouwens.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: Klaas Zondervan op 17 April 2013, 11:07:27
Je kan inderdaad met een multimeter zien of de duty cycle verandert.
Zelf gebruik ik nog een truc om te weten of er daadwerkelijk pulsen geproduceerd worden. Ik sluit dan een koptelefoon aan op het betreffende punt. Wel met een weerstand van b.v. 10k in serie, want een koptelefoon heeft een eigen weerstand van enkele tientallen ohms. Zonder die weerstand zou de bron te zwaar belast worden, en bovendien wordt je dan doof van de herrie.
Ook interessant om naar digitale spanning te luisteren. Als er een commando wordt gegeven hoor je de melodie veranderen.
Titel: Re:PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 17 April 2013, 11:32:08
 (y)
leuke tip.
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 05 September 2013, 12:34:45
@dimo1_dimo1

Jij gebruikt Arduino (?) voor bepaalde delen van je baan en stuurt die aan via je TC oid. toch? Hoe sluit je een Arduino of een PIC aan op het digitale systeem want een PIC draait op 5V= terwijl de toevoer 14Vac is bij een TC. Hoe filter je de signalen daar uit moet daar een afscheiding voor want 14 V op je signaal kanalen lijkt me ook wat veel.

Het genoemde project ligt alweer een halfjaar doelloos in de kast. Inmiddels overgestapt op digitaal rijden en daar moet ik nog een boel over leren maar ik heb een aantal zaken op de baan die ik wil gaan aansturen. Ik heb inmiddels een voorbeeld script voor een PIC16F84 (als ik het goed heb) die kan ik wel aanpassen denk ik maar technisch moet die PIC ook nog aangesloten worden op de signaal van de TC duss vandaar mijn vraag heb jij daar al iets van een voorbeeld of zo
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: santerdam op 05 September 2013, 15:24:50
Gerwin,

Voor het koppelen van digitale systemen met andere systemen kun je een optocoupler gebruiken. Electrisch gezien blijven beide system dan gescheiden maar het signaal wordt wel doorgegeven.

Kijk als voorbeeld maar eens naar een S88-bezetmelder met stroomdetectie. Daar zie je hoe de beide circuits gescheiden blijven. Talloze schema's te vinden op internet.

Sander
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: Fritsprt op 24 February 2014, 23:31:28
Hallo Gerwin,

Vermoedelijk heb je het inmiddels wel gevonden maar zoals Sander al zei, met een optocoupler.

Zaak is wel om een "snelle" optocoupler (6N137) te nemen. Inmiddels is het schema van ik meen OpenDCC zo'n beetje de standaard geworden.

(https://images.beneluxspoor.net/bnls/schematic.png) (https://images.beneluxspoor.net/bnls/schematic.png)

gr. Frits
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: Karst Drenth op 24 February 2014, 23:44:19
die  R1=1K weerstand is niet echt gezond voor de 6N137.  Een 2k2 doet het prima ;)
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: De Stoker op 25 February 2014, 07:52:28
Hallo Frits,

Het project is er even bij blijven zitten maar toevallig gisteren weer aan het lezen geweest en wat inspiratie opgedaan. De PWM trafo laat ik even voor wat hij is, echter wil ik wel bedenken over een PIC in te zetten voor het aansturen van de randapparatuur op de baan.

Daarbij is deze schakeling, met de aanvulling van Karst, goede om toe te voegen. Dank voor het schema daar kan ik wat mee.

Ik over weeg om een apart draadje te starten voor DCC in PIC iod. Het gaat uiteindelijk om de ultime zoektocht naar de software / programma om in de PIC te laden. Er is voor Basic en Assembler wel wat te vinden maar er is geen duidelijke site met de code die werkt. Om dit dan in 1 draadje te vangen door bv post 1 constant te updaten met de laatste info wat uit de rest van de topic naar voren komt. Uiteraar zal de start en de eeste aanzet van me zelf moeten komen.
Ik zal dat vandaag eens overwegen

@moderators, bestaat er een mogelijkheid om een paralel topic naast een "hoofd" topic te laten lopen? Hoofd topic is voor de discussie en de samenvatting, het paralell topic is om alleen de programmacode in te laten zien maar waar niet op gereageerd kan worden anders dan in het hoofd topic. Want een file opladen met de programma tekst wil niet anders als plaatje volgens mij.
Mag en kan dit of kom je dan op glad ijs met copyright en mogelijke schade als er zaken niet werken?
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: Fritsprt op 26 February 2014, 00:37:15
@Karst, Als ik snel in het datablad kijk van de 6N137 dan is de aanbevolen doorlaatstroom 15mA  en de max stroom 50mA. Bij een dcc spanning van zo''n 20V en een doorlaat spanning van 2V kom ik op een waarde van 1k2. In aanmerking nemende dat de dcc spanning een pulserende spanning is lijkt mij niet dat de optocoupler zal sneuvelen. In de praktijk is mijn 6N137 nog steeds heel. Maar als je op zeker wil gaan kan je R1 vergroten. Bijkomend voordeel is tevens dat er minder vermogen in de weerstand gedissipeerd wordt. Ik moet je bekennen dat ik het hiervoor nooit had na gerekend en de schakeling blind heb nagebouwd.
Zo'n forum houd je scherp

Gr. Frits
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: _edwin_ op 26 February 2014, 07:52:22
Even over de software: Om een PWM te maken in software werken de voorgestelde IF/THENs natuurlijk wel, maar als je in je programma (later) wat meer wil doen, krijg je al snel timing problemen. Het is netter en uiteindelijk simpeler om de timers van de PIC te gebruiken in combinatie met interrupts.

Het is al weer 15 jaar geleden dat ik PICs geprogrammeerd heb (in assembly), dus ik weet de details niet meer uit mijn hoofd om een stukje code te laten zien, maar het komt erop neer dat je een hoofdloop hebt waarin je alles doet behalve de PWM uitgangen hoog/laag zetten. Je hebt dan een timer die loopt op de PWM frequentie waarmee je in een interrupt de PWMs laag zet en 1 timer per uitgang waarmee je in 2 andere interrupt routines elk van de de PWMs weer hoog zet.
Op deze manier is de rest van de software volledig onafhankelijk van de PWM aansturing en kun je naar hartelust de frequentie, etc aanpassen zonder in de knoei te komen.
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: Timo op 26 February 2014, 09:58:18
DCC code voor een PIC, liefst in C, is ook nog steeds een wens van mij. Moet wel goed te doen zijn, er zwerven ook al genoeg C bestanden voor PIC/AVR rond maar nooit getest/geport. Zijn natuurlijk meerdere mogelijkheden om het te doen (timer interrupt, interrupt on change enz). Gerard van der Sel gaf al een aardige voorzet. Alleen zal deze nog wel wat uitgebreid moeten worden om aan de DCC norm te voldoen. Maar de bitstream omzetten in bytes is een ding, deze bytes vervolgens mappen een de juiste opdracht is de volgende stap. De standaard DCC pakketjes gaan nog redelijk makkelijk maar de lange adres pakketten,de hoge functie toetsen  en de prog pakketten zijn al een stuk ingewikkelder.  Ook zal ik weer even moeten graven hoe het bij accessory decoders ook al weer zat met puls lengte gedoe  ::)


Timo
Titel: Re: PWM "trafo" // schema toegevoegd
Bericht door: gvandersel op 26 February 2014, 11:57:00
Timo,

Stop maar met spitten. Dat doet de controler niet, maar de centrale. Na een bepaalde tijd wordt er een assessoire commando met allemaal 0 en gestuurd (ander wissel/sein mag ook). Einde puls.

Groet,

Gerard van der Sel.