Arduino nano i enkoder wyjście analogowe ? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Arduino nano i enkoder wyjście analogowe ? (/watek-arduino-nano-i-enkoder-wyj%C5%9Bcie-analogowe) |
Arduino nano i enkoder wyjście analogowe ? - Endrju12 - 17-05-2019 Witam mam takie pytanie czy z arduino nano i pierwszego lepszego enkodera można zrobić przyciski do przewijania piosenek ? Chodzi o to że w samochodzie w pilocie jest rolka do zmiany piosenki na następną/poprzednią nowe radio ma wejście analogowe , potrzebował bym układ który po ruchu enkoder wystawi na odpowiedni pin sygnał czy takie coś da rade zaprogramować z arduino nano i enkoder ? RE: Arduino nano i enkoder wyjście analogowe ? - error105 - 17-05-2019 Tak, da radę. RE: Arduino nano i enkoder wyjście analogowe ? - Endrju12 - 17-05-2019 Dziękuje , zamawiam elementy. Mam nadzieje że mogę liczyć na pomoc w programowaniu i podłączeniu jak tylko dojdzie RE: Arduino nano i enkoder wyjście analogowe ? - Endrju12 - 18-05-2019 Panowie i Panie . W czasie oczekiwania na elementy przeglądam ten enkoder EC11 https://abc-rc.pl/product-pol-7636-Modul-Encoder-impulsator-EC11-20-impulsow-z-przyciskiem-rotary-enkoder.html do enkodera jest schemat razem z programem //these pins can not be changed 2/3 are special pins int encoderPin1 = 2; int encoderPin2 = 3; volatile int lastEncoded = 0; volatile long encoderValue = 0; long lastencoderValue = 0; int lastMSB = 0; int lastLSB = 0; void setup() { Serial.begin (9600); pinMode(encoderPin1, INPUT); pinMode(encoderPin2, INPUT); digitalWrite(encoderPin1, HIGH); //turn pullup resistor on digitalWrite(encoderPin2, HIGH); //turn pullup resistor on //call updateEncoder() when any high/low changed seen //on interrupt 0 (pin 2), or interrupt 1 (pin 3) attachInterrupt(0, updateEncoder, CHANGE); attachInterrupt(1, updateEncoder, CHANGE); } void loop(){ //Do stuff here Serial.println(encoderValue); delay(1000); //just here to slow down the output, and show it will work even during a delay } void updateEncoder(){ int MSB = digitalRead(encoderPin1); //MSB = most significant bit int LSB = digitalRead(encoderPin2); //LSB = least significant bit int encoded = (MSB << 1) |LSB; //converting the 2 pin value to single number int sum = (lastEncoded << 2) | encoded; //adding it to the previous encoded value if(sum == 0b1101 || sum == 0b0100 || sum == 0b0010 || sum == 0b1011) encoderValue ++; if(sum == 0b1110 || sum == 0b0111 || sum == 0b0001 || sum == 0b1000) encoderValue --; lastEncoded = encoded; //store this value for next time } pytania jakie mi się pojawiły enkoder podłączamy do pinu 2i 3 oraz GND w schemacie nie ma podłączenia przez rezystory, czy takie są tu wymagane. Piny 2i 3 są wejściami a na których pinach jest wyjście sygnału . Czy muszę je sam zdefiniować ? Czy to jest kompletny kod ? RE: Arduino nano i enkoder wyjście analogowe ? - kaczakat - 19-05-2019 Zacznij od kursu Arduino. Encodery mogą być gołe (jak w linku) i podstawową elektroniką eliminującą drgania. W zależności co masz kod może się różnić. To co załączyłeś to podstawowy kod pozwalający uruchomić encoder bez eliminacji drgań styków. Po instalacji Arduino możesz też wybrać gotową bibliotekę do encodera i do każdej znajdziesz przykłady jej użycia. |