• 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
Sterowanie programu z pilota IR
#1
Witam, zabrałem się za takie cudo:

https://learn.adafruit.com/pov-dotstar-d...troduction

Wszystko działa poprawnie, kod nie wyrzuca błędów. Domyślnie program napisany jest pod pilot dostępny na rynku Adafruit, chciałem zastosować inny pilot IR i napotkałem pewien problem.

Za pomocą prostego programu odczytałem kody z posiadanych w domu pilotów, uzyskane kody w formatach "FFFFF" i temu podobnych przypisałem do programu w liniach 79 do 89, podmieniłem domyślne zapisane w programie na kody odczytane z pilota. Układ nie reaguje na przypisane kody. Nie posiadam pilota wskazanego przez programistów z Adafruit jednak na wszystkich testowanych pilotach zadziałał mi tylko jeden przycisk (jeden odczytany kod)

Czy ktoś mógłby mi pomóc w zaadoptowaniu dowolnego domowego pilota do tego konkretnego programu?

Jeśli dział jest niewłaściwy proszę o przeniesienie go we właściwe miejsce.

Piloty odczytałem w ten sposób:

http://majsterkowo.pl/jak-sterowac-dowol...i-arduino/

Dioda odbiorcza na pewno jest sprawna ponieważ dzięki niej odczytałem piloty. Układ polutowany w sposób prawidłowy, płytka sprawna, tylko coś w kodzie nie bangla, tylko co (???) Proszę o pomoc bardziej doświadczonych kolegów

Poniżej mój fragment kodu:

#define IR_PIN     3      // MUST be INT1 pin!

// Adafruit IR Remote Codes:
//   Button       Code         Button  Code
//   -----------  ------       ------  -----
//   VOL-:        0x0000       0/10+:  0x000C
//   Play/Pause:  0x0001       1:      0x0010
//   VOL+:        0x0002       2:      0x0011
//   SETUP:       0x0004       3:      0x0012
//   STOP/MODE:   0x0006       4:      0x0014
//   UP:          0x0005       5:      0x0015
//   DOWN:        0x000D       6:      0x0016
//   LEFT:        0x0008       7:      0x0018
//   RIGHT:       0x000A       8:      0x0019
//   ENTER/SAVE:  0x0009       9:      0x001A
//   Back:        0x000E

#define BTN_BRIGHT_UP    0xF700FF
#define BTN_BRIGHT_DOWN  0xF7807F
#define BTN_RESTART      0xF740BF
#define BTN_BATTERY      0xF7C03F
#define BTN_FASTER       0xF7E01F
#define BTN_SLOWER       0xF7D02F
#define BTN_OFF          0xF7F00F
#define BTN_PATTERN_PREV 0xC9C3741
#define BTN_PATTERN_NEXT 0xD0529225
#define BTN_NONE         0xF7C837
#define BTN_AUTOPLAY     0xF7E817


// -------------------------------------------------------------------------
 
Odpowiedź
#2
Wnioskując, wgrywając ten program: 
Kod:
#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();
     }
}

Otrzymujesz z różnych pilotów same FFFFF? Powinny być typu: 0xA32AB931.
Z tego co pamiętam takie kody otrzymywałem jak przycisk na pilocie był cały czas wciśnięty, jak klikałem raz to kod był normalny.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości