Operácie

Dekodér infračerveného ovládača: Rozdiel medzi revíziami

Zo stránky SensorWiki

StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
StudentMIPS (diskusia | príspevky)
Bez shrnutí editace
Riadok 45: Riadok 45:
<tabs>
<tabs>
<tab name="Program na identifikaciju kodov tlacidiel"><source lang="c++" style="background: LightYellow;">
<tab name="Program na identifikaciju kodov tlacidiel"><source lang="c++" style="background: LightYellow;">
// importování knihovny
#include <IRremote.h>
#include <IRremote.h>


// definování pinu přijímače
// definovanie pinu prijimaca
int const IRpin = 2;
int const IRpin = 2;
IRrecv irrecv(IRpin);
IRrecv irrecv(IRpin);
// uložení signálu do proměné "results"
// ulozenie signalu
decode_results results;
decode_results results;


void setup()
void setup()
{
{
   // zapnutí komunikace
   // zapnutie komunikacie
   Serial.begin(9600);
   Serial.begin(9600);
   // start přijímače
    
   irrecv.enableIRIn();  
   irrecv.enableIRIn();  
}
}
Riadok 64: Riadok 63:
void loop()  
void loop()  
{
{
   // pokud obdržíš signál, tak jeho hodnotu vypiš v DEC soustavě (desítková)
   // pokial dostanem signal tak jeho hodnotu vypisujem v dec sustave
   if (irrecv.decode(&results))  
   if (irrecv.decode(&results))  
     {
     {
       Serial.println(results.value, DEC);  
       Serial.println(results.value, DEC);  
       // obdrž další hodnotu
        
       irrecv.resume();  
       irrecv.resume();  
       // počkej 1s
        
       delay(1000);
       delay(1000);
     }
     }

Verzia z 09:03, 7. jún 2023

Záverečný projekt predmetu MIPS / LS2023 - Ivan Jagoš


Zadanie

Infračervené ovládanie - k danému ovládaču identifikovat kódy jednotlivých tlačidiel a demonštrovat správnu funkciu. V tomto zadaní bolo povolené využitie knižnice <Infrared.h>

Riadenie Bezdrôtový infračervený ovládač s prijímačom
Vývojová doska Arduino UNO.

Literatúra:


Analýza a opis riešenia

Najprv som zapojil zariadenie podľa schemi zapojenia.

Súbor:NEVIEM TOTO.png
Schéma zapojenia .

Importujeme knižnicu IRremote, ktorá nám umožní komunikovať s infrasenzorom a čítať signály. Definujeme pin pre infrasenzor a vytvoríme objekt pre prijímanie signálov. V metóde setup() inicializujeme sériovú komunikáciu a povolíme prijímanie signálov z infrasenzora. V metóde loop() kontrolujeme, či sme obdržali signál zo senzora. Ak sme obdržali signál, znamená to, že sme stlačili tlačidlo. Zapneme LED diódu tým, že nastavíme výstupný pin na HIGH. Dióda zostane zapnutá, kým tlačidlo držíme stlačené. Keď pustíme tlačidlo, metóda loop() sa opäť vykoná a zistí, že sme uvoľnili tlačidlo. Vypneme LED diódu tým, že nastavíme výstupný pin na LOW. Program sa opakuje od kroku 4, čakajúc na ďalší stlačený signál.

Schéma zapojenia LCD displeja.


Algoritmus a program

Algoritmus programu je....


#include <IRremote.h>

// definovanie pinu prijimaca
int const IRpin = 2;
IRrecv irrecv(IRpin);
// ulozenie signalu
decode_results results;

void setup()
{
  // zapnutie komunikacie
  Serial.begin(9600);
  
  irrecv.enableIRIn(); 
}

void loop() 
{
  // pokial dostanem signal tak jeho hodnotu vypisujem v dec sustave
  if (irrecv.decode(&results)) 
    {
      Serial.println(results.value, DEC); 
      
      irrecv.resume(); 
      
      delay(1000);
    }
}
#include <IRremote.h>

int ledPin = 3;
bool ledState = false;
bool buttonPressed = false;

void interruptFunction()
{
  buttonPressed = true;
}

void setup()
{
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  
  attachInterrupt(digitalPinToInterrupt(2), interruptFunction, FALLING);
}

void loop()
{
  if (buttonPressed)
  {
    if (ledState)
    {
      digitalWrite(ledPin, LOW);
      ledState = false;
    }
    else
    {
      digitalWrite(ledPin, HIGH);
      ledState = true;
    }
    
    // Reset buttonPressed flag
    buttonPressed = false;
  }
}

Pridajte sem aj zbalený kompletný projekt, napríklad takto (použite jednoznačné pomenovanie, nemôžeme mať na serveri 10x zdrojaky.zip:

Zdrojový kód: zdrojaky.zip


Overenie

Na používanie našej aplikácie stačia dve tlačítka a postup používania je opísaný v sekcii popis riešenia. Na konci uvádzame fotku záverečnej obrazovky pred resetom. Vypísaný je tu priemerný čas a najlepší čas.

Aplikácia.

Video:

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.