22
22
#define ARDUINO_MKRIoTCarrier_h
23
23
24
24
#include < Arduino.h>
25
- #include < Wire .h>
25
+ #include < MKRIoTCarrierDefines .h>
26
26
27
- #include < Arduino_PMIC.h> // PMIC
28
-
29
- // Sensor libraries
30
- #include < Arduino_APDS9960.h> // Ambient light
31
- #include < Arduino_LPS22HB.h> // Pressure sensor
32
- #include < Arduino_LSM6DS3.h> // IMU
33
- #include < Arduino_HTS221.h> // env sensor
34
-
35
- #include < Arduino_MKRIoTCarrier_Relay.h> // Relays
36
- #include < Arduino_MKRIoTCarrier_Buzzer.h> // Buzzer
37
- #include < Arduino_MKRIoTCarrier_Qtouch.h> // Buttons
38
- #include < SD.h> // SD card
39
-
40
- // Display
41
- #include < Adafruit_GFX.h> // Core graphics library
42
- #include < Adafruit_ST7735.h> // Hardware-specific library for ST7735
43
- #include < Adafruit_ST7789.h> // Hardware-specific library for ST7789
44
- #include < SPI.h>
27
+ #include < IMUClass.h> // IMU
28
+ #include < PressureClass.h> // IMU
29
+ #include < EnvClass.h> // IMU
45
30
46
31
// RGB LEDs
47
32
#include < Adafruit_DotStar.h>
50
35
#define CLOCKPIN 4
51
36
52
37
// Taken from the carrier schematics
53
- #define RELAY_1 14
54
- #define RELAY_2 13
38
+
55
39
#define BUZZER 7
56
40
57
- #define GROVE_AN1 A5
58
- #define GROVE_AN2 A6
59
41
60
42
#define SD_CS 0
61
43
62
- #define Y0 A0
63
- #define Y1 A1
64
- #define Y2 A2
65
- #define Y3 A3
66
- #define Y4 A4
67
-
68
44
#define INT 6 // Every sensor interrupt pin , PULL-UP
69
45
70
46
#define LED_CKI 4
71
47
#define LED_SDI 5
72
48
73
- #define TFT_CS 2
74
49
#define TFT_RST -1 // Or set to -1 and connect to Arduino RESET pin
75
- #define TFT_DC 1
76
50
#define TFT_BACKLIGHT 3
77
51
78
52
// Touch pads values for using the case or just directly on the board
@@ -88,43 +62,54 @@ enum {
88
62
RIGHT = 0
89
63
};
90
64
65
+ typedef enum {
66
+ RELAY_1 = 1 ,
67
+ RELAY_2
68
+ } Relay_t;
69
+
91
70
class MKRIoTCarrier {
92
71
public:
93
72
MKRIoTCarrier ();
94
73
int begin ();
74
+ static int getBoardRevision ();
95
75
96
76
// Case
97
77
void withCase () { CARRIER_CASE = true ; };
98
78
void noCase () { CARRIER_CASE = false ; };
99
79
100
80
// Sensors
101
81
APDS9960& Light = APDS;
102
- LPS22HBClass& Pressure = BARO ;
103
- LSM6DS3Class& IMUmodule = IMU ;
104
- HTS221Class& Env = HTS ;
82
+ PressureClass Pressure{MKRIoTCarrier::getBoardRevision} ;
83
+ IMUClass IMUmodule{MKRIoTCarrier::getBoardRevision} ;
84
+ EnvClass Env{MKRIoTCarrier::getBoardRevision} ;
105
85
106
86
// Misc
107
87
// Relays
108
- MKRIoTCarrier_Relay Relay1 = MKRIoTCarrier_Relay( RELAY_1) ; // Relay 1 , pin 14
109
- MKRIoTCarrier_Relay Relay2 = MKRIoTCarrier_Relay( RELAY_2) ; // Relay 2 , pin 13
88
+ MKRIoTCarrier_Relay Relay1 = MKRIoTCarrier_Relay{ RELAY_1,MKRIoTCarrier::getBoardRevision} ;
89
+ MKRIoTCarrier_Relay Relay2 = MKRIoTCarrier_Relay{ RELAY_2,MKRIoTCarrier::getBoardRevision} ;
110
90
111
91
// Buzzer
112
92
MKRIoTCarrier_Buzzer Buzzer = MKRIoTCarrier_Buzzer(BUZZER); // Buzzer, pin 6
113
93
114
94
// Buttons
115
- MKRIoTCarrierQtouch Buttons = MKRIoTCarrierQtouch() ;
95
+ MKRIoTCarrierQtouch Buttons{MKRIoTCarrier::getBoardRevision} ;
116
96
117
97
118
- MKRIoTCarrierQtouch Button0 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH0);
119
- MKRIoTCarrierQtouch Button1 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH1);
120
- MKRIoTCarrierQtouch Button2 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH2);
121
- MKRIoTCarrierQtouch Button3 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH3);
122
- MKRIoTCarrierQtouch Button4 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH4);
98
+ MKRIoTCarrierQtouch Button0 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH0,MKRIoTCarrier::getBoardRevision );
99
+ MKRIoTCarrierQtouch Button1 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH1,MKRIoTCarrier::getBoardRevision );
100
+ MKRIoTCarrierQtouch Button2 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH2,MKRIoTCarrier::getBoardRevision );
101
+ MKRIoTCarrierQtouch Button3 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH3,MKRIoTCarrier::getBoardRevision );
102
+ MKRIoTCarrierQtouch Button4 __attribute__ ((deprecated)) = MKRIoTCarrierQtouch(TOUCH4,MKRIoTCarrier::getBoardRevision );
123
103
124
104
// Display
125
- Adafruit_ST7789 display = Adafruit_ST7789(TFT_CS, TFT_DC , -1 );
105
+ Adafruit_ST7789 display = Adafruit_ST7789(- 1 , - 1 , -1 );
126
106
127
107
// RGB LEDs
128
108
Adafruit_DotStar leds = Adafruit_DotStar(NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BGR);
109
+ private:
110
+ static int _revision;
111
+ int _relay1_pin;
112
+ int _relay2_pin;
129
113
};
114
+
130
115
#endif
0 commit comments