BeneluxSpoor.net forum

Vraag en antwoord => Elektronica en analoog => Topic gestart door: Martijn Bu op 03 mei 2018, 23:56:27

Titel: Arduino te gevoelig
Bericht door: Martijn Bu op 03 mei 2018, 23:56:27
Hallo, ik ben begonnen een Arduino te gebruiken als pendeltrein aansturing, om spanning op een spoor te zetten etc, en ook om lichteffecten op mijn modelbaan te genereren. De pendelfunctie van de Arduino wordt geactiveerd met een drukknop. Nu blijkt dat de Arduino te gevoelig is. Als er verderop in de modelbaan een puls is (vooral ontkoppelrails), denkt de Arduino dat de drukknop is ingedrukt en begint hij zn programma af te werken. De drukknop was echter helemaal niet ingedrukt. Heeft iemand een idee hoe de gevoeligheid van de Arduino te verlagen, zodat 'ie niet op onafhankelijke signalen van ontkoppelrails etc. reageert? Ik heb de input kabel van de Arduino al "beveiligd" met een ferriet of vervangen door coax kabel, maar dat heeft allemaal niet geholpen. Hartelijk dank voor eventuele ideeën
Titel: Re: Arduino te gevoelig
Bericht door: NL-modelspoor op 04 mei 2018, 07:28:45
Pull up of pull down op de ingang juist staan?
Titel: Re: Arduino te gevoelig
Bericht door: Martijn Bu op 04 mei 2018, 07:50:48
Ik heb op de ingang een pull down weerstand staan, van ik meen uit mn hoofd 5 kohm
Titel: Re: Arduino te gevoelig
Bericht door: lok1614 op 04 mei 2018, 08:01:33
Ik zou juist voor een pull-up kiezen. Met pull-down is je lijn laag een stoorpuls veroorzaakt dus een hoog op je ingang. Met een pull-up is je lijn al hoog en dus minder gevoelig voor stoorpulsen. 5K is voldoende voor een "harde pull" je zou ook de interne pull-up kunnen gebruiken, maar daar lees je wel eens negatieve dingen over, zelf goede ervaringen mee.

Gr Peter

Titel: Re: Arduino te gevoelig
Bericht door: Fritsprt op 04 mei 2018, 08:28:57
Interne Pull-up programmeren en externe R weghalen. Drukknop naar massa schakelen en C-tje over de ingang van 100nF.

Succes Frits
Titel: Re: Arduino te gevoelig
Bericht door: Martijn Bu op 04 mei 2018, 22:27:32
Beste Frits, wat bedoelje met een C-tje over de ingang? Bedoel je een condensator die parallel staat met de drukknop? Dank voor een kleine verduidelijking
Titel: Re: Arduino te gevoelig
Bericht door: Klaas Zondervan op 04 mei 2018, 23:50:23
Frits bedoelt inderdaad een condensator. Maar die moet je niet bij de drukknop zetten, maar zo dicht mogelijk bij de ingang van de Arduino.
Dit soort storingen kan je verminderen door elk contact aan een ingang te verbinden met een getwist aderpaar. Dus niet met een doorgeluste massa maar elk contact zijn eigen massa vanaf de Arduino.
Titel: Re: Arduino te gevoelig
Bericht door: Fritsprt op 05 mei 2018, 09:39:13
Hallo Martijn,

Klaas was me voor. Even een plaatje van internet gehaald

(http://protological.com/wp-content/uploads/2014/11/debounce.png)

R1 kan vervallen als je de interne Pull Up weerstand in de Arduino programmeert. Overigens kan hij ook geen kwaad als je hem wel monteert (10k). De condensator van 100n (maar vermoedelijk werken alle waarden tussen 1nf en 1uF goed) zo dicht mogelijk op de ingang van de Arduino.

Succes Frits
Titel: Re: Arduino te gevoelig
Bericht door: Martijn Bu op 06 mei 2018, 07:07:06
Heel erg bedankt ik ga het proberen
Titel: Re: Arduino te gevoelig
Bericht door: Timo op 07 mei 2018, 08:50:47
Nog een extra tip, zorg dat de twee draden naar de schakelaar zo dicht mogelijk bij elkaar blijven.

En in het kader "don't fix it in hardware if you can fix it in software" ;D (los het niet op in hardware als het met software op te lossen is), een goede debounce op de knoppen zal dezelfde uitwerking hebben. Maar waarschijnlijk heb je wel een extremere debounce tijd nodig dan normaal. Een goede library daarvoor is Bounce2.


Timo
Titel: Re: Arduino te gevoelig
Bericht door: Martijn Bu op 20 mei 2018, 08:32:39
Klaas Zondervan en Fritsprt, het is me na een paar weken knutselen eindelijk gelukt dank zij jullie tips. Ik gebruik een reedcontact als signaal om 2 m verderop een monostabiel relais te activeren; en dit relais, op 15 cm van de Arduino, gebruik ik dan als input voor de Arduino met de schakeling die jullie hebben voorgesteld. Condensator van 1 nF (enige die ik had), met weerstand van 10 kohm. Werkt goed.

Timo, ik heb ook jouw tip toegepast ("twee draden bij elkaar"). De drempel voor fixen met software is voor mij toch nog hoog: ik weet iets van electronica maar mijn ervaring met programmeren is veel te ver weggezakt. Ik heb even op bounce2 gezocht, maar was al snel de draad kwijt. De hardware oplossing werkt redelijk - maar soms is er nog een vals signaal. Misschien ga ik ooit verder met bounce2.

Hartelijk dank allemaal  :) :)