Ta bort externa motstånd med Pull-Up - Till knappar

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av fosfor »

Hej!

Jag läste precis att Arduino har inbyggd pull-up resistor, och att man kan aktivera den via koden.
Så att man kan koppla in en knapp direkt utan extra komponenter. Dvs från en input, till en brytare och till ground bara.

I nuläget så har jag mina knappar inkopplade med pull-down motstånd (10k) utanför Arduinon. Ett sådant för varje knapp...
Det fungerar, men det vore ju trevligt att slippa alla motstånd. :roll:


Skulle det räcka med att jag tar bort motstånden, och skriver in PULLUP i koden och så fungerar det som innan sedan?
Eller blir det "spegelvänt" alltihop? Så att jag måste använda switchar som bryter när man trycker istället för sluter när man trycker?
Och har ALLA in/utgångar tillgång till Pull-Up motstånd internt? :humm:
Fördel/nackdel?

Jag använder Arduino MEGA.

Mvh F
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av Henry »

Du måste ändra i koden eftersom, precis som du säger, så är allt inverterat så att säga i förhållande till vad koden förväntar sig, men det är en smal sak.
Användarvisningsbild
fosfor
Inlägg: 453
Blev medlem: 13 februari 2013, 05:43:15
Kontakt:

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av fosfor »

Oki, men HUR ändra i koden?

Kan jag använda pull-up och endå att knapparna fungerar precis som innan?
Dvs att de aktiverar när man trycker?

Vad utöver PullUp i koden behöver jag lägga till? :humm:
Användarvisningsbild
Henry
Inlägg: 23613
Blev medlem: 20 april 2005, 02:52:47
Ort: Lund

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av Henry »

Kan jag använda pull-up och endå att knapparna fungerar precis som innan?
Dvs att de aktiverar när man trycker?


Inga problem, bara du ändrar i koden för det. Var du skall ändra det har jag inte den blekaste då jag inte vet hur din kod ser ut men med knappar involverat så allt som har med knapparna och göra för att känna av om de blivit nedtryckta eller ej.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45272
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av TomasL »

Stopp och belägg.
Riktigt så enkelt är det inte:
Notera:
I nuläget så har jag mina knappar inkopplade med pull-down motstånd (10k) utanför Arduinon. Ett sådant för varje knapp...
Det innebär att knapparna sluter mot matningen.
Om man skall använda de inbyggda PullUpp motstånden, måste knapparna sluta mot gnd.

Och ja i detta fallet blir det tvärtom, dvs som du har det nu:
0==Ej nedtryckt knapp.
1==Nedtryckt knapp.
Med Intern Pullup och knapparna mot GND
1==Ej nedtryckt Knapp.
0==Nedtryckt knapp.

Om du behåller nuvarande inkoppling av knappar och tar bort de externa motstånden, slår på PullUp kommer du alltid att ha en Etta in oavsett om du trycker på knapparna eller inte.

Vill du behålla programmet som det är, men ändå använda intern PullUp, måste du ha knappar som bryter vid tryckning (givetvis kopplade till Gnd)
Användarvisningsbild
Hobbyisten
Gått bort
Inlägg: 2531
Blev medlem: 3 december 2017, 22:55:25

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av Hobbyisten »

fosfor skrev:Oki, men HUR ändra i koden?

Kan jag använda pull-up och endå att knapparna fungerar precis som innan?
Dvs att de aktiverar när man trycker?

Vad utöver PullUp i koden behöver jag lägga till? :humm:
Förmodligen behöver du bara ändra i några IF-satser där du tar besluten i din kod, inverterat mot förut som nämnts. Nedtryckt knapp ska sluta mot GND.
Sijoh
Inlägg: 52
Blev medlem: 16 februari 2014, 09:48:10
Ort: Aneby

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av Sijoh »

Du kanske redan vet, men i koden räcker det med att lägga till ett ! framför läsningen för att få en inverterad signal, ex. digitalRead(2) blir !digitalRead(2). Då kommer det bete sig som förut i fallet med NO-knappar, med en 1a när knappen är intryckt (sluten mot jord) och 0a när knappen är opåverkad. Eller som sagt, använda NC-knappar ger precis samma funktion.
Användarvisningsbild
HUGGBÄVERN
Tidigare soundbrigade
Inlägg: 32739
Blev medlem: 23 augusti 2006, 22:44:11
Ort: Lilla Paris
Kontakt:

Re: Ta bort externa motstånd med Pull-Up - Till knappar

Inlägg av HUGGBÄVERN »

Fast har du NU motstånd för pull up/down finns det ju ingen orsak att trassla med koden om du inte ska ge dig på nya projekt och för dessa vill slippa externa motstånd.
Skriv svar