Waar zijn we nu mee bezig ? Microcontrollers

Gestart door ToThePoint, 13 januari 2012, 10:27:28 AM

Gerolf

Citaat van: raf op 25 november 2015, 21:43:15 PMvolledig stroomloos met nood knop
dit is voorzien om heel de baan spannings loos te maken (...) zo kan er van verschillende plaatsen rond de baan ingegrepen worden als er iets fout loopt
Toch opletten met abrupt stoppen. Bij lange treinen kan dit een ontsporing veroorzaken.
't Is heel wat complexer om te maken, maar een noodremming (op 2 à 3 seconden stilstaan ipv ineens) is daarom beter
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

raf

daar heb ik een andere knop voor
nood stop is inderdaad gevaarlijk maar noodstop is alleen in nood gevallen
als er bv een trein ontspoort en er een andere bovenop zou knallen
dan is de schade  erger dan een nood stop maken
het is niet moeilijker want het is gewoon efkes herprogrammeren
led1 = 1
  Duty = 0
HPWM 1,Duty, 5000
While s1 = 0            ;Zolang S1 is ingedrukt...
    Wend
   led1 = 0
Return

dit is de originele geschreven code
test:
   led1 = 1
  For Duty = Duty To 0 Step - 20
if duty < 1 then duty = 0
HPWM 1,Duty, 5000
Next
While s1 = 0            ;Zolang S1 is ingedrukt...
    Wend
   led1 = 0
Return

de aangepaste code met nu een aftel loop tot 0
die aftel staat nu op 20 dus hij telt redelijk snel af .indien dit te snel is dan kan dat getal ook nog veranderd worden

maar dit is gewoon in elke processor afzonderlijk bij te programmeren en misschien niet van toepassing op elk signaal
de stukken waar zowiezo langzaam gereden word is dit niet nodig
maar in het rangeer /verzorgings station mag dit wel want daar gaan nooit lange treinen rijden op dit stuk

maar bedankt om het te melden gerolf dus daarom de programma regels aangepast

gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

dani

even een experimentje met  Arduino - DCC -  LMD18200

Gewoon een soort "vertaler" maken tussen een  serieel commando van de PC en het besturen van treinen met DCC decoders.

De Arduino krijgt een commando van de pc binnen, check of het een geldig commando is en maakt daar een DCC signaal van hetgeen de H-brug dan versterkt en op het spoor zet.
(het pc commando kan je makkelijk vanuit een VB of eender welk programma of script genereren)

bvb :   #026010996#    dus met een masker   [#aaarlsssc#]

# is de begin en eind marker van het bericht   (formaat controle)
aaa = 3 digit DCC adres                                        --  026
r     = richting  (0-1 vooruit - achteruit)                  --   0
l      = lichten (F0    0-1  uit/aan)                           --   1
sss  = 3 cijfers voor rijstap (0..127)                        --  099
c     = checkdigit                                                   --   6


de checkdigit is een controle cijfer (zoals ook in barcodes gebruikt wordt)   Ik gebruik een hele simpele formule, namelijk de som van alle cijfers van het commando en dan de rest van de deling door 7.

in ons voorbeeld : 0+2+6+0+1+0+9+9 = 27   ==>    27/7= 3 met rest   6   vandaar check digit 6

(de restdeling is makkelijk met de "modulo" operator "%".      in dit geval   27 % 7 = 6)


Als een commando succesvol is gedecodeerd en naar de sporen gestuurd, komt een "ACK0" of "ACK1"  terug
Zoniet een  "NAK0" of "NAK1".     De   0 of 1  na de  ACK of NAK    geeft aan of de booster in ingeschakeld of niet en is dus terugkoppeling naar de pc of het systeem onder stroom staat.    Als thermische of stroombeveiliging van de  LMT18200 in schakelen, krijg je dus een 0, en ook wanneer je manueel op de arduino de schakelaar bedient voor  ON/OFF.

De eerste testen in de loop van de week zullen moeten uitwijzen of het werkt of niet...




ook nu weer ...   WAAROM ?    Zomaar omdat het kan .
De kruik is te water gegaan...
De kruik is niet meer.

dani

Eentje op verzoek...

Een defecte ASC-1000 van Roco (analoge PWM controller met extra functies) aan het leeg slopen  en bestuderen aan de hand van de manual hoe ik dit kan  "emuleren" met een  ATMega328P  microcontroller, de aanwezige hardware (potmeters, knopjes en LEDjes op het toestel) en de bestaande ingebouwde 30 VA  voeding,  zodat de functionaliteit dezelfde blijft maar het kapotte "binnenwerk" is vervangen door moderne technologie.   De  "Power trap" wordt een LMD18200  H-Bridge die tot 2,5 A kan sturen in PWM mode.

Het enige verschil (en dat zal de kritische kijker wel opvallen) is dat er in plaats van 7, maar 6 drukknoppen gebruikt worden.  De witte knop  zal "N/A" worden omdat deze defect is op het toestel.   In plaats daarvan zal de oranje knop gebruikt worden voor het omschakelen tussen  bediening met de draaiknop of de "up"-"down" toetsen.    De originele functie van de oranje knog (opheffen van de noodstop)  zal dus in dit geval verhuizen naar de "stop" knop die dus zowel  als  "stop"  en als  "resume" knop gaat dienen.

Het schema en de eerste versie van de software is er al.   Nu nog alles fysisch realiseren....
In de software zit echter momenteel nog geen "acceleratie" of "decelleratie" functie in, maar die worden nog geprogrammeerd.    Ik zal die potmetertjes gebruiken om de "grofheid" van de potentiometer en de drukknop stappen in te stellen.    De  "massa simulatie"  potmeter is buiten gebruik op dit moment.   Mijn "klant"  heeft me al te kennen gegeven dat hij deze zou willen gebruiken om de "maximum rangeersnelheid"  in te stellen in combinatie met een extra LED en drukknop  voor het in en uit schakelen van rangeermode.     1nderzijds kan dit ook worden gedaan door de "V-Max"  potmeter op het minimum te zetten zodat de "grote" knop tot max 10% van het totals snelheids bereik gaat voor een volle "slag", dus in feite een  "regelbare" rangeersnelheid.    Ik zit dan ook te spelen met het idee om die vierde kleine potmeter te gebruiken (zonder extra knoppen of LEDjes) om de maximale snelheid VOORUIT en ACHTERUIT apart te kunnen  instellen...  Dat lijkt me iets interessanter, maar dat is natuurlijk een kwestie van persoonlijk aanvoelen.








PS: mocht iemand interesse heben... het is OPEN SOURCE en ik zal het waarschijnlijk ook  op mijn   ATMEL blog posten.
De kruik is te water gegaan...
De kruik is niet meer.

raf

ongeveer hetzelfde gedaan in basic alleen heeft die altijd rangeer snelheid omdat hij gebouwd is geworden voor het rangeer terrein
ik heb geen pot functie alleen up/down dan marklin systeem omschakelen en nood stop

https://www.youtube.com/watch?v=NcCOm9EqWQo
hier het proefrijden nog zonder de rangeer snelheid  omdat ik wilde zien tot hoe snel ik kan gaan
het voordeel is hier te zien na dat de rangeer snelheid is geprogrammeerd

https://www.youtube.com/watch?v=3iN40E6b_t0
de loco is van leds voorzien en die kan ik dus laten branden zonder dat de loco begint te rijden
het rijden is een 10 tal stappen verder met de up je hoort het ook aan het beginnen fluiten van de motor

maar het blijft wel plezant en ik kwam dus toe met 1 fet om te sturen (gelijkstroom 3 rail)waarbij jij natuurlijk een brug moet gebruiken
hoe doe je de kort sluit beveiliging van de eind trap
ik doe detectie over een 2E2 weerstand met een opto die dan de fet  direct spert  via het programma

gr raf en ik blijf volgen
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

dani

#950
de LMD18200 heeft zowel een thermische als stroom beveiliging ingebouwd.  Dus die regelt dat wel .
En met een extra input op de microcontroller kan ik de stroom waarden en temperatuur zelfs in de gaten houden in de software.   Die uitbreiding moet ik nog maken.   Ik heb nog net genoeg extra input pinnekes :-) :-) ;-)
De kruik is te water gegaan...
De kruik is niet meer.

raf

ik heb maar 1 poort nodig voor de schakelaars dan zou je ook een paar pinnekes sparen
met RCIN lees ik de weerstands arry in waar de schakelaars in staan en van daar verder met het programma

gr raf
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

dani

Dat trukje ken ik wel ja... Maar in heb net genoeg ingangen.
De kruik is te water gegaan...
De kruik is niet meer.

raf

LOL dan denk ik dat je de enige bent die ooit genoeg in/uitgangen heeft op een processor

gr raf en succes
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

dani

Het zit hem allemaal in het ontwerp en het denkwerk vooraf hee
De kruik is te water gegaan...
De kruik is niet meer.

Gerolf

Software voor de 8-voudige snelheidsregelaar (het rechtop staande printje) aan het testen en debuggen:



... en het is de bedoeling dat die communiceert met de signalen uit de noodstop-print (op de PC-voeding)
... en kan babbelen met het LCD-kastje
... maar vooral mooi de snelheid van een trein regelt, afhankelijk van een seinstand (of noodremming)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

raf

roelof die loco is digitaal of is die ook analoog

bij mij lukt het dus wel reeds aardig om dat te doen
ik moet mijn baantje nog eens op tafel uit leggen als de madam nie thuis is maar nu met de komende feest dagen word dat wat moeilijk

gr raf en wanneer een filmpke
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Gerolf

Wie is roelof ?  ::)
Ik denk dat we verschillende verlanglijstjes hebben, Raf  ;)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

raf

hahaha ja de g en de r zitten niet ver uit elkaar LOL

en roelof is een rosse met een dikke snor op het modelbouw forum
maar ja jullie namen trekken ook wel zo een beetje op elkaar hé

maar is die nu digitaal of niet die loco
If I make mistakes in "spelling"
Remember it's the pen, that's bad
Don't lay the blame on me.

Gerolf

't Is een analoge loc. Dat had je uit mijn handtekening kunnen opmaken ;)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw