Hoe los ik denderen van een contact op?
16 berichten
• Pagina 1 van 2 • 1, 2
Hoe los ik denderen van een contact op?
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?
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
- Gij Kieken
- Berichten: 632
- Geregistreerd: 15 Nov 2015, 11:54
Re: Hoe los ik denderen van een contact op?
Gebruik een debounce library of schrijf zelf een of doe het hardware matig.
Re: Hoe los ik denderen van een contact op?
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.
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.
Re: Hoe los ik denderen van een contact op?
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.
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.
Re: Hoe los ik denderen van een contact op?
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.
Re: Hoe los ik denderen van een contact op?
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.
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.
Re: Hoe los ik denderen van een contact op?
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.
je kunt ook een schmitt trigger gebruiken, en zelfs dat kun je met een arduino doen.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Hoe los ik denderen van een contact op?
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?
Re: Hoe los ik denderen van een contact op?
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.
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.
Re: Hoe los ik denderen van een contact op?
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
shooter@home.nl
16 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten