Arduino Polska Forum
IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - 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: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem (/watek-ir-odczyt-kod%C3%B3w-z-pilota-i-sterowanie-silnikiem-dc-problem)



IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - dRoooopED - 21-03-2024

Witajcie.

Jestem początkującym "zawodnikiem" jeśli chodzi o arduino. Tak naprawdę jest to mój drugi projekt z wykorzystaniem płytki. Do tej pory korzystałem z gotowych kodów gdzie modyfikowałem je na własne potrzeby i potrzeby projektu ( silniki servo). Tym razem mierzę się ze sterowaniem silnikiem DC i kontrolą go za pomocą pilota IR. Korzystam z silnika DC sterownika ULN2003, Odbiornika IR VS1838B oraz Arduino Nano. po spięciu wszystkiego użyłem kodu 
Kod:
#include <IRremote.h>

int RECV_PIN = 6;

IRrecv irrecv(RECV_PIN);

decode_results  results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); 
}

void loop() {
  if (irrecv.decode(&results))  {
  
    Serial.println(results.value, HEX);
    irrecv.resume();
  }
}
I tu ok do tego momentu jakby wszystko gra. Następnie odpaliłem monitor portu szeregowego żeby zczytać kody z przycisków pilota... Kody faktycznie się wyświetlają ale... Pilot od dvd - każde naciśnięcie tego samego przycisku generuje inny kod w monitorze... drugi pilot od po radia samochodowego (podobny do pilotów od sterowania ledami) - każdy przycisk wyrzuca ten sam kod przycisku... No lekko zbaraniałem... O ile przy pilotach od radia i ledów sytuacja jest taka sama i tu może być coś nie tak z pilotami o tyle pilot DVD i ten sam przycisk daje różne kody - co jest nielogiczne...
Wywalałem również z kodu wartość "HEX" żeby nie wyświetlał wartości szesnastkowo - nic to nie zmienia. 

Może ktoś coś podpowiedzieć co robię nie tak ?


RE: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - oscarX - 21-03-2024

(21-03-2024, 08:27)dRoooopED napisał(a): Witajcie.

Pilot od dvd - każde naciśnięcie tego samego przycisku generuje inny kod w monitorze... drugi pilot od po radia samochodowego (podobny do pilotów od sterowania ledami) - każdy przycisk wyrzuca ten sam kod przycisku... No lekko zbaraniałem... O ile przy pilotach od radia i ledów sytuacja jest taka sama i tu może być coś nie tak z pilotami o tyle pilot DVD i ten sam przycisk daje różne kody - co jest nielogiczne...
Wywalałem również z kodu wartość "HEX" żeby nie wyświetlał wartości szesnastkowo - nic to nie zmienia. 

Może ktoś coś podpowiedzieć co robię nie tak ?

Piloty mogą w kodzie zaszywać licznik - by rozróżnić kolejne naciśnięcia klawisza od powtarzania jednego klawisza.
Wtedy część jest stałym kodem a część się zmienia.
Możesz wrzucić taką serie kodów (najlepiej w HEX).


RE: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - dRoooopED - 21-03-2024

(21-03-2024, 14:33)oscarX napisał(a):
(21-03-2024, 08:27)dRoooopED napisał(a): Witajcie.

Pilot od dvd - każde naciśnięcie tego samego przycisku generuje inny kod w monitorze... drugi pilot od po radia samochodowego (podobny do pilotów od sterowania ledami) - każdy przycisk wyrzuca ten sam kod przycisku... No lekko zbaraniałem... O ile przy pilotach od radia i ledów sytuacja jest taka sama i tu może być coś nie tak z pilotami o tyle pilot DVD i ten sam przycisk daje różne kody - co jest nielogiczne...
Wywalałem również z kodu wartość "HEX" żeby nie wyświetlał wartości szesnastkowo - nic to nie zmienia. 

Może ktoś coś podpowiedzieć co robię nie tak ?

Piloty mogą w kodzie zaszywać licznik - by rozróżnić kolejne naciśnięcia klawisza od powtarzania jednego klawisza.
Wtedy część jest stałym kodem a część się zmienia.
Możesz wrzucić taką serie kodów (najlepiej w HEX).
Ok jak tylko będę w domu (pewnie wieczorem/w nocy będę walczył dalej). A co z samym kodem? Powinno być ok? Może ewentualnie ogarnąć pilot np od radia/tunera domowego? I to sprawdzić... Tak czy siak postaram się coś podesłać jak najszybciej.


RE: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - kaczakat - 21-03-2024

Biblioteki mają możliwość dekodowania różnych protokołów IR, np. popularne NEC, RC5, LG, Samsung. Jak nie wiesz jaki to protokół to wgrywasz ogólny kod z rozpoznawaniem protokołu, patrzysz co wypluwa, potem w ostatecznej wersji informujesz w szkicu, jak ma rozumieć przylatujący kod, czyli definiujesz protokół, to wtedy powinien już działać OK.
Popularne chińskie moduły pilota z diodą IR mają raczej wszystkie NEC, jak potrzebujesz wiele pilotów do jednego odbiornika to lepiej zainwestować 20 zł i kupić sobie parę takich samych (na Ali wychodzi 20pln za 5 z wysyłką).
Ten od radia to pewnie też NEC.


RE: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - dRoooopED - 22-03-2024

Oto kilka kodów w HEX z jednego klawisza pilota DVD:
D8CCF55
906E0E7C
1B8A85E5
7D9CBC71
2DDCDFD
C452A71D
9292A051


RE: IR odczyt kodów z pilota i sterowanie silnikiem DC- problem - dRoooopED - 22-03-2024

Dobra chyba już mam. Daje wartości takie same przy każdym kliknięciu i inne dla wszystkich klawiszy.
Kod:
#include<IRremote.h>

IRrecv IR (2);



void setup() {
IR.enableIRIn();
Serial.begin(9600);
}

void loop() {
if(IR.decode()){
  Serial.println(IR.decodedIRData.decodedRawData,DEC);
  delay(1000);
  IR.resume();
}
}