Analoge knoppen Arduino

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
Hallo,

Ik ben een beetje aan het stoeien geweest met een arduino waar ik eigenlijk 16 knoppen en ledjes wil gebruiken en intussen maar zodanig heb ingericht dat ik 2 arduino nano (clone's) aan elkaar gekoppeld heb.

Ik heb nu een reeks analoge inputs als digitale inputs kunnen gebruiken en heb daar 8 knoppen op (per arduino, de A0 t/m A7). Op de digitale pins heb ik vervolgens een LED zitten. Vervolgens een stukje code (om het simpel te houden); als ik knop 1 indruk gaat alleen led 1 aan, en als ik knop 2 indruk alleen led 2 etc.

Nu had ik dat eigenlijk efficiënter willen instellen met weerstanden en normale knoppen op één analoge input.

Ik wou hiervoor programmeren dat (met wat marge) een bepaalde waarde een bepaalde actie werd gedaan.

Waarde 100 (95 - 105) -> laat LED 1 branden
Waarde 150 (145 - 155) -> laat LED 2 branden
etc.

Nu lijkt mij dat een plausibele casus, alleen liep ik toen tegen het probleem aan dat de waarde (bij het direct uitlezen van de pinwaarde in de arduino software) heel erg fluctueerde, en het simpel met de hand over de arduino bewegen al haast het maximale resultaat gaf. Maar eigenlijk een range tussen de 200 en 1023 gaf.

Daarmee werkt mijn code dus niet, tenzij ik een soort vertraging inbouw dat alleen als een bepaalde waarde voor x-tijd wordt gehaald een bepaalde actie getriggered wordt. Maar daarmee bouw ik een hoop vertragingen in die random getriggered worden en alsnog een ongewenst effect geven.

Nu vroeg ik mij af hoe je kunt zorgen dat de analoge pin een vaste waarde handhaaft ondanks dat er geen knoppen worden ingedrukt.

Ik denk zelf aan een constant laag voltage en middels weerstanden via de 5V pin diverse schakelaars op die ene analoge pin aan te sluiten. Bij geen druk op de knop zou de waarde van bijvoorbeeld A0 altijd 50 zijn, maar als er een schakelaar wordt ingedrukt bijvoorbeeld 100 of 150 als waarde gegeven worden.

Is die gedachtegang goed?

Litebit.eu voorraad check :).

Beste antwoord (via BLACKfm op 13-05-2019 21:56)


  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:37

Rmg

weerstandswaardes maken niet uit, dat is het mooie van een spanningsdeler, als je die 5x 1k hebt dan meet je 1, 2, 3 en 4 volt.

Die 1 mega zorgt er voor dat je signaal 0 is als er geen button ingedrukt is. Zolang deze maar hoger is dan de som van je weerstanden aan de linkerkant is het prima.

En ja je kan meer knoppen kwijt met een dergelijke oplossing, alleen je moet dan wel continue je analoge pin lopen pollen, hoeft geen probleem te zijn hoor.

[ Voor 21% gewijzigd door Rmg op 13-05-2019 17:24 ]

Alle reacties


Acties:
  • +1 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:37

Rmg

Dat kan wel, maar je moet je inputs inderdaad niet floating hebben. Je kan dan met met weerstandjes lopen klooien. Je krijgt dan zo'n schema: Afbeeldingslocatie: https://i.stack.imgur.com/Hqt2f.png

De standaard manier om meer buttons met 8 (digital) inputs uit te lezen is trouwens met een matrix. Dit idee:

Afbeeldingslocatie: https://www.circuitbasics.com/wp-content/uploads/2017/05/Arduino-Keypad-Tutorial-4X4-Keypad-Schematic.png

[ Voor 10% gewijzigd door Rmg op 13-05-2019 16:14 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 01-06 08:44
Vertel eerst eens hoe je die weerstanden aansluit? Je moet natuurlijk wel een spanningsdeler maken. Dat kan zowel met externe weerstanden als met gebruik van de interne pullup, maar je moet het wel goed aansluiten.

Daarnaast is dit niet echt een gebruikelijke oplossing. Ik zou vooral eens zoeken op "multiplexing" en evt. multiplexing touchpads e.d.

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 03-06 17:11
mcDavid schreef op maandag 13 mei 2019 @ 16:14:
Vertel eerst eens hoe je die weerstanden aansluit? Je moet natuurlijk wel een spanningsdeler maken. Dat kan zowel met externe weerstanden als met gebruik van de interne pullup, maar je moet het wel goed aansluiten.

Daarnaast is dit niet echt een gebruikelijke oplossing. Ik zou vooral eens zoeken op "multiplexing" en evt. multiplexing touchpads e.d.
Ik heb het intussen niet meer 'breadboard' waardig (inmiddels mijn huidige opstelling al op een printplaat gesoldeerd). Maar nieuwe nano's zijn onderweg.


Ik zag onderanderen dit bordje (https://www.aliexpress.co...999999.271.18733c00qpfrkO) welke mijn inziens 16 knoppen op 1 analoge pin kwijt kan.

Een basisopstelling die ik zelf heb geprobeerd was met de enkele weerstanden die ik had (1K en 10K), maar daar kreeg ik het nog niet mee voor elkaar (ondanks dat ik 2 vaste waardes kreeg).
Ik liep op dat moment tegen het probleem aan dat de waarde van de analoge pin fluctueerde.

Een dergelijke opstelling als met dat knoppenbord van aliexpress heb ik dus het idee dat elke knop een nadere weerstand waarde heeft en daardoor een bepaalde analoge waarde geeft.

Hoe ik dat zelf moet gaan aansluiten moet ik dus nog even uitvogelen (welke waarde voor de weerstanden nodig is vanaf 5V), maar het gaat me nu nog even om of het mogelijk is.

'Multiplexing' is zo mogelijk nog iets te hoog gegrepen voor mij :)..


@Rmg "Met weerstanden lopen klooien" klinkt alsof dat niet de beste wijze is, maar als ik dat schema (en dat eerder genoemde knoppenbord) mag geloven kost het mij maar 1 pin i.p.v. 8.

Litebit.eu voorraad check :).


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Rmg
  • Registratie: November 2003
  • Laatst online: 17:37

Rmg

weerstandswaardes maken niet uit, dat is het mooie van een spanningsdeler, als je die 5x 1k hebt dan meet je 1, 2, 3 en 4 volt.

Die 1 mega zorgt er voor dat je signaal 0 is als er geen button ingedrukt is. Zolang deze maar hoger is dan de som van je weerstanden aan de linkerkant is het prima.

En ja je kan meer knoppen kwijt met een dergelijke oplossing, alleen je moet dan wel continue je analoge pin lopen pollen, hoeft geen probleem te zijn hoor.

[ Voor 21% gewijzigd door Rmg op 13-05-2019 17:24 ]


Acties:
  • 0 Henk 'm!

  • mcDavid
  • Registratie: April 2008
  • Laatst online: 01-06 08:44
@BLACKfm ik weet niet wat er fout gaat maar zolang je niet een schema of iets dergelijks deelt, wordt het ook wel erg moeilijk om mee te denken. Rmg heeft 2 mogelijkheden gepost, die je in principe gewoon na kunt maken. Als dat niet lukt moet je echt iets meer inzicht geven in wat je precies gedaan hebt.

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 04-06 14:01
BLACKfm schreef op maandag 13 mei 2019 @ 16:35:
[...]
'Multiplexing' is zo mogelijk nog iets te hoog gegrepen voor mij :)..
Als je het schema bekijkt zul je zien dat dat reuze meevalt : jij stuurt zelf achter elkaar R1, R2, R3 , R4 aan en leest de andere pinnen voor de knoppen van die rij. Als je dat maar snel genoeg doet kun je best veel knoppen multiplexen.

Het is in ieder geval een veel betere oplossing dan je nu van plan bent te knutselen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1