BeneluxSpoor.net forum

Vraag en antwoord => Digitaal => Topic gestart door: borotof op 25 november 2019, 13:47:48

Titel: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: borotof op 25 november 2019, 13:47:48
Ik ben een beetje aan het experimenteren met een arduino om wat lichtseinen aan te sluiten. Ik heb begrepen dat je het dcc signaal het liefst met een optocoupler koppelt, maar die heb ik niet liggen. Het schijnt dat het ook wel met een weerstandje kan (jaja, eigen risico...) Iemand die de waarde en pinnen weet ? alvast bedankt,

Rob
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Jeroen Vreeken op 25 november 2019, 14:25:56
Als je de arduino ook voed met het dcc signaal (zoals b.v. een loc dat ook doet) dan ben je al van een hoop problemen af. Je hoeft dan 'alleen' nog maar rekening te houden met het spannings verschil. In de praktijk gaat men bij DCC zelden boven de 18V, maar hou wat marge aan en reken op minstens 25V.
Maar met 'een weerstandje' ben je er dan niet. De makkelijkste manier is om een weerstands deler te maken met minstens twee weerstanden in de verhouding zodanig dat 25V niet meer dan 3V3 wordt. (grofweg een factor 10, dus b.v. 10k en 100k in serie). Maar dan is je logic level erg afhankelijk van de gebruikte DCC spanning.
Iets netter zou het zijn om het via een transistor te doen: ga met een weerstand (laten we zeggen 100k) naar de basis. Hang de emiter naar de nul en de collector aan de arduino. Stel de arduino poort in als een weak pull-up en je hebt het dcc signaal beschikbaar.

Voed je je schakeling los (zoals bij sein en wissel decoders gebruikelijk is) dan zou ik er niet aan beginen. Je hebt dan namelijk twee losse voedingen zonder dat je een duidelijke relatie tussen die twee hebt.
Dan kan er rustig dubbel de DCC spanning op je af komen (met marge erbij dus ruim 40V).
Die optocoupler is zo gek nog niet.....

Maar ik vraag me af (en dit is niet vervelend bedoeld) of je je niet beter eerst in dit soort dingen kun verdiepen voordat je eraan begint.
Ken je de verschillende signaal niveaus? Wat basis elektrotechniek? (Met een opmerking als 'een weerstandje' krijg ik het akkelige gevoel dat je hier niet helemaal klaar voor bent...)
Titel: Re: aansluiten dcc signaal arduino
Bericht door: borotof op 25 november 2019, 14:35:17
Voorlopig hangt ie gewoon aan de usb bus van mijn computer en is bedoeld om te kijken hoe eea qua software werkend te krijgen. Mocht ik er echt standalone decoders van maken doe ik het wel zoals het zou moeten ;-)
 
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Klaas Zondervan op 25 november 2019, 15:13:41
Iets netter zou het zijn om het via een transistor te doen: ga met een weerstand (laten we zeggen 100k) naar de basis. Hang de emiter naar de nul en de collector aan de arduino. Stel de arduino poort in als een weak pull-up en je hebt het dcc signaal beschikbaar.
Dit lijkt mij ook een nette oplossing. Zo zou ik het ook doen.
Maar via een opto-coupler is nog veiliger. Het feit dat je die niet hebt liggen is geen argument. Je kunt die dingen kopen en ze kosten geen drol.
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Jeroen Vreeken op 25 november 2019, 15:17:26
In dat geval zou ik zeggen: hang er een optocoupler tussen.
Dan loop je ook niet het risico om je computer op te blazen. (Tussen de arduino en de USB bus zit nauwelijks iets wat hem beschermd tegen een fout aangesloten DCC signaal)

Optocouplers zijn makkelijk aan te komen bij diverse leveranciers.
Heb je een bedrijf (of eigenlijk BTW nummer) probeer dan eens farnell (volgende dag in huis).
Zo niet probeer dan eens conrad ofzo.
Hoeft niet meer dan een paar dubbeltjes te kosten.
Titel: Re: aansluiten dcc signaal arduino
Bericht door: borotof op 25 november 2019, 15:44:32
Het blijkt toch moeilijk een simpele vraag te beantwoorden...
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Klaas Zondervan op 25 november 2019, 15:56:34
Hoe bedoel je dat? Ik vond het niet moeilijk. Maar misschien vind je de gegeven oplossingen te ingewikkeld.
Titel: Re: aansluiten dcc signaal arduino
Bericht door: bask185 op 25 november 2019, 16:33:06
In dat geval zou ik zeggen: hang er een optocoupler tussen.
Dan loop je ook niet het risico om je computer op te blazen. (Tussen de arduino en de USB bus zit nauwelijks iets wat hem beschermd tegen een fout aangesloten DCC signaal)

Optocouplers zijn makkelijk aan te komen bij diverse leveranciers.
Heb je een bedrijf (of eigenlijk BTW nummer) probeer dan eens farnell (volgende dag in huis).
Zo niet probeer dan eens conrad ofzo.
Hoeft niet meer dan een paar dubbeltjes te kosten.
Ik wil geen reclame maken, maar ik koop zelf vaakbij hackerstore. Vandaag besteld, morgen in huis. Niet zo goedkoop als dingen in china kopen maar je heb het wel... morgen. En je hebt meerdere van die sites. Hobbyelektronica.nl, eijlander.nl, iprototype.nl.

Bij conrad moet je ook vaak verscheidene dagen wachten totdat je je spulletjes krijgt
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Haas67 op 25 november 2019, 16:49:32
Op deze (https://www.lydo.nl/hobby/diy-dcc-accessory-decoder/attachment/schematic/) pagina wordt 1 van de 2 dcc signalen via een weerstandje van 22k op pin2 van de arduino aangesloten.
Inderdaad: Beter is via een opto-coupler. Op eigen risico kun je dit uitproberen zolang je nog geen 6N137 opto-couplers hebt.
(https://www.lydo.nl/blog/wp-content/uploads/2017/12/Schematic-1024x675.png)
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Klaas Zondervan op 25 november 2019, 17:18:57
@Haas67, wat je daar laat zien is wat standaard in decoders ook gebeurt. Het DCC signaal gaat rechtstreeks een bruggelijkrichter in voor de voeding. Voor de brug wordt van één kant van de inkomende spanning het DCC signaal via een serieweerstand naar de decoderchip geleid. In de schema's die ik heb gezien is die weerstand overigens veel groter, eerder 220k dan 22k.

Heb ook in de datasheet van de Attiny zitten neuzen maar daar kan ik niks vinden over de hardwarekant van de I/O poorten. Bij andere IC's geven ze altijd een tabel van Absolute Maximum Ratings, maar die zie ik hier niet. Het zou me niet verbazen als die poorten intern gezenerd zijn zodat je die directe aansluiting straffeloos kan toepassen.
Titel: Re: aansluiten dcc signaal arduino
Bericht door: meino op 25 november 2019, 17:20:49
Ik sluit een Arduino aan met een interface volgens dit schema:

(https://images.beneluxspoor.net/bnls/DCC-optoisolator.jpg) (https://images.beneluxspoor.net/bnls/DCC-optoisolator.jpg)

Dat is simpel te maken op een stukje stripboard.

Groet Meino
Titel: Re: aansluiten dcc signaal arduino
Bericht door: borotof op 25 november 2019, 17:23:37
Dank je Haas, dat was even de info die ik zocht. Rest ook bedankt, altijd leerzaam en handig, optocouplers zijn onderweg, maar nu kan ik vanavond nog even lekker klooien.

grtz rob
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Haas67 op 25 november 2019, 18:39:32
Ik sluit een Arduino aan met een interface volgens dit schema:

(https://images.beneluxspoor.net/bnls/DCC-optoisolator.jpg) (https://images.beneluxspoor.net/bnls/DCC-optoisolator.jpg)

Dat is simpel te maken op een stukje stripboard.

Groet Meino
Iets beter lezen. De topic starter had juist geen opto-coupler. Vroeg naar een variant met alleen een weerstand voor het DCC signaal naar de arduino.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: meino op 25 november 2019, 18:45:30
Dat weet ik, een Arduino UNO heb je al voor 3,50 euro.

Groet Meino
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Jeroen Vreeken op 25 november 2019, 19:30:24
Heb ook in de datasheet van de Attiny zitten neuzen maar daar kan ik niks vinden over de hardwarekant van de I/O poorten. Bij andere IC's geven ze altijd een tabel van Absolute Maximum Ratings, maar die zie ik hier niet. Het zou me niet verbazen als die poorten intern gezenerd zijn zodat je die directe aansluiting straffeloos kan toepassen.

In het hoofdstuk 'I/O-Ports' staat het I/O Pin equivalent circuit.
Zoals wel vaker bij dit soort chips heeft de pin twee 'diodes', eentje vanaf de Gnd en eentje naar de Vcc. Hierdoor blijft de pin tussen -0.5V en Vcc+0.5V.
Afhankelijk van je voeding en als de stroom door je weerstand niet te hoog is werkt dit inderdaad grofweg als een zener...

Maar dan is het nog steeds niet verstandig ze zomaar aan elkaar te hangen.
Heeft het DCC signaal toevallig dezelfde gemeenschappelijke 0 en heb je toevallig de verkeerde DCC lijn te pakken? Dan sluit je de centrale kort door je schakeling eraan te hangen. Hopelijk heeft deze een beveiliging, maar die zou zomaar eens een flink stuk hoger kunnen liggen dan je arduino schakelingetje leuk vind. (Denk dan aan smeltende draden e.d.)
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: borotof op 25 november 2019, 20:58:26
'een mens lijdt het meest aan het lijden dat hij vreest'
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Patrick Smout op 25 november 2019, 21:15:19
Iets netter zou het zijn om het via een transistor te doen: ga met een weerstand (laten we zeggen 100k) naar de basis. Hang de emiter naar de nul en de collector aan de arduino. Stel de arduino poort in als een weak pull-up en je hebt het dcc signaal beschikbaar.
Niet vergeten om na te kijken of een diode antiparallel over de BE-overgang vereist is. De EB breakdown spanning is niet zo heel hoog en afhankelijk van de gebruikte transistor (bij een bc547 is deze bvb slechts min. 6V )

mvg, Patrick Smout
Titel: Re: aansluiten dcc signaal arduino
Bericht door: Klaas Zondervan op 25 november 2019, 21:37:35
In het hoofdstuk 'I/O-Ports' staat het I/O Pin equivalent circuit.
Aha, gevonden. Was lastig zoeken want het document heeft 240 pagina's maar geen inhoudsopgave. Er zitten dus clampdiodes in. Dan zou ik er rustig een hogere spanning op zetten, maar dan wel via een hoogohmige weerstand.
Door een verwijzing bij dat hoofdstuk kwam ik ook bij de Absolute Maximum Ratings.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Patrick Smout op 25 november 2019, 22:03:25
Toch beter om te vermijden dat je de clamping diodes effectief gebruikt voor dit doel. Primaire functie is het beschermen van de ingang voor spanningen <0V of groter dan Vcc. Keerzijde is dat er tijdens het clampen ook secundaire effecten kunnen optreden. Als dit bvb een ingang is met ook een analoge functie kan je beinvloeding hebben van andere analoge ingangen door parasitaire effecten in het ingangscircuit. Extern 2 schottky diodes plaatsen als je een clamping nodig hebt is een solidere oplossing.

Mvg, Patrick
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Klaas Zondervan op 25 november 2019, 23:21:17
@Patrick, weet je misschien hoe dat bij een locdecoder zit? Daar wordt ook de digitale railspanning aangeboden aan de decoderchip die intern waarschijnlijk op een lagere spanning werkt.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Patrick Smout op 26 november 2019, 06:07:51
@Klaas,

Hoe een decoderfabrikant dit in praktijk oplost weet ik niet omdat ik zelf nog geen schema van een commerciele locdecoder gezien heb. Als ze het goed willen doen dan plaatsen ze extern diodes maar je ziet regelmatig schema's met oneigenlijk gebruik van de interne clamping diodes. Ogenschijnlijk werkt dit allemaal wel maar je merkt in de praktijk toch wel dat het niet altijd ongestraft kan.

Mvg, patrick
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Timo op 26 november 2019, 09:40:41
Zoals ondertussen weg gezegd, zonder opto kan prima. Je moet alleen even rekening houden dat je systemen of volledig gescheiden zijn (voor je het aansluit ;) ) of al dezelfde referentie/GND kiezen. Zeker als de Arduino aan een PC hangt en je hebt een common GND booster zal je al een verbinding hebben.

En dan is een enkele weerstand inderdaad genoeg. De clamp diodes doen de rest. Spanningsval over de interne diodes is al niet zo groot dus of externe (shottky) diodes nog veel toevoegen... Wel zou ik voor meer dan 22k gaan, absoluut max is 1mA (uit mijn hoofd :angel:) en met 22k op 25V ga je daar dus al overheen.

Een spanningsdeler is schijnbeveiliging, werkt prima voor het positieve signaal maar tijdens het negatieve deel vertrouw je dan toch grotendeels op de clamp diodes.

Wat betreft opto, je hebt wel iets sneller dan een generieke PC817 nodig. En als je een 6N136/7 gebruikt zoals hier laten zien mag je R2 en R3 weglaten :)


Timo
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Klaas Zondervan op 26 november 2019, 10:18:45
Kennelijk is het "misbruiken" van de interne clampdiodes gangbare praktijk.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: gvandersel op 26 november 2019, 11:53:39
Is naar mijn mening, als het verstandig gedaan wordt, geen misbruik. Ze zijn voor dit doel aangebracht in de microcontroller. Wat verder de ingang betreft: altijd een interrupt ingang (int0 of int1) gebruiken.
Bij samen werken met een computer en andere bronnen van voeding nooit doen. Voor je het weet ligt er een lus die er niet hoort en of je computer van € 1000,00 dat leuk vind (ik denk het niet).
Bij meerdere voedingsbronnen gewoon de opto-coupler nemen. En bij een Arduino zit je al heel gauw aan twee of meer voedingen,

Groet,

Gerard van der Sel.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: bask185 op 26 november 2019, 14:50:12
Wat verder de ingang betreft: altijd een interrupt ingang (int0 of int1) gebruiken.
Bijna elke pin op een arduino heeft een externe interrupt die op beidenflank gevoelig zijn. Alleen die int0 en int1 hebben iets meer functionaliteit.

(https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fforos.giltesa.com%2Fotros%2Farduino%2Ffc%2Fdocs%2Fpinout%2Funo.jpg&f=1&nofb=1)
https://playground.arduino.cc/Main/PinChangeIntExample/ (https://playground.arduino.cc/Main/PinChangeIntExample/)
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Haas67 op 26 november 2019, 15:58:59
Vanwege de extra functionaliteit gebruiken de DCC decoder libraries (Mynabay en NMRA) dan ook deze pinnen. De Mynabay library altijd pin 2, en bij de NMRA library is ook pin 3 in te stellen.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Patrick Smout op 26 november 2019, 23:51:04

En dan is een enkele weerstand inderdaad genoeg. De clamp diodes doen de rest. Spanningsval over de interne diodes is al niet zo groot dus of externe (shottky) diodes nog veel toevoegen...
De clamping diodes zullen hun werk wel doen maar side effects zijn niet uit te sluiten op het moment dat ze gaan geleiden . Wat de sideeffects zijn kun je enkel maar gissen maar vooral bij IO pinnen met ook een analoge functie is de onderlinge beinvloeding meetbaar en aanwezig. Het is verleidelijk om geen externe clamping te voorzien maar in de praktijk heb ik meermaals het nut ervan bewezen gezien.

Mvg, Patrick
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: gvandersel op 28 november 2019, 13:01:27
@Patrick,

Kun je mij uitleggen waarom externe clamping diodes geen beïnvloeding geven?
Voor mij gebeurt intern met de spanning hetzelfde als met alleen interne clamping diodes.
INT0 en INT1 zijn geen onderdeel van een poort met AD functionalieit (poort D kent dit niet).

Groet,

Gerard van der Sel.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Patrick Smout op 28 november 2019, 23:11:00
Dag Gerard,

Een application note die ik kan aanbeveleni is

https://www.nxp.com/docs/en/application-note/AN4731.pdf (https://www.nxp.com/docs/en/application-note/AN4731.pdf)

Zie hoofdstuk 4 maar eigenlijk is heel het artkel goed.

De onvoorspelbaarheid van het gedrg is het probleem. Hangt allemaal af van hoe de fabrikant zaken intern oplost. Kan bvb ook zijn dat de clamping diodes voor de eenvoud voorgesteld worden als diodes maar eigenlijk FET schakelingen zijn. Dit icm complexe ingangscicuits is een cocktail van verrassingen. Het is beter om injectiestromen te vermijden door het plaatsen van deftige ignaalconditionering. De oplossing met de transistor en BE diode antiparallel heeft hier mijn voorkeur. Alternatief is gebruik maken van externe schottky diodes in de veronderstellng dat de clamping diodes een hogere doorlaatspanning hebben want anders is dit zinloos.  De stroom loopt dan via de extene schottky diodes en e zal geen injectiestroom zijn. Bij de Atmega 328 is de spanningsval ove de clamping diodes ongeveer 0,5V. Er zijn ook IC's waar dit maar 0,3V is. Externe clamping kan dan niet met schottky en dan is de transistor oplossing een valabel alternatief.

Uiteraard is er ook de factor geluk die maakt dat je nergens tegenaan loopt maar voorkomen is altijd beter dan genezen.. Je hebt altijd wat spreiding op componenten. Wat je zeker niet wil is dat op je prototype en 0-serie alles prima lijkt te werken en dan plots, schijnbaar uit het niets, op een warme dag je serieproductie vreemd begint te doen.

Mvg, Patrick


Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: HansQ op 29 november 2019, 10:21:16
Volgens mij moet dit ook werken om de positieve flank van het DCC signaal te detecteren:

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

In principe kun je je de diode weglaten, bij DCC spanningen van -20V ... +20V heeft de transistor daar volgens mij geen moeite mee...
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: HansQ op 29 november 2019, 10:23:38
Wacht even... Patrick gaf dit al aan...
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Klaas Zondervan op 29 november 2019, 11:25:20
Alleen adviseerde Patrick om de diode antiparallel over de BE-overgang te zetten, dus op de plek waar HansQ nu R2 heeft getekend.
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: HansQ op 29 november 2019, 11:29:31
Zo dan dus...
(https://images.beneluxspoor.net/bnls/X2.png) (https://images.beneluxspoor.net/bnls/X2.png)
Titel: Re: Aansluiten DCC-signaal aan Arduino zonder optocoupler?
Bericht door: Patrick Smout op 29 november 2019, 17:35:21
En als je geen diode in huis hebt dan kan je die in het laatste schema van Hans ook vervangen door  een weerstand van bvb 1K - 2K2. Dit voorkomt ook dat de inverse BE spanning te groot wordt. Een weerstand van 10 K zoals in het eerste schema van Hans is te groot en zorgt nog altijn voor een hegatieve spanning van -9V wat te hoog is.Verschillende wegen naar Rome dus  ;)

Mvg,  Patrick