Infrared4Arduino
IrReceiver.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Arduino.h>
4 #include "InfraredTypes.h"
5 #include "IrReader.h"
6 #include "IrSignal.h"
7 
11 class IrReceiver : public IrReader {
12 private:
14  pin_t pin;
15 
16 public:
17  // Default values
18  static const pin_t defaultPin = 5;
19  static const microseconds_t defaultMarkExcess = 50U;
20 
22  static const bool invertingSensor = true;
23 
32  IrReceiver(size_t bufSize, pin_t pin, bool pullup = false,
34 
35  virtual ~IrReceiver() {
36  };
37 
38  virtual frequency_t getFrequency() const {
40  };
41 
42  virtual void receive();
43 
44  pin_t getPin() const {
45  return pin;
46  }
47 
51  enum irdata_t {
54  };
55 
56  // Needs to be public since used in ISP. Therefore hide it from Doxygen
58  irdata_t readIr() {
59  return ((digitalRead(getPin()) == HIGH) ^ invertingSensor) ? IR_MARK : IR_SPACE;
60  }
62 };
off-period, also called gap
Definition: IrReceiver.h:53
virtual ~IrReceiver()
Definition: IrReceiver.h:35
pin_t getPin() const
Definition: IrReceiver.h:44
static const frequency_t defaultFrequency
Definition: IrSignal.h:12
uint16_t microseconds_t
Type for durations in micro seconds.
Definition: InfraredTypes.h:15
static const microseconds_t defaultMarkExcess
Definition: IrReceiver.h:19
uint32_t frequency_t
Type for modulation frequency in Hz.
Definition: InfraredTypes.h:32
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
Definition: InfraredTypes.h:37
virtual frequency_t getFrequency() const
Returns frequency of received signal.
Definition: IrReceiver.h:38
virtual void receive()
Convenience function: enable, wait until data is collected or timeout has occured,...
Definition: IrReceiver.cpp:9
irdata_t
Enum for the duration types.
Definition: IrReceiver.h:51
Abstract base class for demodulating IR receivers.
Definition: IrReceiver.h:11
Abstract base class for all IR readers, capturing or receiving.
Definition: IrReader.h:30
on-period, also called flash
Definition: IrReceiver.h:52
static const pin_t defaultPin
Definition: IrReceiver.h:18
static const bool invertingSensor
Are we using inverting sensor, like most TSOPs?
Definition: IrReceiver.h:22
IrReceiver(size_t bufSize, pin_t pin, bool pullup=false, microseconds_t markExcess=defaultMarkExcess)
Constructor.
Definition: IrReceiver.cpp:3
This file defines some general data types that are used in the library.
int16_t markExcess
Microseconds subtracted from pulses and added to gaps.
Definition: IrReader.h:44