我写了这段代码,如果输入为HIGH就发送短信,你可以在其中看到,但问题是我有4个输入和延迟()s是致命的,如果我需要在一个单独的东西做一个非常错误时间(我用4个输入).
所以我需要在void loop(),Send_SMS()和initia()中用millis()或其他东西来改变delay().
有人可以帮助我,并提前谢谢你.
const int DI = 2;
const int DT = 3;
const int DGP1 = 4;
const int DGP2 = 5;
int value1_old = 0;
int value2_old = 0;
int value3_old = 0;
int value4_old = 0;
unsigned long previousMillis = 0;
unsigned long interval=100;
#include<SoftwareSerial.h>
SoftwareSerial SIM900 (7, 8);
void setup() {
pinMode(DI, INPUT);
pinMode(DT, INPUT);
pinMode(DGP1, INPUT);
pinMode(DGP2, INPUT);
SIM900.begin(19200);
SIM900power();
delay(20000);
}
void SIM900power(){
digitalWrite(9 ,HIGH);
delay(1000);
digitalWrite(9 ,LOW);
delay(5000);
}
void initia(){
SIM900.print("AT+CMGF=1\r"); …Run Code Online (Sandbox Code Playgroud)