Data Gator
Hardware and software documentation for the Data Gator project.
Loading...
Searching...
No Matches
74HC40520.hpp
Go to the documentation of this file.
1
8#include <Arduino.h>
9
25public:
26 MUX_74HC40520(void){}
27
35 void setPins(int mux_inh, int mux_a, int mux_b){
36 this->mux_inh = mux_inh;
37 this->mux_a = mux_a;
38 this->mux_b = mux_b;
39
40 pinMode(mux_inh, OUTPUT);
41 digitalWrite(mux_inh, LOW);
42
43 pinMode(mux_a, OUTPUT);
44 digitalWrite(mux_a, LOW);
45
46 pinMode(mux_b, OUTPUT);
47 digitalWrite(mux_b, LOW);
48 }
49
55 void select(int channel){
56
57 if(channel >= 4 || channel < 0){
58 if(Serial && DEBUG){
59 Serial.println("ERROR: channel is invalid, use one 0-3");
60 }
61 return;
62 }
63
64 switch(channel){
65 case 0: // X0, Y0
66 digitalWrite(this->mux_inh, LOW);
67 digitalWrite(this->mux_a, LOW);
68 digitalWrite(this->mux_b, LOW);
69 break;
70 case 1: // X1, Y1
71 digitalWrite(mux_inh, LOW);
72 digitalWrite(mux_a, HIGH);
73 digitalWrite(mux_b, LOW);
74 break;
75 case 2: // X2, Y2
76 digitalWrite(mux_inh, LOW);
77 digitalWrite(mux_a, LOW);
78 digitalWrite(mux_b, HIGH);
79 break;
80 case 3: // X3, Y3
81 digitalWrite(mux_inh, LOW);
82 digitalWrite(mux_a, HIGH);
83 digitalWrite(mux_b, HIGH);
84 break;
85
86 default: // turn X and Y off
87 digitalWrite(mux_inh, HIGH);
88 if(Serial){
89 Serial.println("ERROR: invalid MUX channel chosen");
90 }
91 }
92 }
93
99 int readChannel(int pin){
100 return analogRead(pin);
101 }
102
109 void writeChannel(int pin, int value){
111 }
112
121 Y
122 };
123
124private:
125 uint8_t mux_inh, mux_a, mux_b;
126};
Defines a firmware interface for the 74HC40520 multiplexer.
Definition 74HC40520.hpp:24
int readChannel(int pin)
Reads the analog value at the channel.
Definition 74HC40520.hpp:99
void setPins(int mux_inh, int mux_a, int mux_b)
Sets the output level of the two selector pins (A&B) and the inhibitor pin and stores the pin values.
Definition 74HC40520.hpp:35
void writeChannel(int pin, int value)
Writes a channel.
Definition 74HC40520.hpp:109
void select(int channel)
Select the channels to connect to the X and Y output pins.
Definition 74HC40520.hpp:55
Mux_Channel
Defines the two MUX signal channels X and Y.
Definition 74HC40520.hpp:119
@ Y
Y channel.
Definition 74HC40520.hpp:121
@ X
X channel.
Definition 74HC40520.hpp:120
#define DEBUG
Definition config.hpp:17
int reset_count
number of resets retrieved for NVS
Definition scheduler.hpp:31