找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 997|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

使用ardiuno檢測(cè)16位旋轉(zhuǎn)撥碼開關(guān)方法(搖桿操作)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:867340 發(fā)表于 2024-6-7 16:02 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
使用搖桿操作1602顯示屏檢測(cè)16位旋轉(zhuǎn)撥碼盤指數(shù)是否正常
  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);                //設(shè)置顯示指針
  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);                //設(shè)置顯示指針
  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);                //設(shè)置顯示指針
  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);                //設(shè)置顯示指針
  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);                //設(shè)置顯示指針
  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. }

復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表