主控芯片arduino 外接三个湿敏传感器 显示屏LCD1602 1000ms倒计时,倒计时内湿敏电阻触发即报警。1000ms用于打吊瓶等类似倒计时操作。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Arduino源程序如下:
- #include <SoftwareSerial.h>
- #include <LiquidCrystal.h> //申明1602液晶的函数库
- #include <MsTimer2.h> //定时器库的 头文件
- LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2); //申明1602液晶的11个引脚所连接的Arduino数字端口
- int testa = A0; //测试引脚
- int led=A4; //有水就亮
- int a=0;
- int b=0;
- int c=0;
- int vala=0;
- int lll=A5; //外接继电器IN脚
- SoftwareSerial BT(A2, A3);
- void flash() //中断处理函数
- {
- a++;
- lcd.setCursor(15,2);
- lcd.print(a%10);
- lcd.setCursor(14,2);
- lcd.print(a/10);
- if(a>=60)
- {
- a=0;
- b++;
- lcd.setCursor(12,2);
- lcd.print(b%10);
- lcd.setCursor(11,2);
- lcd.print(b/10);
- if(b>=60)
- {
- b=0;
- c++;
- lcd.setCursor(9,2);
- lcd.print(c%10);
- lcd.setCursor(8,2);
- lcd.print(c/10);
- }
- }
- }
- void setup()
- {
- pinMode(led, OUTPUT);//定义小灯接口为输出接口
- pinMode(lll, OUTPUT);
- pinMode(testa, INPUT);
- BT.begin(9600);//设置波特率为9600
- lcd.begin(16,2); //初始化1602液晶工作模式,定义1602液晶显示范围为2行16列字符
- MsTimer2::set(1000, flash); // 中断设置函数,每 1000ms 进入一次中断
- MsTimer2::start(); //开始计时
- lcd.setCursor(9,2);
- lcd.print("0:00:00");
- }
- void loop()
- {
- vala=digitalRead(testa);//读取传感器的值并赋值给val
- if(vala==1)
- {
- digitalWrite(led, HIGH); //亮
- digitalWrite(lll, HIGH); //亮
- delay(1000);
- BT.println("Help!!!!!");
- lcd.setCursor(5,0);
- lcd.print("Help!!!!!");
- }
- else {
- digitalWrite(led,LOW); //灭
- digitalWrite(lll,LOW); //灭
- delay(1000);
- lcd.setCursor(5,0);
- lcd.print("no!!!!!");
- }
- }
复制代码
全部资料51hei下载地址:
sketch_apr11a.rar
(62.09 KB, 下载次数: 38)
|