#include "DPir.h"
#define IRpin 2
DPir dpir(IRpin,10000); // 10000 us je minimalni razmak između dva IR koda
#define STR A3
#define DATA A2
#define CLK A4
void setup() {
digitalWrite(CLK,LOW);
digitalWrite(DATA,LOW);
digitalWrite(STR,LOW);
pinMode(STR,OUTPUT);
pinMode(DATA,OUTPUT);
pinMode(CLK,OUTPUT);
}
// EDC.BAFG
byte segTable[10] = {0b11101110, 0b00101000, 0b11001101, 0b00000000, 0b00000000,
0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000};
void shiftOUT(byte n)
{
byte bitmask=0x80;
while(bitmask)
{
if(bitmask & n) digitalWrite(DATA,LOW);
else digitalWrite(DATA,HIGH);
digitalWrite(CLK,HIGH);
digitalWrite(CLK,LOW);
bitmask>>=1;
}
digitalWrite(STR,HIGH);
digitalWrite(STR,LOW);
}
void display_print(int n)
{
shiftOUT(segTable[n]);
}
void loop() {
if(dpir.available()!=0)
{
uint16_t codeLength=dpir.available(); // pamtimo duljinu jer nakon dpir.getCode se sve inicijalizira
uint32_t mycode = dpir.getCode(); // kopira kod u mycode 32 bitnu varijablu
if(mycode==0x81510151) display_print(0);
if(mycode==0x80440044) display_print(1);
if(mycode==0x81100110) display_print(2);
}
}