lib Modulove
Library for building custom scripts for Modulove modules.
Loading...
Searching...
No Matches
digital_output.h
Go to the documentation of this file.
1
11#ifndef DIGITAL_OUTPUT_H
12#define DIGITAL_OUTPUT_H
13
14#include <Arduino.h>
15
16namespace modulove {
17
19 public:
25 void Init(uint8_t cv_pin) {
26 pinMode(cv_pin, OUTPUT); // Gate/Trigger Output
27 cv_pin_ = cv_pin;
28 }
29
36 void Init(uint8_t cv_pin, uint8_t led_pin) {
37 pinMode(led_pin, OUTPUT); // LED
38 led_pin_ = led_pin;
39 #define LED_PIN_DEFINED
40 Init(cv_pin);
41 }
42
48 inline void Update(uint8_t state) {
49 if (state == HIGH) High(); // Rising
50 if (state == LOW) Low(); // Falling
51 }
52
54 inline void High() { update(HIGH); }
55
57 inline void Low() { update(LOW); }
58
65 inline bool On() { return on_; }
66
67 private:
68 uint8_t cv_pin_;
69 uint8_t led_pin_;
70 bool on_;
71
72 void update(uint8_t state) {
73 digitalWrite(cv_pin_, state);
74 #ifdef LED_PIN_DEFINED
75 digitalWrite(led_pin_, state);
76 #endif
77 on_ = state == HIGH;
78 }
79};
80
81} // namespace modulove
82
83#endif
Definition digital_output.h:18
void High()
Sets the cv output HIGH to about 5v.
Definition digital_output.h:54
bool On()
Return a bool representing the on/off state of the output.
Definition digital_output.h:65
void Init(uint8_t cv_pin, uint8_t led_pin)
Initializes an LED & CV Output paired object.
Definition digital_output.h:36
void Update(uint8_t state)
Turn the CV and LED on or off according to the input state.
Definition digital_output.h:48
void Init(uint8_t cv_pin)
Initializes an CV Output paired object.
Definition digital_output.h:25
void Low()
Sets the cv output LOW to 0v.
Definition digital_output.h:57