Doel:€250.00
Donaties:€128.00

Per saldo:€-122.00

Steun ons nu!

Laatst bijgewerkt
op 16-04-2024

Vacature: secretaris bestuur
Algemeen

De stichting

Recente berichten

Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Modellbahnwagen
Vandaag om 00:35:59
25 jaar geleden door Willem1951
18 april 2024, 23:43:22
NS 8400 van Werps door Huup
18 april 2024, 23:17:50
EifelBurgenBahn door Reinout van Rees
18 april 2024, 23:17:45
Bisonkit verdunner door Deetrein
18 april 2024, 23:16:25
Ronald en Wanda's "Southern Comfort" swamp layout! door Ronald Halma
18 april 2024, 23:15:37
Traintastic - modelbaan besturingssoftware (gratis en open source) door reinderlf
18 april 2024, 23:02:30
Vergelijkings-/conversietabel modelverven door Rob Ellerman
18 april 2024, 22:37:44
Aachenau West door MichielB
18 april 2024, 22:22:36
"Nederlandse" modellen door Marc tramt
18 april 2024, 21:56:41
Bouw van materieel 40 treinstellen door FRIE
18 april 2024, 21:50:17
Onlangs gespot - gefotografeerd, de foto's door Thom
18 april 2024, 21:24:49
US diorama in H0 door basjuh1981
18 april 2024, 21:19:01
Pfarrerwinkel bahn door Eric v C
18 april 2024, 21:16:29
Bouw NS C 8605, BC 6012 en C 6820 door prutser
18 april 2024, 21:09:01
Een stukje Odsherreds Jernbane (OHJ) door Noordernet
18 april 2024, 20:44:22
BMB-Module: “Corfe Castle Station” door MichielB
18 april 2024, 20:24:46
Mijn eerste H0-modeltreinbaan in aanbouw door MichielB
18 april 2024, 20:05:30
Stationsplein Baden Baden door Dion
18 april 2024, 19:04:45
20 en 21 april MobExpo door renenstimpie
18 april 2024, 18:53:42
LS Models 2024 door 4020 281-4
18 april 2024, 18:03:40
Ervaringen met bezorgdiensten (PostNL, DHL, etc) door roco
18 april 2024, 17:54:18
Ombouw/Pimpen Bolle neuzen door bollen neus
18 april 2024, 17:48:50
"Litter Bin" voor Brits spoor en Britse modelspoorprojecten door Hans van de Burgt
18 april 2024, 17:09:15
Kleine Baan in H0 (≤ 0.5m²) door Jack Black (NS1220)
18 april 2024, 17:02:09
Frans/Belgisch H0e baantje door Jack Black (NS1220)
18 april 2024, 16:49:52
Toon hier je nieuwe (model-) spooraanwinst(en)... door Pauldg
18 april 2024, 16:03:04
Micromotor inbouwen in fleischmann tandradlok? door Besselspoor
18 april 2024, 15:22:30
Oude metalen trafo's gebruiken....... door Benelux795
18 april 2024, 14:17:23
Grenzbahnhof Ellrich ( DDR ) in schaal TT door spoorzeven
18 april 2024, 14:07:57
  

Auteur Topic: Arduino analoge(!) modelbaan sturing  (gelezen 139283 keer)

Fritsprt

  • Offline Offline
  • Berichten: 2615
Re: Arduino analoge(!) modelbaan sturing
« Reactie #330 Gepost op: 20 maart 2016, 13:03:10 »
Hallo Paul,

Je bent weer lekker bezig.  (y) Wat mij opvalt is dat je je stripboards maakt alsof je op een breadboard werkt. Als ik je een tip mag geven verander dan de lengterichting van de sporen van vertikaal naar horizontaal. Het grote voordeel is minder (lange) draadbruggen en je kan gemeenschappelijke sporen gewoon door laten lopen zoals de plus en massa. Hoewel ik heel slecht ben in Fritzing (geen idee hoe ik een LM311 maak) heb ik de helft van je analoog digitaal omzetter opnieuw getekend omdat plaatjes meer zeggen dan 1000 woorden.



Ik blijf je volgen,
Succes Frits
Groet Frits

Timo

  • Team encyclopedie
  • Offline Offline
  • Berichten: 4656
Re: Arduino analoge(!) modelbaan sturing
« Reactie #331 Gepost op: 21 maart 2016, 12:08:14 »
Hoi Paul,

Weer even een reactie van mijn kant  ;) Fijn om te zien hoe iemand lekker kan hobbyen. Maar toch wat opmerkingen, laat ik maar gewoon chronologisch beginnen.

Beginnende bij twee Arduino's per motor sturing. Natuurlijk is dit een keuze die volledig aan jou is. Maar het feit dat je nu twee Arduino's met één motor driver moet verbinden lijkt mij redelijk onhandig. De Arduino heeft met 16Mhz echt wel meer dan genoeg kracht om twee blokken aan te sturen, volledig los van elkaar.  En ja, je komt pinnen te kort. Maar dat kom je toch eigenlijk ook al voor één blok? Extra shift register hangt er zo bij.

Maar goed, wat ik al zei is de keuze natuurlijk aan jou. Maar weet dat de Arduino twee blokken ook nog steeds met twee vingers in zijn neus afhandelt. En het feit dat je nu twee Arduino's aan één motor driver moet verbinden lever je wel in op je modulaire opzet.

En nog even terug komen op synchronisatie, ook al maken beide Arduino's dan gebruik van één driver, je hebt dan gewoon een synchronisatie probleem. De twee uitgangen van de driver zijn volledig gescheiden.

8x Analog in oa blokbezet melding (kan ook als digital in gebruikt worden)
13 digital i/o waarvan er twee nodig zijn voor de communicatie tussen de computer en Arduino
De Arduino heeft 14 digitale i/o ;) En als je er geen computer aan hangt kan je pin0 en pin1 ook prima voor andere zaken gebruiken. Maar natuurlijk zijn ze wel erg handig tijdens het debuggen maar eventueel zou je ze daarna ook gewoon als extra uitgang kunnen gebruiken.

Je hebt inderdaad maar 8 analoog in. Let er overigens om dat A6 en A7 niet als digital te gebruiken zijn. Mocht 8 analoge inputs te weinig zijn kan je dit vrij makkelijk uitbreiden net als je met de digitale pinnen met een shift register hebt gedaan. Bij de analoge pinnen kan je hiervoor een multiplexer, kort weg mux, voor gebruiken. Dit is eigenlijk ook al wat er in de Arduino gebakken zit. Bijvoorbeeld de goedkope 74HC4051 (eBay: 10x, 50x). Met 3 digitale pinnen en 1 analoge heb je 8 extra 7 extra (aangezien het je er één kost) analoge gemaakt. Met 2 analoge (en 2 mux) en (nog steeds maar) 3 digitale pinnen heb je 16 extra 14 extra analoog.

De sturing van de wissels ziet er wel goed uit. Alleen twee opmerkingen
1) Je schema komt niet overeen met je breadboard  ;) ;D In je schema heb je de wisselspoelen getekend die dan in serie staan met de header/uitgang. Dit is natuurlijk niet het geval  ;)
2) De te schakelen stroom van de transistoren kent een beperking. Dit is voor de wisselspoelen waarschijnlijk geen probleem dus prima bruikbaar maar ik noem het toch even zodat je het in je achterhoofd kunt houden. De versterking van een transistor in verzadigde modus is ergens rond de 10x a 20x. Verzadigde modus houdt in dat VBE kleiner is dan VCE, met andere worden, de spanningsval en daarmee verlies over de transistor is klein en daarmee het verlies/de warmte in de transistor. Hier ligt dat dus ergens tussen 200mA en 400mA max. De spoelen zullen hier (in ieder geval kortstondig) wel overheen gaan maar doordat ze niet continue aan staan zal het absoluut geen probleem zijn.  (y) Hou dit alleen in je achterhoofd als je deze schakeling misschien voor andere dingen wilt gebruiken  ;)

Goeie keuze om de condensator onder het IC te plaatsen ipv zoals in de tekeningen.  (y) Zo direct aan het IC kan hij veel beter zijn werk doen dan zo ver af/in voedingsbussen zoals in de meeste tekeningen.

Je shift register schakeling is niet geschikt om je wisselsdriver mee aan te sturen. De serie weerstand van 1k samen met de base weerstand van 220ohm is echt te hoog om de transistor onder last goed open te sturen. Haal je dan de 1k weg is het natuurlijk geen probleem.

Overigens zie ik nu een fout in je 74HC595 diagram. Nu snap ik ook waar de eerste fout met Q7'vandaan kwam. Pin 9 van een 74HC595 is geenzins een Q7'. Accent betekend in de regel NOT/inverted. De naam Q7' is hier dan ook alleen maar verwarrend. Q7S (van serial) is een duidelijkere naam en kan geen verwarring scheppen met inverted zoals op de HC165. Ligt niet aan jou maar aan hoe sommige pakketen/mensen de data out pin noemen. Maar snap wel de verwarring met de HC165  ;D

In je comperator schakeling heb je Vee niet aangesloten. Dit is eigenlijk de voedingsspanningsrails voor de comperator, niet GND. De GND aansluiting is eigenlijk alleen voor de uitgang. Nu gaat het waarschijnlijk wel goed door interne clamp diodes maar netjes is het niet. Voor single rail (dus geen negatieve spanningen) sluit je Vee en GND samen aan.

Goed, vanaf hier gooi in de chronologie even van de baan. Eerst even wat antwoorden geven op wat vragen en wat extra info geven  :D We zijn hier om te helpen niet waar?  ;)

Een Arduino moederbord lijkt me geen verkeerd idee. Zeker als je hier dus ook alle randzaken zoals de shift registers, comperators en wissel drivers op bouwt. Is het je alleen te doen voor de schroefaansluitingen zou ik zeggen, kijk eens hiernaar. Voor dat geld kan ik het zelf niet eens maken....

En om dan gelijk naar een ander punt te springen, AliExpress. Daar kan jij gewoon bestellen, nog makkelijker zelfs dan op eBay. ;) AliExpress ondersteund namelijk gewoon iDeal  ;D Niets credit card, gewoon net als bij een Nederlandse shop. Handig hè?

Ik weet even niet precies waar je probleem met je XOR en comperator schakeling ligt aangezien je geen schema hebt geplaatst. Maar ik denk dat het ligt aan het feit dat de LM311 alleen de uitgang laag kan trekken. De base van een NPN moet je juist optillen dus daar kan het probleem zitten. Dit zou je natuurlijk kunnen bereiken door een pull up toe te passen maar je hebt geen schema laten zien dus ik weet niet of je dat al deed. Overigens kan je een relais bordje al direct aansturen uit de XOR of LM311 (met pull up). Geen extra transistor nodig.

Ik ben het volledig met je eens dat je veel simpele dingen ook prima in discrete logica kunt uitvoeren. Iets als een pendelautomaat is in de basis erg eenvoudig. Maar discrete logica wordt al snel veel complexer als je het gaat uitbreiden met extra functies. Je hebt dan snel meer gates nodig dus meer draden dus meer soldeerwerk. En daar komt dan de microcontroller om de hoek kijken. Ja, de begin curve is steiler (code schrijven, extra componenten enz) maar de complexiteit is daarna redelijk vlak. Terwijl met discrete logica start alles heel vlak en makkelijk maar worden dingen wel exponentieel complexer als je dingen toe gaat voegen. Dus ja, voor simpele dingen is logica echt geweldig. Maar hou het dan wel simpel  ;D

De voedingsprint zal in de basis wel werken. Maar ik zou als ik jou was de condensatoren meer in het pad zetten dan er zo los (op een losse rij) naast te hangen. Zeker aan de uitgang maak je ze hiermee een stuk nuttiger. Bedenk ook dat lineaire regulators natuurlijk best veel power gaan verstoken. Je zou daarom kunnen overwegen naar DC-DC buck converters over te stappen. Deze kosten tegenwoordig nauwelijks meer dan een 78xx  ;D (afgelopen jaar hard onderuit gegaan).


Goed, en dan ga ik nu over naar het meer kritische deel van mijn post. Deze heb ik bewust even naar achter geschoven omdat ik allereerst mensen op het forum gewoon wil helpen. Al is het maar om te zeggen "Hé, heb je daaraan gedacht?". En het is engineer eigen om tegenvragen te stellen, zeker om zaken die je zelf anders zou doen. Maar zoals ik al zo vaak heb aangegeven, er zijn meerdere wegen die naar Rome leiden. En als je bereikt wat je wilt bereiken zijn er eigenlijk geen foute wegen/oplossingen. Maar vaak wel foute redenen (of het totaal ontbreken van redenen) om voor een oplossing te kiezen. En dit kan makkelijk zijn door het gebrek aan kennis. Maar daarvoor is het een forum, om dus eens te roepen, heb je daaraan gedacht enz. Maar heb je een goeie reden om iets op een manier te doen, prima, ga zo door. Maar veel mensen zien tegenvragen nogal makkelijk aan als kritiek en lezen "Dat doe je fout!". Niet alleen op een forum overigens  ;) Maar heb niet voor niets vaak genoeg proberen te benadrukken dat ik met je mee wil denken en het niet kwaad bedoel.  ;)

Daarom valt mij de reactie in post #328 (ironisch in een Arduino draadje) ook zo tegen van je Paul. Hierin ga je eigenlijk haaks in op wat ik in een ander draadje heb gezegd zonder dit aan mij persoonlijk te richten. Je zet me als het ware achter me rug om weg als leugenaar in plaats van dat je de discussie aan gaat. Dit kan ik niet zo waarderen... Als je het draadje niet wilt vervuilen kan je ook een nieuw draadje starten (of de mods vragen de specifieke discussie af te splitsen) of gewoon hier met naam en toenaam de discussie aan te gaan. Vandaar dat ik hier nog in ga op de genoemde punten als zijnde discussie en niet als zijnde hulp in je draadje.

Beginnende bij het heikele punt, het relaisbordje. Allereerst zeg ik natuurlijk niet dat je iets niet moet/mag gebruiken, dat is niet aan mij. Ik kan mensen het alleen met klem afraden en dat is ook precies wat ik met die opto relais bordjes doe. Zoals ik in het andere draadje ook al aan gaf, natuurlijk werken ze en valt er mee te doen wat je wilt. Maar ze zijn veel complexer dan nodig. Dat ze active low zijn is maar een kleinigheidje, daar kom je snel overheen. Maar dat je werkelijk de ingang hoog moet sturen, met een redelijke stroom, om ze uit te zetten maakt ze onhandig. Dit is wat ik omschreef als active float. Daarnaast moet je opeens zowel logic voedingsspanning als relais voedingsspanning aansluiten als je ze los wilt voeden waarbij de laatste via een extra header op het board. En dan zijn de voedingen nog niet eens galvisch gescheiden! Sinds dat de opto relaybordje opeens gemeen goed zijn geworden is het aantal vragen erover op forma minimaal vertienvoudigd. Dat geeft wel aan dat ze veel complexer zijn dan nodig.

Samenvattend, ja, je kan er een werkende oplossing mee maken. Maar ik raad ze met klem af wegens genoeg redenen.

Er word in hetzelfde draadje beweerd dat de Arduino te weinig vermogen levert, om de uitgangen met meerdere relais te belasten, dat klopt niet,
Sorry Paul om je uit je droom te helpen, dit klopt echt wel. En het heeft absoluut niets te maken met de gebruikte ATmega328 maar laat wel zien dat het je gebrek aan kennis is die hier praat. Natuurlijk hoef je niet overal het fijne van te weten, maar zomaar statements onderuit halen slaat dan natuurlijk nergens op. :-X

Of je de 5V van de Arduino kunt belasten hangt het meeste af van de manier waarop je de Arduino voedt. Het probleem zit hem namelijk in de voltage regulator. Dit zijn simpele lineaire regulators en verstoken het extra voltage dus gewoon op in warmte. De regulator zit op het origineel (en alle China clones die ik ken) alleen aan de printplaat voor koeling en kan hiermee niet zo veel warmte kwijt. De relais op die relais modules gebruiken 90mA per stuk (zonder de stroom in de transistor en eventuele opto en zonder in rush). Als je de Arduino voedt met 9V dan verstookt de regulator (alleen voor het relais) al (9V - 5V) x 90mA = 360mW. Zit er de gebruikelijke NCP1117ST50 in DPAK op dan heeft deze, mits deze op een groot stuk PCB zit (en dat is niet het geval bij de Arduino) een thermische weerstand van 67C/W. Dus in het ideale geval levert dit maar een temperatuurstijging van 360mW x 67C/W = 24C op (alleen voor het relais). Voor de op de Nano en veel clones aanwezige SOT-223 geldt een ideale thermische weerstand van 160C/W. In het ideale geval levert dus alleen de belasting van de relais al een temperatuurstijging van meer dan 360mW x 160C/W = 58C op! Sluit je het aan op 12V dan is de minimale temperatuurstijging door alleen het relais al meer dan 100C! Ja nadert dan al heel erg de maximale temperatuur voor de regulator.

Het feit dat jij er in een specifiek geval mee weg komt betekend niet dat het geen goed advies is. De regulator op de Arduino is echt niet krachtig. Wil je relais aansturen (zeker bij meer dan één/continue) gebruik dan een losse regulator. Pak een DC-DC converter en je hebt nagenoeg geen warmte.

Maar voed je alles via de USB (of het nu uit je PC is of via een USB lader) of via de 5V pin dan staat de regulator buiten spel. De voeding is dan nog maar de enige bepalende factor.

En dan kom ik nog even voor Menno op omdat ook hij hier doelwit is zonder dit te weten.
Ook werd er in dat topic geopperd dat je een Arduino gebruikt omdat je weinig kennis hebt van electronica.
[knip] alsof je de Arduino gebruikt omdat je minder verstand van electronica hebt, deze uitspraak slaat nergens op. :(
Paul, hier draai jij oorzaak en gevolg om waardoor het een drogreden is geworden. Wat Menno zeg dat de Arduino door veel mensen met minder verstand van Arduino wordt gebruikt is zeker waar. Daarvoor is de hele Arduino ook bedacht, om het laagdrempelig te maken. Maar dan mag je de stelling nog niet omdraaien, natuurlijk geeft het gebruik van Arduino niet aan dat je weinig verstand hebt van electronica. Maar een grote groep (en dat is de doelgroep) geldt dit natuurlijk wel voor. Zelf laat je ook af en toe zien dat je niet alle kennis van elektronica hebt  ;) Maar is dit erg, nee, tuurlijk niet! We doen het toch ook deels om iets te leren? Daarvoor is iets als een forum juist zo mooi! Maar is het dan handig om ongenuanceerd uitspraken van mensen (met meer kennis) onderuit te schoppen, nee, zeker niet.  ;)

En als laatste nog het punt over timers (of eigenlijk gewoon timing). Je zegt maar over te stappen op hardware pulsen omdat je er in software niet uit komt. Met alle respect Paul, maar als je niet uit het simpele "Blink without delay" principe komt weet ik niet of het project een kans van slagen heeft  ::) Ja, dit is misschien wat kort door de bocht. Maar zo heel lastig is het principe niet en het is DE basis om meer dan simpele taken (die je ook in discrete logica zou kunnen doen) te kunnen doen. Maar je moet het inderdaad net even beet hebben. Ik had alleen gedacht dat het na mijn Nederlandse vertaling wel zou lukken. En zo niet, had ik gewoon tegen vragen verwacht. Het hele principe is gewoon hetzelfde als klokkijken waardoor je meerdere dingen tegelijk kunt doen. Maar je moet niet gelijk proberen het in een complexe situatie toe te passen. Als ik jou was, en hier trek ik dus weer langzaam de meer adviserende/helpende jas aan zoals op een forum hoort, zou ik er gewoon eens mee gaan spelen. Bekijk de [rul=http://arduino.cc/en/Tutorial/BlinkWithoutDelay]Blink without delay[/url] pagina, haal hem door Google translate en ga zonder verdere poes pas proberen daarmee te spelen. Of pak mijn ring buffer wissel code erbij (die je overigens zo in zou kunnen bakken...). Maar boven al, stel gewoon vragen als iets niet werkt zoals gedacht.


Goed, dit was een nog langere post dan normaal. In de basis vind ik het natuurlijk nog steeds erg leuk om je te kunnen helpen met je project. Maar als ik vaker aan gaf, als je het niet wilt moet je het zeggen. En als je iets niet snapt of ergens niet uit komt, vraag het dan ipv het te negeren. En het belangrijkste, haal geen mensen achter hun rug om onderuit ook al noem je ze niet! Ben je het ergens niet mee eens, ga dan gewoon de discussie aan, eventueel in een nieuw draadje.


Timo

PS Paul, dit betekend absoluut niet dat ik niet meer met je door één deur kan  ;)
« Laatst bewerkt op: 21 maart 2016, 12:13:56 door Timo »
Verzonden vanaf mijn desktop met Firefox

smits66

  • Offline Offline
  • Berichten: 543
  • Schaal 1:160, Arduino
Re: Arduino analoge(!) modelbaan sturing
« Reactie #332 Gepost op: 21 maart 2016, 22:13:34 »
Hoi volgers,


@Timo, bedankt voor de input.


Het is absoluut niet mijn bedoeling geweest om mensen te beledigen, af te zeiken, of als leugenaar te bestempelen, mijn excuus daarvoor Ik heb het desbetreffende gedeelte van de post verwijderd.


@Frits, bedankt voor de input.


Bedankt voor de tip, daar ga ik zeker naar kijken.


De reden dat ik de koperbanen verticaal teken is, dat het stripeboard wat ik nu gebruik zo is uitgevoerd, als ik nieuwe srtipeboard ga bestellen zal ik er op letten of ze te koop zijn met koperbanen horizontaal.


Mvg Paul
Üdvözlet Paul Smits.


bouw draadje "Laubenstein"