Infrared4Arduino 1.2.3
Loading...
Searching...
No Matches
IrSenderPwm.h
Go to the documentation of this file.
1/*
2Copyright (C) 2015 Bengt Martensson.
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation; either version 2 of the License, or (at
7your option) any later version.
8
9This program is distributed in the hope that it will be useful, but
10WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12General Public License for more details.
13
14You should have received a copy of the GNU General Public License along with
15this program. If not, see http://www.gnu.org/licenses/.
16*/
17
18#pragma once
19
20#include <Arduino.h>
21#include "IrSender.h"
22#include "Board.h"
23
29class IrSenderPwm : public IrSender {
30private:
31 static constexpr unsigned int defaultDutyCycle = 50U;
32 static IrSenderPwm *instance;
33
34protected:
35 IrSenderPwm(pin_t sendPin);
36 virtual ~IrSenderPwm() {}
37
38public:
39 static unsigned int getDutyCycle() { return defaultDutyCycle; };
40
45 static IrSenderPwm *getInstance(bool create = false, pin_t outputPin = Board::getInstance()->defaultPwmPin());
46
51 static IrSenderPwm *newInstance(pin_t outputPin);
52
53 static void deleteInstance();
54};
uint8_t pin_t
Type for GPIO pin, compatible with Arduino libs.
Definition: InfraredTypes.h:41
static Board * getInstance()
Definition: Board.h:53
Sending function using timer PWM.
Definition: IrSenderPwm.h:29
static void deleteInstance()
Definition: IrSenderPwm.cpp:49
static IrSenderPwm * getInstance(bool create=false, pin_t outputPin=Board::getInstance() ->defaultPwmPin())
Returns a pointer to the instance, or nullptr if not initialized.
Definition: IrSenderPwm.cpp:43
static unsigned int getDutyCycle()
Definition: IrSenderPwm.h:39
static IrSenderPwm * newInstance(pin_t outputPin)
Creates a new instance (if not existing) and returns it.
Definition: IrSenderPwm.cpp:31
virtual ~IrSenderPwm()
Definition: IrSenderPwm.h:36
Abstract base class for all sending classes.
Definition: IrSender.h:27