找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 977|回复: 0
打印 上一主题 下一主题
收起左侧

使用ardiuno检测16位旋转拨码开关方法(摇杆操作)

[复制链接]
跳转到指定楼层
楼主
ID:867340 发表于 2024-6-7 16:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用摇杆操作1602显示屏检测16位旋转拨码盘指数是否正常
  1. #include <LiquidCrystal_I2C.h>
  2. #include <Wire.h>

  3. LiquidCrystal_I2C lcd(0x3F,16,2);
  4. int type = 0 ;
  5. void setup() {
  6.   // 初始化串口通信
  7.   Serial.begin(9600);
  8.   lcd.init();
  9.   lcd.backlight();
  10.   pinMode(2,INPUT_PULLUP);
  11.   pinMode(3,INPUT_PULLUP);
  12.   pinMode(4,INPUT_PULLUP);
  13.   pinMode(5,INPUT_PULLUP);
  14.   pinMode(6,INPUT_PULLUP);
  15.   pinMode(7,OUTPUT);
  16. }



  17. void loop() {
  18.   // 读取X轴和Y轴的模拟值
  19.   int xValue = analogRead(A0);
  20.   int yValue = analogRead(A1);
  21.   bool value_in=digitalRead(2);
  22.   bool value8=digitalRead(3);
  23.   bool value2=digitalRead(4);
  24.   bool value1=digitalRead(5);
  25.   bool value4=digitalRead(6);
  26.   int level=0;
  27.   char* i[] ={"rest      1/4","6 digital 2/4","7 digital 3/4","8 digital 4/4"} ;
  28.   int t = value_in;
  29.   lcd.setCursor(0,0);                //设置显示指针
  30.   lcd.print("bomapan ceshi");

  31.   if(yValue>900)
  32.   {
  33.    type--;
  34.    if(type<0)
  35.    {
  36.     type = 0;
  37.    }
  38.    delay(100);
  39.   }
  40.   if(yValue<20)
  41.   {
  42.    type++;
  43.    if(type>3)
  44.    {
  45.     type = 3;
  46.    }
  47.    delay(100);
  48.   }
  49.   lcd.setCursor(0,1);                //设置显示指针
  50.   lcd.print(i[type]);
  51.   if(type==2 && value_in==0 && level==0 && t==0)
  52.   {
  53.     if(value1==0 && value2==0 && value4==0 && value8==1)
  54.     {
  55.       lcd.setCursor(13,1);               
  56.       lcd.print("yes");
  57.       if(value_in!=t)
  58.       {
  59.         level = 1;
  60.         t=value_in;
  61.       }
  62.     }
  63.     else
  64.     {
  65.       lcd.setCursor(13,1);                //设置显示指针
  66.       lcd.print(" no");
  67.     }
  68.    
  69.   }
  70. if(type==3 && value_in==0 && level==0 && t==0)
  71.   {
  72.     if(value1==1 && value2==1 && value4==1 && value8==0)
  73.     {
  74.       lcd.setCursor(13,1);               
  75.       lcd.print("yes");
  76.       if(value_in!=t)
  77.       {
  78.         level = 1;
  79.         t=value_in;
  80.       }
  81.     }
  82.     else
  83.     {
  84.       lcd.setCursor(13,1);                //设置显示指针
  85.       lcd.print(" no");
  86.     }
  87.    
  88.   }
  89.   if(type==1 && value_in==0 && level==0 && t==0)
  90.   {
  91.     if(value1==1 && value2==0 && value4==0 && value8==1)
  92.     {
  93.       lcd.setCursor(13,1);               
  94.       lcd.print("yes");
  95.       if(value_in!=t)
  96.       {
  97.         level = 1;
  98.         t=value_in;
  99.       }
  100.     }
  101.     else
  102.     {
  103.       lcd.setCursor(13,1);                //设置显示指针
  104.       lcd.print(" no");
  105.     }
  106.    
  107.   }
  108. if(type==0 && value_in==0)
  109.   {
  110.     t=0;
  111.     level=0;
  112.   }
  113. delay(200);
  114. }

复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表