arduino自助饮料机程序,一共三个按键,分别对应三种饮料,按下按键之后,需要用手去触发红外感应开关,这个时候全彩led灯会亮起来,然后出饮料,手离开则停止出饮料。

代码:

#define button_delay 5            //单按钮消除抖动延时
#define button_every_delay 50      //多按钮操作间隔//io高低点吧状态标志位,0代表低电平,1代表高电平
bool io_flag[3]={0,0,0};//按钮变化标志位,0代表无变化,1代表有变化
bool button_flag[3]={0,0,0};int i;long time_last=0;void anjian_jiance(){for(i=2;i<=4;i++){if(digitalRead(i)==HIGH){delay(button_delay);if(digitalRead(i)==HIGH){if(io_flag[i-2]==0){io_flag[i-2]=1;delay(button_every_delay);}}}if(digitalRead(i)==LOW){delay(button_delay);if(digitalRead(i)==LOW){if(io_flag[i-2]==1){io_flag[i-2]=0;//print_s();      //按钮松开,打印消息delay(button_every_delay);}}}}
}bool hongwai_jiance(){if(digitalRead(11)==true){delay(button_delay);if(digitalRead(11)==true)return true;elsereturn false;}elsereturn false;
}
//5 6 9接红绿蓝
//全彩二极管呼吸灯
void led_light(){Serial.println("Led lighting!");
for(int i=0;i<=255;i++)
{analogWrite(5,255);analogWrite(6,map(i,0,255,204,0));analogWrite(9,map(i,0,255,226,0));delay(4);
}
for(int i=0;i<=255;i++)
{analogWrite(5,map(i,0,255,255,175));analogWrite(6,map(i,0,255,0,18));analogWrite(9,map(i,0,255,0,88));delay(4);
}
Serial.println("Led lighted!");}void bengshui(){Serial.println("Out watering");while(hongwai_jiance()){if(io_flag[0]){digitalWrite(7,HIGH);}if(io_flag[1]){digitalWrite(8,HIGH);}if(io_flag[2]){digitalWrite(10,HIGH);}delay(50);}Serial.println("Out watered!");digitalWrite(7,LOW);digitalWrite(8,LOW);digitalWrite(10,LOW);
}void setup() {// put your setup code here, to run once:Serial.begin(9600);//2到4为3个按钮for(i=2;i<=4;i++)pinMode(i,INPUT);//5 6 9为三个控制全彩led的引脚,7,8,10为控制3个水泵的引脚for(i=5;i<=10;i++){pinMode(i,OUTPUT);digitalWrite(i,LOW);}
//11号口为检测红外感应引脚pinMode(11,INPUT);Serial.println("Init succ");
}void loop() {// put your main code here, to run repeatedly:anjian_jiance();if(io_flag[0]||io_flag[1]||io_flag[2]){Serial.print("key 1 :");Serial.print(io_flag[0]);Serial.print("*********key 2 :");Serial.print(io_flag[1]);Serial.print("*********key 3 :");Serial.println(io_flag[2]);time_last=millis();while(!hongwai_jiance()){if((millis()-time_last)>5000){Serial.println("5 seconed tiem out!");return;}}led_light();bengshui();}elsereturn;}

Arduino自助饮料机程序相关推荐

  1. A3A1自助申请PHP版搭建,微软全局子号-微软全局订阅A3桌面版office账号自助申请程序下载php版-西西软件下载...

    微软全局订阅A3桌面版office账号自助申请程序,一个微软全局子号自助开通程序源码,用cloudflare的workers实现自助创建微软全局子号.本次带来微软全局订阅A3桌面版自助申请程序源码资源 ...

  2. 用arduino mega2560通过isp给 arduino uno烧录程序

    用arduino mega2560通过isp给 arduino uno烧录程序 一直想通过最基本的方式来烧录arduino程序,没有bootloader,不使用arduino IDE,基于avr-li ...

  3. CH55X 基于Arduino框架开发程序上传相关注意事项

    CH55X 基于Arduino框架开发程序上传相关注意事项

  4. STM32F401RCT6基于Arduino框架点灯程序

    STM32F401RCT6基于Arduino框架点灯程序

  5. arduino四轮小车程序前篇

    arduino四轮小车程序前篇 前言 利用arduino控制四轮小车我感觉很方便,其中一个原因是arduino公开程序代码较多,二是看stm32编程直接把我劝退了,利用ros也可以,但我感觉有点杀鸡用 ...

  6. PHP授权检测卡密功能自助功能程序源码

    源码下载:PHP授权检测卡密功能自助功能程序源码-小程序文档类资源-CSDN下载 PHP授权检测卡密功能自助功能程序源码 一款PHP授权检测卡密功能自助功能程序源码,喜欢就下载吧. 后台地址: htt ...

  7. 扫码自助饮料机真的能够完善市场吗?点赋科技预测

    扫码自助饮料机似乎已经成为如今饮料市场的一种趋势,但在实际应用中还存在着一些问题.为了让扫码自助饮料机更好地完善市场,需要相关厂商进一步解决以下痛点问题.点赋科技来为大家讲解. 首先是技术问题.目前市 ...

  8. 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序

    简 介: 测试了利用USBtinyISP对于Arduino UNO,也就是ATmega系列的单片机下载Bootloader的过程.通过测试可以看到,利用USBtinyISP可以更快的下载ATmega系 ...

  9. 【arduino】arduino ISP下载程序方法,用arduino uno给M5 Module DC MOTOR下载程序

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天用arduino uno给M5的Module DC motor下载程序,别的就不多 ...

最新文章

  1. R语言嵌套方差分析(Nested ANOVA)实战
  2. node.js php模板,node.js中EJS 模板的使用教程
  3. 云计算中的Big Iron重新成为时尚
  4. 详解Session分布式共享(.NET CORE版)
  5. vue 子页面调用父页面的参数_Flutter子组件调用父组件方法修改父组件参数
  6. 日志异常处理-spring aop注解
  7. python比赛2020_2020LPL春季赛3月15日比赛数据的数据分析(Python)
  8. [笔记]MacOs BootCamp装Win10双系统 经历
  9. 游戏推广中CPA,CPT和CPS是什么意思?
  10. IOS 检测摇一摇动作的实现方式
  11. 谷歌、百度、搜狗、有道搜索个人之比较
  12. 源码角度了解Skywalking之Skywalking是如何进行JVM监控的
  13. c语言 函数调用顺序,C++函数定义和调用过程(超详细)
  14. 天宫初级认证答案_跨境电商人才初级认证试题以及答案
  15. python利用try_except打印错误信息,并继续执行
  16. 怎么知道本台计算机的用户名和密码,访问其它电脑时“开始-运行-\输入要连接的电脑的IP,用户名和密码输入什么?...
  17. 我们问了人工智能ChatGPT十个运维问题,结果发现...
  18. 【单片机毕业设计】【mcuclub-jj-031】基于单片机的水杯的设计
  19. mac程序进程无法退出,强制退出后有重启了,怎么彻底解决?
  20. QT中C++程序和QML的集成

热门文章

  1. RocketMQ实战2
  2. 判断当前时间为本月的第几周,本周的第几天
  3. vue:移动端使用ckplayer
  4. pygame研究之利用sprite的UI架构实现
  5. python excel筛选统计_懂点EXCEL就行!教你利用Python做数据筛选(上)
  6. youwuku和koudaitong以及weimeng差异
  7. scrapy-redis分布式爬虫爬取美女图片
  8. java holder详解_connection holder is null 异常详解
  9. android 活动生命,Android 活动生命周期
  10. 阿里云国际版免费试用:如何注册以及注意事项