Použití jakéhokoliv dálkového ovladače

Projekt od našeho čtenáře Petra S. - Použití jakéhokoliv dálkového ovladače

Popis:

V tomto projektu bych chtěl ukázat jak můžeme použít jakýkoliv dálkový ovladač co máte v domácnosti k ovládání Arduina. Zároveň si ukážeme použití sedmi-segmentového displeje. Každý dálkový ovladač vysílá jiné kódy, takže nejprve si budeme muset zjistit jaké kódy vysílají jednotlivá tlačítka na ovladači. K tomu použijeme výstup na Serial monitor. Zapojte IR přijímač podle schématu a potom na dálkovém ovladači stiskněte některé tlačítko (třeba jedničku). Serial monitor vám vypíše kód který toto tlačítko vysílá. V případě mnou použitého ovladače je to 8C03F. V programu si budete muset upravit funkci translateIR(). Musíte zaměnit kódy na ty co vysílá váš ovladač. Všimněte si že před kódem je třeba připsat 0x. Pro správné přeložení a nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovny IRremote a SevSeg, které jsou ke stažení zde, návod jak na to je uveden zde

#include <IRremote.h>
#include <IRremoteInt.h>
#include "SevSeg.h"

SevSeg sevseg; //inicializace 7digit displ

int receiver = 10; // pin IR
IRrecv irrecv(receiver);           // create instance of 'irrecv'
decode_results results;

 void setup() 
 {
  Serial.begin(9600);
  // setup pro 7digit
  byte numDigits = 4; 
  byte digitPins[] = {10, 11, 12, 13};
  byte segmentPins[] = {2, 3, 4, 5, 6, 7, 8, 9};
 
  sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins); 
  sevseg.setBrightness(90);

 // setup pro 7digit END
 irrecv.enableIRIn(); // Start the receiver

}

void loop() {
 
    if (irrecv.decode( & results)) // prisel IR signal?
    {
        Serial.print("kod ");
        Serial.println(results.value, HEX); //vypis kodu
        int tlacitko1 = translateIR(); // prirazeni kodu k cislu
        sevseg.setNumber(tlacitko1, 0);  // zobrazeni cisla na display
        delay(500);
        irrecv.resume();
    }
    sevseg.refreshDisplay(); 
}


int  translateIR() // prevede kod na cislo
{

  int tlacitko = 0 ;
  switch(results.value)
  {
  case 0x8C03F: tlacitko = 1;    break;
  case 0x820DF: tlacitko = 2;    break;
  case 0x8A05F: tlacitko = 3;    break;
  case 0x8609F: tlacitko = 4;    break;
  case 0x8E01F: tlacitko = 5;    break;
  case 0x810EF: tlacitko = 6;    break;
  default: 
    Serial.println(" jine tlacitko   ");
  }// End Case

 
 return tlacitko;
} //konec funkce translateIR
/// konec - celý program ///

V druhé části projektu si zapojíme sedmi-segmentový displej a zobrazíme na něm číslo zmáčknuté na ovladači. Bohužel Arduino UNO nemá dostatek pinů na kompletní zapojení displeje a IR přijímače, tak ponecháme na displeji jednu číslici nezapojenou. Pro přehlednost jsem nakreslili schéma zapojení IR a displeje zvlášť.

Sedmi segmentových displejů existuje několik druhů, já jsem použil 5641AS pro který platí zapojení:

http://haneefputtur.com/7-segment-4-digit-led-display-sma420564-using-arduino.html

Poznámka od našeho čtenáře Radka:
Dle vyobrazení na schématu se jedná o součástku TFMS 5360, která podle katalogového listu je zapojena špatně. Viz obrázek níže:

Další podobné články

ROBOTICKÉ RAMENO

Stavebnice obsahuje všechny potřebné díly na sestavení robotnického ramene včetně spojovacího materiálu, pouze je nutné dokoupit čtyři kusy MIKRO SERV SG90. Dále je nutné dokoupit řídící jednotku já jsem použil domácí zásoby ARDUINO NANO a pro něho pak modul ARDUINO NANO IO SHIELD pro jednoduchost zapojení. Díly pro sestavení ramene jdou dobře tzv. vylamovat „vypadávají skoro sami. K servům pokud použijete nové tak doporučuji je před montáží odzkoušet zda jsou funkční v plném rozsahu tj. od 0° do 180°, po namontování a zjištění že servo nefunguje to pak opravdu dost zahýbá s nervy. 

Electronic TiltMaze

Cílem tohoto projektu je vytvoření jednoduchého ovládacího systému, který umožňuje naklápění dvou servomotorů pomocí analogového joysticku. Platforma řízená servomotory může simulovat pohyb například v ose X a Y — tedy naklánění doleva/doprava a dopředu/dozadu. Tento systém může sloužit jako základ pro různé aplikace:

- Manuální ovládání kamery nebo senzoru (např. na pohyblivé konstrukci nebo robotovi)
- Interaktivní ovládací panel pro školní projekty nebo herní ovladač