• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Odbiornik IR RE3265R1000 (którym chciałbym zastąpić Arduinem)
#11
(22-03-2018, 15:44)Robson Kerman napisał(a): Możesz użyć.
Jaki problem masz z bibliotekami? --> https://github.com/z3t0/Arduino-IRremote
A tu masz artykuł dla początkujących, łącznie z kodem do Arduino odczytującym sygnał z pilota.
https://learn.sparkfun.com/tutorials/ir-communication

Myślałem, że musi być odbiornik dedykowany... ok, sprawdzę.
 
Odpowiedź
#12
(22-03-2018, 15:44)Robson Kerman napisał(a): Możesz użyć.
Jaki problem masz z bibliotekami? --> https://github.com/z3t0/Arduino-IRremote
A tu masz artykuł dla początkujących, łącznie z kodem do Arduino odczytującym sygnał z pilota.
https://learn.sparkfun.com/tutorials/ir-communication

No i wielkie dzięki Smile
 
Odpowiedź
#13
(22-03-2018, 15:44)Robson Kerman napisał(a): Możesz użyć.
Jaki problem masz z bibliotekami? --> https://github.com/z3t0/Arduino-IRremote
A tu masz artykuł dla początkujących, łącznie z kodem do Arduino odczytującym sygnał z pilota.
https://learn.sparkfun.com/tutorials/ir-communication

Po wielu próbach i wymuszonej zwłoce, awaria sprzętu, wyjazd, teraz mnie pogoniło i w końcu odczytałem kody pilota, dzięki artykułowi: 
https://majsterkowo.pl/jak-sterowac-dowo...i-arduino/
i teraz mam pytanie czy czy i jak to podać dalej, tzn. do mojego TV, jako liczbę hex, czy jakiś impuls? jak to napisać w kodzie?

Jak to mi się uda, problem będzie rozwiązany... Smile

Może wystarczy "pobudzić" po prostu za pomoca: digitalWrite(Pin, Status); w tym status HIGH lub LOW... ?
to wtedy po co ja kody odczytywałem Smile

Nie... trzeba przekazać do tv ten kod, tylko w jakiej postaci?
 
Odpowiedź
#14
Masz sobie sczytać kody przycisków i zapisać na przykład do jakiejś tablicy. W takiej postaci, w jakiej odebrałeś.
Tę tablicę wykorzystasz w docelowej aplikacji sterującej telewizorem. Arduino wysyła do telewizora po kabelku dane w takiej postaci, w jakiej je zapisałeś.
Podpowiedź: USART.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#15
(10-05-2018, 18:31)Robson Kerman napisał(a): Masz sobie sczytać kody przycisków i zapisać na przykład do jakiejś tablicy. W takiej postaci, w jakiej odebrałeś.
Tę tablicę wykorzystasz w docelowej aplikacji sterującej telewizorem. Arduino wysyła do telewizora po kabelku dane w takiej postaci, w jakiej je zapisałeś.
Podpowiedź: USART.

Na razie spisałem ja w hexach... Poszukam co robi biblioteka... poczytam o usart...
 
Odpowiedź
#16
Czy taka tablica jest trwała? Trzeba je zapisać w jakimś kodowaniu...
 
Odpowiedź
#17
Miałem taki kod:

Cytat:#include <IRremote.h>
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;

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

void loop() {
  if (irrecv.decode(&results)) {
     Serial.print("0x");
     Serial.println(results.value, HEX);
     delay(250);
     irrecv.resume();
     }
}



zamieniłem go na taki:

Cytat:#include <IRremote.h>
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;

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

void loop() {
  if (irrecv.decode(&results)) {
     //Serial.print("0x");
     Serial.println(results.value); //, HEX);
     delay(250);
     irrecv.resume();
     }
}


ale nie wiem, co uzyskałem, szereg cyfr, które są inne niż te z zapisu z HEX, tam jest funkcja decode... co ona dekoduje? ... szukam dalej
 
Odpowiedź
#18
Funkcja Serial.print(wartość, format), służy do wysyłania na serial wartości skonwertowanych do znaków ASCII.
To w jaki sposób będą one przedstawione zależy od specyfikatora format.
Czyli mogą być przedstawione w postaci hexadecymalnej, binarnej, dziesiętnej, i ósemkowej.

Ciebie niech nie obchodzi w jaki sposób program drukuje te zmienne na ekranie.
Zmienna zapisana jest w postaci binarnej i taka nam jest potrzebna.
Pozwoliłem sobie napisać prostą funkcję zapisującą kody klawiszy do tablicy.

Kod:
#include <IRremote.h>
#define iloscKlawiszy 4//powiedzmy, że chcesz sczytać cztery klawisze
int klawisz[iloscKlawiszy]; // to sobie zadeklaruj globalnie
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  skanuj();
}
void skanuj(){
  int x=0;
  while(1){
    if (irrecv.decode(&results)) {
    klawisz[x] = results.value;
    x++;
    delay(250);
    irrecv.resume();
  }
  if (x==iloscKlawiszy) {
  
  Serial.println("#include <avr/pgmspace.h>");
  Serial.println("");
  Serial.print("const int klawisz[");
  Serial.print(iloscKlawiszy);
  Serial.println("] PROGMEM = {");
  for(int i = 0; i<iloscKlawiszy; i++){
    Serial.print("0b");
    Serial.print(klawisz[i],BIN);
    if (i<iloscKlawiszy-1) Serial.println(",");
    else {Serial.println("};");
                        return;
                      }
                   }
              }
  }  
}

void loop() {

}


Na monitorze portu powinno pojawić się coś takiego:

Kod:
#include <avr/pgmspace.h>

const int klawisz[4] PROGMEM = {
0b111000010001111,
0b101100010100111,
0b110100010010111,
0b100000010111111};

Zaznacz to, skopiuj i zapisz do jakiegoś pliku.
To jest definicja zmiennej klawisz.
Chcąc wysłać to po kabelku do TV, wystarczy napisać:
Kod:
Serial.write(klawisz[1]);
i wyślemy pierwszą wartość klawisza do portu.
Jeśli masz problem z kodem lub sprzętem, zadaj pytanie na forum. Nie odpowiadam na PW, jeśli nie dotyczą one spraw forum lub innych tematów prywatnych.

[Obrazek: SsIndaG.jpg]
 
Odpowiedź
#19
O Matko B. dzięki wielkie !
 
Odpowiedź
#20
Kod:
Serial.write(klawisz[1]);
wysyłamy po TX ? Tzn. nie trzeba tego definiować, bo tylko tym pinem wyślemy?
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości