Rezystor podciagajacy ile pinów obsluguje?

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 15 maja 2016, 23:14

Krótkie i być może proste pytanie. Ile pinów można jednocześnie podpiąć pod rezystor pociągający poleceniem PULLUP, czy każdy pin ma swój czy jest jeden pod który można dopiąć tylko jeden pin arduino? Staram się zrealizować obsługę dwóch przycisków na dwóch przerwaniach int0 i int1, każdy ma byc realozowany na falling czyli zwarcie przycisku, jednak tylko jeden, pierwszy zadeklarowanych w skeczu działa. Na drugim nie pojawia się nawet napięcie wysokiego stanu tak jak ma to miejsce na pierwszym pinie przerwania int0.

Pozdrawiam

Wysłane z mojego Lenovo K50-t5 przy użyciu Tapatalka

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


jar800v
Młodszy majsterkowicz
Posty: 39
Rejestracja: 2 lut 2015, 11:09

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: jar800v » 16 maja 2016, 08:40

Każdy pin ma swój rezystor który można podłączyć poleceniem INPUT_PULLUP
Zakładając że masz arduino uno(atmega328) to musisz w funkcji setup wpisać

Kod: Zaznacz cały

pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
Powinno zadziałać ale jeśli to nic nie da to pozostaje podciągnąć ten pin zewnętrznym rezystorem :)
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 17 maja 2016, 04:32

Dziękuję za odpowiedź, wolałem się upewnić że tak jest, dodałem nawet ręcznie zewnętrzne pullup-y żeby pominąć "programowe", okazuje się że mam uszkodzony INT1, uruchomiłem ten sam skecz na Arduino Nano z zewnętrznymi rezystorami podciągającymi i programik działa jak należy. Przełożyłem w oryginalnym UNO mikrokontroler na nowy w nadziei że to on jest uszkodzony jednak nadal objaw jest ten sam na nowym uC. UNO nie reaguje na FALLING na INT1 w zamian za to napięcie bez zwarcia przycisku jest po prostu malutkie rzędu 0,3V, po zwarciu spada ale przerwanie nie jest realizowane. Przejrzałem schemat UNO i nóżki wchodzą bezpośrednio do uC wiec po drodze nie ma się co uwalić a skoro go podmieniłem i nadal nie działa sytuacja zaczyna mnie przerastać.

Program jest banalny, zamieszczam go poniżej w nadziei że na UNO coś inaczej się robi ale nie sądzę. Skecz realizuje proste załączanie/wyłączanie LED-a poprzez przerwania z uwzględnieniem pikawki przełączników:)

Kod: Zaznacz cały

const byte ledPin = 6;
const byte interruptZapal = 2;
const byte interruptZgas = 3;
volatile byte state = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);  
 attachInterrupt(0, zapal, FALLING );  
  attachInterrupt(1, zgas, FALLING);
}

void loop() {
  digitalWrite(ledPin, state);}

void zapal() {
   static unsigned long lastTime;
  unsigned long timeNow = millis();
  if (timeNow - lastTime < 200){return;} 
   state = HIGH;
   lastTime = timeNow;
  }

  void zgas() {
   static unsigned long lastTimeZ;
 unsigned long timeNowZ = millis();
  if (timeNowZ - lastTimeZ < 200){return;} 
    state = LOW;
   lastTimeZ = timeNowZ;
  }
Awatar użytkownika
Marhef
Złota rączka
Posty: 1133
Rejestracja: 18 lis 2011, 02:18

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: Marhef » 17 maja 2016, 08:32

A podłączyłeś przycisk z rezystorem podciągającym do Vcc?
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 17 maja 2016, 10:19

Oczywiście, wieczorem zamieszczę schemat żeby rozwiać wątpliwości.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: stiven » 17 maja 2016, 10:39

A musi to być realizowane na przerwaniach?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1133
Rejestracja: 18 lis 2011, 02:18

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: Marhef » 17 maja 2016, 11:20

Jeżeli masz podciągnięcie, a mimo to na pinie jest napięcie bliskie 0, i wymieniłeś mikrokontroler na na pewno sprawny, to musi Ci coś na płytce nie stykać. Zmierz miernikiem, czy masz wszystkie przejścia
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 18 maja 2016, 01:03

Sprawdziłem przejście od pinu do podstawki oba przerwania maja prawie zerowe rezystancje wiec przejście jest ale posprawdzam wszystkie wokoło jeszcze dla pewności. Co do pytani czy musi to być realizowane przez przerwania to odpowiedź brzmi: nie:) Ale dzięki temu zauważyłem ze jest problem z płytką bo na Nano działa poprawnie więc pierwotny problem sam się rozwiązał a temat zmienił kierunek.

Wstawiam schemat poniżej układu, mój pierwszy w tym sofcie wiec proszę o wyrozumiałość:]

Obrazek
Ostatnio zmieniony 18 maja 2016, 02:25 przez seb_ik, łącznie zmieniany 1 raz.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: stiven » 18 maja 2016, 01:53

Jutro mogę napisać więcej, teraz napiszę tylko, że jeśli w ten sposób masz połączone rezystory podciągające, to jest to źle. W momencie wciśnięcia przycisku rezystor ma oddzielać 5V od GND, a tak to robi się zwarcie.
A jeśli masz przycisk tego typu
buttonlegsdiag.jpg
to na tym obrazku jest pokazane które nóżki są połączone na stałe, nawet jak przycisk nie jest wciśnięty.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 18 maja 2016, 02:00

Źle narysowałem być może na schemacie, piny są podpięte po przekątnej, wiec nie ma przejścia dopóki nie wcisnę przycisku, sprawdzałem na wszelki multimetrem.

Napięcie miedzy zasilaniem 5V a za rezystorem na INT1 wynosi 0,3V bez wciśnięcia przycisku, po zwarci przycisku spada do setnych części volta, sprawdziłem funkcje PWM na tym pinie działa poprawnie, głupi jestem:)
Ostatnio zmieniony 18 maja 2016, 02:06 przez seb_ik, łącznie zmieniany 1 raz.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: stiven » 18 maja 2016, 02:05

Tego akurat schemat nie uwzględnia, napisałem to tak dla pewności. No ale rezystory są źle według tego schematu. 5V powinno być na pinie przy niewciśniętym przycisku, ale w momencie wciśnięcia przycisku będzie zwarcie gnd z 5V.
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 18 maja 2016, 02:08

No będzie zwarcie po naciśnięciu przycisku ale prąd zwarcia będzie ograniczony rezystorem, int zarejestruje spadek napięcia, więc wszytko poprawnie?.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: stiven » 18 maja 2016, 02:12

Nie, w ten sposób właśnie nie ma ograniczenia prądu, bo rezystory są nie w tym miejscu co powinny. 5V będzie bezpośrednio zwarte z gnd.
seb_ik
Młodszy majsterkowicz
Posty: 11
Rejestracja: 29 kwie 2016, 23:43

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: seb_ik » 18 maja 2016, 02:14

Kurcze racja, teraz zauważyłem, poprawiam schemat....złe przypiąłem zasilanie na schemacie, oczywiście jest przed rezystorem na układzie. I złe podpiąłem inty na schemacie, te są za rezystorem nie przed....

Poprawiony schemat uaktualniony we wcześniejszym wpisie.

Odnośnie wpisu kolegi Marhef, uC podmieniłem na nówkę z zapasu które trzymam na wypadek gdybym kiedyś jednak coś popsuł albo dojrzał do tematu budowy jakiegoś układu na samym uC. Jedyne co na nim robiłem wcześniej to zaprogramowanie pustaka na płytce prototypowej. Sąsiednie linie sprawdziłem nie ma żadnego przejścia ani pojemności, przeleciałem wszystko wokoło do czego mogłem się wpiąć pomiędzy sąsiednimi pinami a gniazdami samego kontrolera. Oczywiście zdjąłem wcześniej uC. Dla pewności podmieniłem drugi zestaw połączeń z drugiego przycisku żeby wyeliminować głupie kable i rezystory, mikro-styki, nadal objaw ten sam. Coś mi unika z drugiej strony gdyby wszystko działało jak trzeba nie było by nauki w trakcie poszukiwania prawdy:) Jedyne co mogę jeszcze zrobić a co jeszcze nie zrobiłem to podepnę oscyloskop pod ten INT1 w trakcie pracy.
stiven
Złota rączka
Posty: 1581
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Rezystor podciagajacy ile pinów obsluguje?

Post autor: stiven » 18 maja 2016, 12:31

Program bez przerwań. Piny mogą być dowolne teraz.

Kod: Zaznacz cały

const byte ledPin = 6;
const byte interruptZapal = 2;
const byte interruptZgas = 3;
volatile byte state = LOW;

void setup() 
{
  pinMode(ledPin, OUTPUT);  
  
  piMode(interruptZapal, INPUT_PULLUP);
  piMode(interruptZgas, INPUT_PULLUP);
}

void loop()
{
  digitalWrite(ledPin, state);
  
  if(digitalRead(interruptZapal) == LOW) state = HIGH;
  if(digitalRead(interruptZgas) == LOW) state = LOW;
}

ODPOWIEDZ

Strony partnerskie: