33* Copyright (c) 2022 by M5Stack
44* Equipped with M5Core sample source code
55* 配套 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
6+ * Visit for more information: https://docs.m5stack.com/en/module/4relay
7+ * 获取更多资料请访问: https://docs.m5stack.com/zh_CN/module/4relay
98*
109* describe: Module 4Relay.
11- * date: 2022/04/07
10+ * date: 2022/04/07
1211*******************************************************************************
1312*/
1413
14+ #include < M5GFX.h>
1515#include < M5Stack.h>
16+
1617#include " MODULE_4RELAY.h"
17- #include < M5GFX.h>
1818
1919M5GFX display;
2020M5Canvas canvas (&display);
2121
2222MODULE_4RELAY RELAY;
2323
2424void 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 );
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 );
3030
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 );
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+ }
3839 }
39- }
40- canvas.pushSprite (0 ,0 );
40+ canvas.pushSprite (0 , 0 );
4141}
4242
43-
4443void setup () {
4544 M5.begin (); // Init M5Stack. 初始化M5Stack
4645 // sensor.begin(&Wire, 0x57, 21, 22, 200000L);
@@ -52,80 +51,79 @@ void setup() {
5251 canvas.setTextDatum (MC_DATUM);
5352 canvas.createSprite (display.width (), display.height ());
5453 canvas.setPaletteColor (1 , ORANGE);
55- canvas.pushSprite (0 ,0 );
54+ canvas.pushSprite (0 , 0 );
5655}
5756
5857uint8_t mode = 0 ;
5958
60- bool delayBtn (unsigned long start){
61- while (1 ) {
59+ bool delayBtn (unsigned long start) {
60+ while (1 ) {
6261 M5.update ();
63- if (M5.BtnA .wasPressed ()){
62+ if (M5.BtnA .wasPressed ()) {
6463 mode = 0 ;
6564 return true ;
6665 }
67- if (M5.BtnB .wasPressed ()){
66+ if (M5.BtnB .wasPressed ()) {
6867 mode = 1 ;
6968 return true ;
7069 }
71- if (M5.BtnC .wasPressed ()){
70+ if (M5.BtnC .wasPressed ()) {
7271 mode = 2 ;
7372 return true ;
7473 }
75- if ((millis () - start) > 500 ){
74+ if ((millis () - start) > 500 ) {
7675 return false ;
7776 }
7877 }
7978}
8079
8180void 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 );
81+ switch (mode) {
82+ case 0 :
83+ RELAY.setAllRelay (true );
10384 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 ())){
85+ if (delayBtn (millis ())) {
86+ RELAY.setAllRelay (false );
11887 break ;
11988 };
120- }
121- for (uint8_t i = 0 ; i < 4 ; i++) {
122- RELAY.setRelay (i, false );
89+ RELAY.setAllRelay (false );
12390 drwaRect ();
124- if (delayBtn (millis ())){
91+ if (delayBtn (millis ())) {
92+ RELAY.setAllRelay (false );
12593 break ;
12694 };
127- }
128- break ;
95+ break ;
96+ case 1 :
97+ for (uint8_t i = 0 ; i < 4 ; i++) {
98+ while (!delayBtn (millis ()))
99+ ;
100+ if (mode != 1 ) break ;
101+ RELAY.setRelay (i, true );
102+ drwaRect ();
103+ }
104+ for (uint8_t i = 0 ; i < 4 ; i++) {
105+ while (!delayBtn (millis ()))
106+ ;
107+ if (mode != 1 ) break ;
108+ RELAY.setRelay (i, false );
109+ drwaRect ();
110+ }
111+ break ;
112+ case 2 :
113+ for (uint8_t i = 0 ; i < 4 ; i++) {
114+ RELAY.setRelay (i, true );
115+ drwaRect ();
116+ if (delayBtn (millis ())) {
117+ break ;
118+ };
119+ }
120+ for (uint8_t i = 0 ; i < 4 ; i++) {
121+ RELAY.setRelay (i, false );
122+ drwaRect ();
123+ if (delayBtn (millis ())) {
124+ break ;
125+ };
126+ }
127+ break ;
129128 }
130129}
131-
0 commit comments