ikarmus2001 / Autonomic-Monopoly

arduinko projekcik planszówkowy
1 stars 0 forks source link

Infrared remote driver #3

Closed Seba0855 closed 2 years ago

Seba0855 commented 2 years ago

Przetestowana i działająca klasa InfraRed obsługująca czujnik podczerwieni i dekodująca sygnały z pilota.

Tutaj przykład pracy z klasą:

#include <LiquidCrystal_I2C.h>
#include "InfraRed.h"

LiquidCrystal_I2C lcd(0x27,20,4);
int cursor = 0;

InfraRed IR(2);

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  IR.begin();
  lcd.init();  
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Podaj liczbe");
}

void loop() {
  // put your main code here, to run repeatedly:
  wyswietl();
}

// Funkcja wyświetlająca na ekranie przycisk wybrany z pilota
void wyswietl() {
  char znak;
  if (IR.available()) {        // Jeśli dostępne są dane do odbioru z czujnika podczerwieni
    znak = IR.decode();   // Zdekoduj sygnał otrzymany z pilota
    if (znak != '?') {          // Sprawdź, czy zdekodowany sygnał jest sygnałem jaki nas interesuje
      if (znak == '-') {       // Tryb usuwania znaków
          Serial.println("-");
          cursor -= 1;
          lcd.setCursor(cursor, 1);
          lcd.print(" ");
      } else {  // Tryb dodawania znaków na ekran
        Serial.println(znak);
        lcd.setCursor(cursor,1);
        lcd.print(znak);
        cursor += 1;
      }
    }
    IR.resume();    // Po zakończonej pracy z czujnikiem, wznów jego działanie by mógł dalej nasłuchiwać
  }

}
Seba0855 commented 2 years ago

https://stackoverflow.com/questions/48160456/alternative-to-using-a-switch-statement-c

kodzik działa ale w sumie można by to zrobić ładniej, poeksperymentuje na dniach z tym co wyżej dałem