查看: 552|回复: 1

[未解决] arduino 多级菜单人机交互控制继电器

[复制链接]
  • TA的每日心情
    开心
    2019-11-23 21:26
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2019-12-7 22:34 | 显示全部楼层 |阅读模式
    #include <Arduino.h>
    #include <U8g2lib.h>
    #ifdef U8X8_HAVE_HW_SPI
    #include <SPI.h>
    #endif
    #ifdef U8X8_HAVE_HW_I2C
    #include <Wire.h>
    #endif
    #define STEPPIN 3
    #define DIRPIN 4
    U8G2_SSD1306_128X64_NONAME_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8);
    int flag=0,i=0,j=0;
    int gg=0;
    int kk;
    String str[4]={"sequence control","clean","dry","sterilise"};
    unsigned long currentMillis = millis();
    unsigned long previousMillis = 0;
    void setup() {
      pinMode(6,INPUT_PULLUP);
      pinMode(7,INPUT_PULLUP);
      pinMode(2,OUTPUT);//喷雾
      pinMode(3,OUTPUT);//步进电机
      pinMode(4,OUTPUT);
      pinMode(5,OUTPUT);//xiaodu
      pinMode(10,OUTPUT);//风机
      pinMode(12,OUTPUT);///加热
      Serial.begin(9600);
      u8g2.begin();  
      u8g2.clear();
    }

    void loop() {
    unsigned long currentMillis = millis();
    if(digitalRead(6)==0)
    {
            delay(30);
        if(digitalRead(6)==0)
        {
          i++;
        }
      }
      if(digitalRead(7)==0)
      {
        delay(30);
        if(digitalRead(7)==0)
        {
          flag=!flag;  
      }
      }
      if(i==4){
        i=0;
      }
    if(flag==0){
        j=0;
        u8g2.firstPage();
        do{
          u8g2.setFont(u8g2_font_ncenB14_tr);
          int uu=0;
          int ii=i;      
          while(uu<3){
            u8g2.setCursor(18,(uu+1)*18);
            u8g2.print(ii);
            u8g2.print("  ");
            u8g2.print(str[ii]);
            u8g2.setCursor(0,15);
            u8g2.print("->");
            uu++;
            ii++;
            if(ii==4)ii=0;
           int gg=ii;
          }
         }while(u8g2.nextPage());
        }  
      else if(flag==1){
            u8g2.firstPage();
        do{
           u8g2.setFont(u8g2_font_ncenB14_tr);
           u8g2.setCursor(18,18);
           u8g2.print("running");
           u8g2.setCursor(18,36);
           u8g2.print("please wait");  
       }while(u8g2.nextPage());
            int kk=gg;
            if(kk==4)  kk=0;
       switch(kk){
          case 0:
          sbbhs();
          case 1:
          spray();
          if(currentMillis - previousMillis >= 6000)
          {
            bujinblow();
            if(currentMillis - previousMillis >=12000)
            {
              heatblow();
            }
          }
          case 2:
          heatblow();
            case 3:
            sterilise();
      }
      }
    }
    void spray()
    {
        digitalWrite(2,HIGH);
    }
    void bujinblow()
    {
          digitalWrite(10, HIGH);
          digitalWrite(DIRPIN, LOW);
          for (int x = 0; x < 400; x ++)
      {
        digitalWrite(STEPPIN, HIGH);
        delayMicroseconds(500);
        digitalWrite(STEPPIN, LOW);
        delayMicroseconds(500);
      }
      digitalWrite(DIRPIN, HIGH);
          for (int x = 0; x < 400; x ++)
      {
        digitalWrite(STEPPIN, HIGH);
        delayMicroseconds(500);
        digitalWrite(STEPPIN, LOW);
        delayMicroseconds(500);
      }
    }
    void heatblow()
    {
      digitalWrite(12,HIGH);
      digitalWrite(10,HIGH);
    }
    void sterilise()
    {
    digitalWrite(5,HIGH);
    }
    void sbbhs()
    {
      digitalWrite(2,HIGH);
      if(currentMillis - previousMillis >= 6000)
      {digitalWrite(2,LOW);
        bujinblow();
        {
          if(currentMillis - previousMillis >= 12000)
          {
            heatblow();
            if(currentMillis - previousMillis >=24000 )
            {
              sterilise();
            }
          }
        }
      }
    }


    2.PNG
    捕获.PNG
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    Arduino串口事件
    Arduino串口事件
    向各位大佬求助,学习了serialEvent(),按照书上的程序,我是直接使用的示例中的serial
    ps2遥控小车——uno实现
    ps2遥控小车——uno实现
    前几天在阁楼发现了好久以前3d打印,激光切割的底盘,于是决定做这个东西 正好手上又
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    最近几天通过连不上设备
    最近几天通过连不上设备
    最近几天不是在同一个网络下无法连接到设备,既不是连线也不是离线,但连接到同一网
    【Arduino】108种传感器模块系列实验(46)---电阻应变片传...
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表