Ansluta knappar till ATmega16

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Jag vill ansluta fem stycken tryckknappar till en ATmega16, och jag vill att de ska generera ett interrupt när de trycks ner.

Det här var mitt första försök:
Bild

Men jag insåg rätt snabbt att det inte skulle fungera - så fort en knapp tycks ner blir alla knappar låga...

Ett snabbt förslag på en lösning är det här, hjälper/funkar det?
Bild

//Tobbe
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: Ansluta knappar till ATmega16

Inlägg av eqlazer »

Använd en resistor till varje knapp eller använd intern pullup i AVRen om den modellen har det.

Edit: aha, skulle generera interrupt också ja och m16 har inte interrupt på alla pinnar. Du klarar inte att sampla istället? Ofta kan det vara bättre att periodiskt sampla och slippa många problem med kontaktstuds tex.
Varför inte använda en modernare variant av m16? Om det var den som hette m164 kanske. De har interrupt på alla IO vilket underlättar mycket.
thepirateboy
EF Sponsor
Inlägg: 2109
Blev medlem: 27 augusti 2005, 20:57:58
Ort: Borlänge

Re: Ansluta knappar till ATmega16

Inlägg av thepirateboy »

Men är det inte en mux på varje port så man kan väl inte ha interrupt på alla pinnar samtidigt?

Det borde gå med separata pullup och separata dioder kopplade till INT0.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Port 16-21 (21 syns inte på bilden) har interna pull-ups man kan använda om man vill, men inte int0. Så eftersom jag ändå behövde en till int0 tänkte jag jag kunde använda den till alla...

Jag har redan just den här atmegan, så jag vill inte använda någon annan.

Vad är problemet med min "lösning" med dioderna?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Ansluta knappar till ATmega16

Inlägg av sodjan »

Samma som innan, mer eller mindre.
Norpan
Inlägg: 2229
Blev medlem: 12 april 2008, 18:20:27
Ort: Småland

Re: Ansluta knappar till ATmega16

Inlägg av Norpan »

Koppla alla diodernas anoder och pullup till int0 och en katod till varje ingång.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Ja, så klart. Ser det nu... (detta är svar till sodjan)
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Norpan skrev:Koppla alla diodernas anoder och pullup till int0 och en katod till varje ingång.
Såhär?
Bild
Senast redigerad av TobbeSwe 9 februari 2009, 17:17:00, redigerad totalt 1 gång.
Norpan
Inlägg: 2229
Blev medlem: 12 april 2008, 18:20:27
Ort: Småland

Re: Ansluta knappar till ATmega16

Inlägg av Norpan »

Japp.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Så nu har jag kopplat in knapparna enligt följande schema:
Bild

Problemet är att när jag trycker ner en knapp blir de andra knapparna "dangling". Logikproben visar varken hög eller låg på de ben som har en öppen knapp.

Hur löser jag det?
Användarvisningsbild
XCore
EF Sponsor
Inlägg: 963
Blev medlem: 31 januari 2009, 03:00:12

Re: Ansluta knappar till ATmega16

Inlägg av XCore »

Ett motstånd från pinnen efter knappen(som ligger öppen tills knappen trycks) ner till minus kanske funkar?
Användarvisningsbild
AndLi
Inlägg: 18309
Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av AndLi »

Sätt ett pullupp på varje ingång.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Det har jag ju redan. Sitter ju ett stort 10k-motstånd där...
Användarvisningsbild
XCore
EF Sponsor
Inlägg: 963
Blev medlem: 31 januari 2009, 03:00:12

Re: Ansluta knappar till ATmega16

Inlägg av XCore »

AndLi skrev:Sätt ett pullupp på varje ingång.
Det har nog ingen missat men som han sa, på varje ingång.
Användarvisningsbild
TobbeSwe
Inlägg: 102
Blev medlem: 18 september 2004, 21:38:34
Ort: Köpenhamn
Kontakt:

Re: Ansluta knappar till ATmega16

Inlägg av TobbeSwe »

Jag försöker förstå hur dethär fungerar, men det går inget vidare...

Min teori är följade: När jag trycker ner en knapp går all spänning till jord, via den knappen, i stället för att lyfta de ingångar som inte har en nedtryckt knapp. Stämmer det?
Skriv svar