2222#define ARDUINO_MKRIoTCarrier_h
2323
2424#include < Arduino.h>
25- #include < Wire .h>
25+ #include < MKRIoTCarrierDefines .h>
2626
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
4530
4631// RGB LEDs
4732#include < Adafruit_DotStar.h>
5035#define CLOCKPIN 4
5136
5237// Taken from the carrier schematics
53- #define RELAY_1 14
54- #define RELAY_2 13
38+
5539#define BUZZER 7
5640
57- #define GROVE_AN1 A5
58- #define GROVE_AN2 A6
5941
6042#define SD_CS 0
6143
62- #define Y0 A0
63- #define Y1 A1
64- #define Y2 A2
65- #define Y3 A3
66- #define Y4 A4
67-
6844#define INT 6 // Every sensor interrupt pin , PULL-UP
6945
7046#define LED_CKI 4
7147#define LED_SDI 5
7248
73- #define TFT_CS 2
7449#define TFT_RST -1 // Or set to -1 and connect to Arduino RESET pin
75- #define TFT_DC 1
7650#define TFT_BACKLIGHT 3
7751
7852// Touch pads values for using the case or just directly on the board
@@ -88,43 +62,54 @@ enum {
8862 RIGHT = 0
8963};
9064
65+ typedef enum {
66+ RELAY_1 = 1 ,
67+ RELAY_2
68+ } Relay_t;
69+
9170class MKRIoTCarrier {
9271 public:
9372 MKRIoTCarrier ();
9473 int begin ();
74+ static int getBoardRevision ();
9575
9676 // Case
9777 void withCase () { CARRIER_CASE = true ; };
9878 void noCase () { CARRIER_CASE = false ; };
9979
10080 // Sensors
10181 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} ;
10585
10686 // Misc
10787 // 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} ;
11090
11191 // Buzzer
11292 MKRIoTCarrier_Buzzer Buzzer = MKRIoTCarrier_Buzzer(BUZZER); // Buzzer, pin 6
11393
11494 // Buttons
115- MKRIoTCarrierQtouch Buttons = MKRIoTCarrierQtouch() ;
95+ MKRIoTCarrierQtouch Buttons{MKRIoTCarrier::getBoardRevision} ;
11696
11797
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 );
123103
124104 // Display
125- Adafruit_ST7789 display = Adafruit_ST7789(TFT_CS, TFT_DC , -1 );
105+ Adafruit_ST7789 display = Adafruit_ST7789(- 1 , - 1 , -1 );
126106
127107 // RGB LEDs
128108 Adafruit_DotStar leds = Adafruit_DotStar(NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BGR);
109+ private:
110+ static int _revision;
111+ int _relay1_pin;
112+ int _relay2_pin;
129113};
114+
130115#endif
0 commit comments