• 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)
#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ź
  


Wiadomości w tym wątku
RE: Odbiornik IR RE3265R1000 (którym chciałbym zastąpić Arduinem) - przez Robson Kerman - 10-05-2018, 22:35

Skocz do:


Przeglądający: 1 gości