Skip to content

Commit 16db1b0

Browse files
committed
add 4RELAY MODULE exampmle
1 parent 44dd870 commit 16db1b0

File tree

2 files changed

+132
-1
lines changed

2 files changed

+132
-1
lines changed

examples/Modules/4RELAY/4RELAY.ino

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
/*
2+
*******************************************************************************
3+
* Copyright (c) 2022 by M5Stack
4+
* Equipped with M5Core sample source code
5+
* 配套 M5Core 示例源代码
6+
* Visit the website for more
7+
*information:https://docs.m5stack.com/en/module/4relay
8+
* 获取更多资料请访问:https://docs.m5stack.com/zh_CN/module/4relay
9+
*
10+
* describe: Module 4Relay.
11+
* date:2022/04/07
12+
*******************************************************************************
13+
*/
14+
15+
#include <M5Stack.h>
16+
#include "MODULE_4RELAY.h"
17+
#include <M5GFX.h>
18+
19+
M5GFX display;
20+
M5Canvas canvas(&display);
21+
22+
MODULE_4RELAY RELAY;
23+
24+
void drwaRect() {
25+
canvas.fillSprite(0);
26+
canvas.drawString("Module 4Relay", 160, 20);
27+
canvas.drawString("A REVERSE", 220, 80);
28+
canvas.drawString("B STEP", 220, 120);
29+
canvas.drawString("C RUNING", 220, 160);
30+
31+
uint8_t state = RELAY.getAllRelayState();
32+
Serial.println(state);
33+
for(uint8_t i=0; i<4; i++){
34+
if(((state>>i) & 0x01) == 1){
35+
canvas.fillRect(20, 50 + 50*i, 100, 20);
36+
}else{
37+
canvas.drawRect(20, 50 + 50*i, 100, 20);
38+
}
39+
}
40+
canvas.pushSprite(0,0);
41+
}
42+
43+
44+
void setup() {
45+
M5.begin(); // Init M5Stack. 初始化M5Stack
46+
// sensor.begin(&Wire, 0x57, 21, 22, 200000L);
47+
RELAY.begin(&Wire, MODULE_4RELAY_ADDR, 21, 22, 200000L);
48+
display.begin();
49+
canvas.setColorDepth(1);
50+
canvas.setFont(&fonts::Orbitron_Light_24);
51+
canvas.setTextSize(1);
52+
canvas.setTextDatum(MC_DATUM);
53+
canvas.createSprite(display.width(), display.height());
54+
canvas.setPaletteColor(1, ORANGE);
55+
canvas.pushSprite(0,0);
56+
}
57+
58+
uint8_t mode = 0;
59+
60+
bool delayBtn(unsigned long start){
61+
while(1) {
62+
M5.update();
63+
if(M5.BtnA.wasPressed()){
64+
mode = 0;
65+
return true;
66+
}
67+
if(M5.BtnB.wasPressed()){
68+
mode = 1;
69+
return true;
70+
}
71+
if(M5.BtnC.wasPressed()){
72+
mode = 2;
73+
return true;
74+
}
75+
if((millis() - start) > 500){
76+
return false;
77+
}
78+
}
79+
}
80+
81+
void loop() {
82+
switch (mode)
83+
{
84+
case 0:
85+
RELAY.setAllRelay(true);
86+
drwaRect();
87+
if(delayBtn(millis())){
88+
RELAY.setAllRelay(false);
89+
break;
90+
};
91+
RELAY.setAllRelay(false);
92+
drwaRect();
93+
if(delayBtn(millis())){
94+
RELAY.setAllRelay(false);
95+
break;
96+
};
97+
break;
98+
case 1:
99+
for (uint8_t i = 0; i < 4; i++) {
100+
while(!delayBtn(millis()));
101+
if(mode != 1) break;
102+
RELAY.setRelay(i, true);
103+
drwaRect();
104+
105+
}
106+
for (uint8_t i = 0; i < 4; i++) {
107+
while(!delayBtn(millis()));
108+
if(mode != 1) break;
109+
RELAY.setRelay(i, false);
110+
drwaRect();
111+
}
112+
break;
113+
case 2:
114+
for (uint8_t i = 0; i < 4; i++) {
115+
RELAY.setRelay(i, true);
116+
drwaRect();
117+
if(delayBtn(millis())){
118+
break;
119+
};
120+
}
121+
for (uint8_t i = 0; i < 4; i++) {
122+
RELAY.setRelay(i, false);
123+
drwaRect();
124+
if(delayBtn(millis())){
125+
break;
126+
};
127+
}
128+
break;
129+
}
130+
}
131+

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ category=Device Control
88
url=https://github.com/m5stack/m5stack
99
architectures=esp32
1010
includes=M5Stack.h
11-
depends=M5GFX,ESP32CAN,UNIT_ENV,UNIT_4RELAY,ADXL345,FastLED,MODULE_GRBL13.2,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,M5_BM8563,M5_ADS1100,M5_ADS1115,M5_FPC1020A,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,M5GFX,ArduinoJson,M5_EzData,PubSubClient,UNIT_SONIC,PoE_CAM,M5_RoverC,UNIT_UHF_RFID,M5_JoyC,M5_BH1750FVI,ATOM_DTU_CAT1,TinyGSM,UNIT_PoESP32
11+
depends=M5GFX,ESP32CAN,UNIT_ENV,UNIT_4RELAY,ADXL345,FastLED,MODULE_GRBL13.2,Adafruit MCP4725,Adafruit TCS34725,Adafruit NeoPixel,MAX30100lib,MFRC522_I2C,M5_BM8563,M5_ADS1100,M5_ADS1115,M5_FPC1020A,HX711 Arduino Library,PCA9554,TinyGPSPlus-ESP32,Adafruit SGP30 Sensor,FFT,TFTTerminal,ClosedCube TCA9548A,M5GFX,ArduinoJson,M5_EzData,PubSubClient,UNIT_SONIC,PoE_CAM,M5_RoverC,UNIT_UHF_RFID,M5_JoyC,M5_BH1750FVI,ATOM_DTU_CAT1,TinyGSM,UNIT_PoESP32,MODULE_4RELAY
1212

0 commit comments

Comments
 (0)