Skocz do zawartości

Pilot IR wysyła losowe sygnały


Pomocna odpowiedź

Napisano

Witam.

Kupiłem Pilot IR oraz Moduł odbiornika IR. Zainstalowałem bibliotekę IRremote (uwaga: z wersją 2.6.0) i odpaliłem przykładowy kod ,,IRrecvDemo".

/*
 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>

#if defined(ESP32)
int IR_RECEIVE_PIN = 15;
#else
int IR_RECEIVE_PIN = 11;
#endif
IRrecv irrecv(IR_RECEIVE_PIN);

decode_results results;

// On the Zero and others we switch explicitly to SerialUSB
#if defined(ARDUINO_ARCH_SAMD)
#define Serial SerialUSB
#endif

void setup() {
    pinMode(LED_BUILTIN, OUTPUT);

    Serial.begin(115200);
#if defined(__AVR_ATmega32U4__)
    while (!Serial)
        ; //delay for Leonardo, but this loops forever for Maple Serial
#endif
#if defined(SERIAL_USB) || defined(SERIAL_PORT_USBVIRTUAL)
    delay(2000); // To be able to connect Serial monitor after reset and before first printout
#endif
    // Just to know which program is running on my Arduino
    Serial.println(F("START " __FILE__ " from " __DATE__));

    // In case the interrupt driver crashes on setup, give a clue
    // to the user what's going on.
    Serial.println("Enabling IRin");
    irrecv.enableIRIn(); // Start the receiver

    Serial.print(F("Ready to receive IR signals at pin "));
    Serial.println(IR_RECEIVE_PIN);
}

void loop() {
    if (irrecv.decode(&results)) {
        Serial.println(results.value, HEX);
        irrecv.resume(); // Receive the next value
    }
    delay(100);
}

Podpiąłem odbiornik do Arduino UNO R3. Gdy klikam przycisk ,1' oto co otrzymuje (w serial pointer):

9716BE3F
E6CF1F5C
A3076D5E
9716BE3F
9716BE3F

Różne kody ,,HEX?" wyświetlają się jak klikam TEN SAM przycisk. To samo z innymi przyciskami się dzieje. A gdy przytrzymuje jakikolwiek przycisk to otrzymuje zawsze coś takiego:

FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF
FFFFFFFF

Bardzo proszę o pomoc! 😞 

Pozdrawiam.

W tej części forbotowego kursu budowy robotów jest wszystko fajnie wyjaśnione, kiedyś jak to robiłem to zadziałało, i chyba nawet na tym samym module jak twój.

17 minut temu, ethanak napisał:

0xffffffff oznacza po prostu powtórzenie (pilot wysyła komendę tylko raz po wciśnięciu klawisza). 

Dobra to dzięki, ale co z innymi klawiszami? Miałeś, a może ktoś miał podobną sytuację?

(edytowany)
13 minut temu, BeeKeyPro napisał:

A podesłałbyś jakiś schemat, lub napisał jak to podpiąć?

To się robi tak: wyszukujesz układ jaki siedzi na płytce bootlandu, lub pytasz tutaj albo w sklepie co to jest. Po krótkim poszukiwaniu masz że to jest VS1838 Więc wpisujemy w google vs1838 datasheet i nawet nie wchodząc w pdfy, w grafice googla masz przykładowe schematy podłączenia. 

https://www.datasheetmeta.com/pdf.php?q=VS1838B
Od siebie mogę dodać że wartości tych elementów nie są krytyczne, i zmiana 100 na 330Ω czy lekko inna wartość kondensatora nie wpłynie źle na ten układ

Edytowano przez _LM_
  • Pomogłeś! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...