Hoe los ik denderen van een contact op?

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Hoe los ik denderen van een contact op?

Berichtdoor FTMZ » 07 Mei 2020, 22:18

Hallo Hobbyisten.

Ik heb een morsesleutel aangesloten op mijn Arduino printje, om te detecteren hoelang ik contact maak, of hoelang ik de contacten verbreek.
Aangezien het "sleutelen" zeer snel gaat maar het gewoon een maakcontactje betreft, is het lastig om daar onderscheid in te maken.

Sla ik een "T" aan, wat een streepje is, kan het zijn dat mijn arduino dit als een "i" ziet, wat 2 punten is.
Een delay is lastig omdat de contactmomenten zo snel gaan, dat dit het eerste deel van een streep kan zien als een punt, of een punt van een karakter missen, omdat hij simpelweg niet gedetecteerd wordt.

Nu zat ik te denken...
Denderen ontstaat toch door het maken en verbreken van contacten?
Stel dat ik de betreffende poort "optil" naar (bv) 2v in rust door een spanningsdeler te maken met weerstanden, die bij gemaakt contact 5v maken.
Daarmee voorkom ik de sprong van 0 naar 5V en is er altijd een rustspanning.
Zou zoiets helpen?

Het vervelende is ook nog eens dat ik een regeling maak die een hogere snelheid vraagt waarbij de punten, strepen en de diverse pauzemomenten evenredig korter worden, waarbij ik de antidender strakker moet afstellen.
Hoe kan ik dat het beste opvangen?

Advertisement

Gebruikers-avatar
Berichten: 609
Geregistreerd: 15 Nov 2015, 11:54

Re: Hoe los ik denderen van een contact op?

Berichtdoor Gij Kieken » 07 Mei 2020, 22:41

Gebruik een debounce library of schrijf zelf een of doe het hardware matig.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Hoe los ik denderen van een contact op?

Berichtdoor Koepel » 07 Mei 2020, 22:48

Kun je een schets maken van hoe het aangesloten is ? Kun je een foto van de sleutel maken ? Hoe lopen de draden ? Wat is je pullup weerstand ? enzovoorts.

De Bounce2 library vind ik het gemakkelijkste in gebruikt: https://github.com/thomasfredericks/Bounce2. Om die goed en sneller te laten werken is het nodig dat de rest van je code geen delay() bevat.
Je kunt het ook wiskundig bekijken, en een meer intelligent filter er op los laten.
Het is ook mogelijk om interrupts te gebruiken, of een RC-filter in hardware.

Halverwege deze bladzijde staat een plaatje van een denderende schakelaar: http://www.gammon.com.au/switches.

Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Re: Hoe los ik denderen van een contact op?

Berichtdoor FTMZ » 08 Mei 2020, 08:40

Mijn hoofdvraag was eigenlijk of mijn weerstandsdeler, zodat ik niet 5v versus 0v maar bv 5v versus 1v op de poort heb, helpt bij het antidenderen.
Er is dan altijd een (lage, 1V) spanning aanwezig, waardoor de overgang niet te groot is.
1v wordt nog altijd als null herkend.

Ik zal eens kijken naar die library's.

Het grote nadeel van een morsesleutel is dat het geen geveerd contact is die abrupt "om" is.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Hoe los ik denderen van een contact op?

Berichtdoor Koepel » 08 Mei 2020, 14:13

Daarom gaf ik een link naar een plaatje van dender. Het voltage wijzigen gaat niet helpen. Een foto van de sleutel geeft een idee wat het is en of het alleen koper contact is of er een drukschakelaar zit. De pullup (of pulldown) weerstand is heel belangrijk, maar ik weet niet eens of je die hebt. Als er lange draden zijn dan kan een optocoupler gebruikt worden, dan loopt er bijvoorbeeld 10mA door de sleutel en dan kan alsnog een RC-filter gebruikt worden om een deel van de dender weg te halen.

Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Re: Hoe los ik denderen van een contact op?

Berichtdoor FTMZ » 09 Mei 2020, 21:57

Het zijn korte lijntjes tussen sleutel en Arduino.
Het is echt een maakcontact tussen 2 messing contactpunten, alsware het een drukschakelaar (drukcontact).
Ik heb ook overwogen om eea via een logische poort te laten lopen zodat ik volledig los van de arduino een schakeling kan maken die ofwel 1 ofwel 0 aanbiedt.
Maar de Arduino is juist zo'n intelligent apparaatje die dat zelf kan.

Ik zal me eens inlezen in het linkje dat js postte.

Berichten: 3882
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Hoe los ik denderen van een contact op?

Berichtdoor shooter » 09 Mei 2020, 23:29

daar kun je inderdaad een debounce software voor gebruiken en zolang je niet boven de 1 miljoen keer schakelt per seconde gaat dat prima.
je kunt ook een schmitt trigger gebruiken, en zelfs dat kun je met een arduino doen.
paul deelen
shooter@home.nl

Berichten: 30
Geregistreerd: 14 Dec 2018, 14:39

Re: Hoe los ik denderen van een contact op?

Berichtdoor FTMZ » 10 Mei 2020, 21:43

shooter schreef:daar kun je inderdaad een debounce software voor gebruiken en zolang je niet boven de 1 miljoen keer schakelt per seconde gaat dat prima.
je kunt ook een schmitt trigger gebruiken, en zelfs dat kun je met een arduino doen.


Dat lukt ook met de genoemde software (lees: code) die Koepel aandroeg?

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Hoe los ik denderen van een contact op?

Berichtdoor Koepel » 10 Mei 2020, 22:10

Ja, maar die zijn voor "gewone" schakelaars en drukknoppen. Daar zit vaak iets in dat veert. Dat is echt denderen, en dat is dus vrijwel altijd helemaal gesloten of helemaal open.

Met twee messing contactpunten is het iets anders. Als er contact gemaakt wordt, dan weet je zeker dat dat ook de bedoeling is. Als er geen contact is, dan maakt het misschien op dat moment even slecht contact.

Toch kun je beginnen met die Bounce2 library. Die kan dat probleem oplossen, maar dat werkt alleen goed als je sketch geen delay() heeft.

Hoe zit het met de pullup of pulldown weerstand ? Als je die niet hebt, dan kun je proberen dat met de Bounce2 library op te lossen, maar dat is het paard achter de wagen spannen.

Berichten: 3882
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Hoe los ik denderen van een contact op?

Berichtdoor shooter » 11 Mei 2020, 10:28

ftmz voorspanning is niet goed want dan wordt het schakelvenster juist jklein een paar weerstanden en debounce is voor jouw toepassing prima. je kunt een sleutel ook met een optocoupler doen dan heb je geen last van dender.
paul deelen
shooter@home.nl

Volgende

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 8 gasten