欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1486|回復: 1
打印 上一主題 下一主題
收起左側

Arduino開關鍵控鎖程序,自動門

[復制鏈接]
跳轉到指定樓層
樓主
ID:644246 發表于 2019-11-18 16:00 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <Servo.h>
  2. #include <Wire.h>
  3. #include <LiquidCrystal_I2C.h>
  4. #include<Stepper.h>

  5. LiquidCrystal_I2C lcd(0x27,16,2);  //配置LCD地址及行列
  6. Servo myservo;        //創建一個舵機控制對象

  7. int led1=3;         //定義LED1引腳
  8. int led2=4;         //定義LED2引腳
  9. int buzzer=5;         //定義蜂鳴器引腳
  10. int button=6;         //定義按鍵引腳
  11. int length;           //定義一個變量用來表示共有多少個音符
  12. int steps=512;
  13. Stepper myStepper(steps, 8, 9, 10, 11);

  14. int song[] =
  15. {
  16.   /*  歌曲頻率*/
  17. 589, 495, 441, 495,  
  18.   -1, 589, 495, 441, 589,
  19. 495,  -1, 495, 495, 495, 441, 495, -1, 495,
  20. 589, 495, 441, 589, 495,  -1,
  21. };

  22. float duration[]=
  23. {  
  24.   /*  持續的時間 單位 ms */
  25.    1,    1, 0.5, 0.5,
  26.    1,  0.5, 0.5, 0.5, 0.5,
  27.    1,  0.5, 0.5, 0.5,   1, 0.5, 1, 0.5, 0.5,
  28.    0.5,0.5, 0.5, 0.5,   1,   1,
  29. };

  30. void setup()
  31. {  
  32.   {            
  33.   pinMode(led1,OUTPUT);     //3號數字口設置為輸出狀態
  34.   pinMode(led2,OUTPUT);     //4號數字口設置為輸出狀態
  35.   }
  36.   pinMode(buzzer,OUTPUT);
  37.   length = sizeof(song) / sizeof(song[0]);  //這里用了一個sizeof函數,查出數組里有多少個音符
  38.   for (int x = 0; x < length; x++)          //循環音符的次數
  39.    {
  40.      tone(buzzer, song[x]);     //依次播放tune數組元素,即每個音符
  41.      delay(400 * duration[x]);  //每個音符持續的時間,即節拍duration,400是調整時間的越大,曲子速度越慢,越小曲子速度越快
  42.      noTone(buzzer);            //停止當前音符,進入下一音符
  43.    }
  44.    {
  45.   Serial.begin(9600);
  46.   myservo.attach(2);         //綁定對象至D7
  47.   }
  48.   {
  49.     // 設置轉速,單位r/min
  50.     myStepper.setSpeed(20);

  51.     // 初始化串口
  52.     Serial.begin(9600);
  53.   }
  54. }

  55. void duoji1()
  56. {
  57.    myservo.write(150);                 //寫入角度
  58.    Serial.println(myservo.read());     //打印舵機角度
  59. }

  60. void duoji2()
  61. {
  62.    myservo.write(0);                 //寫入角度
  63.    Serial.println(myservo.read());     //打印舵機角度
  64. }

  65. void duoji3()
  66. {
  67.    myservo.write(10);                 //寫入角度
  68.    Serial.println(myservo.read());    //打印舵機角度
  69. }
  70. void clockwise()
  71. {
  72.   // 順時針一次旋轉
  73.     Serial.println();
  74.     myStepper.step(520);
  75.     delay(1000);
  76. }
  77. void clockwises()
  78. {
  79.   // 順時針一次旋轉
  80.     Serial.println();
  81.     myStepper.step(-520);
  82.     delay(1000);
  83. }

  84. void xianshi1()
  85. {  
  86.    lcd.init();                 //初始化LCD
  87.    lcd.backlight();            //打開背光
  88.    lcd.setCursor(3,0);         //設置顯示位置
  89.    lcd.print("Welcome to ");   //顯示字符數據
  90.    lcd.setCursor(5,1);         //設置顯示位置
  91.    lcd.print("Home !");        //顯示字符數據
  92.   }
  93. void xianshi2()
  94. {
  95.    lcd.init();              //初始化LCD
  96.    lcd.backlight();         //打開背光
  97.    lcd.setCursor(4,0);      //設置顯示位置
  98.    lcd.print("Good Bye");   //顯示字符數據
  99.    lcd.setCursor(4,1);      //設置顯示位置
  100.    lcd.print("*Locked*");   //顯示字符數據
  101. }
  102. void loop()
  103. {
  104.     jiance();
  105. }

  106. void jiance()

  107. {
  108.   int buttonState = digitalRead(button); // 檢測按鍵
  109.   delay(1000);
  110.   int n =digitalRead(button);            //創建一個變量n,按鍵狀態采集出來賦值給他。
  111.   if (n==HIGH)           //判斷n是否為高電平,如果是執行下面的語句,不是則跳過。
  112.   {
  113.      
  114.      digitalWrite(led2,LOW);           //LED2滅
  115.      digitalWrite(led1,HIGH);          //LED1亮
  116.      xianshi1();               //運行xianshi
  117.      delay(1000);
  118.      duoji1();              //運行xianshi
  119.      setup();   
  120.      delay(1000);
  121.      clockwise();                //運行xianshi
  122.      delay(11000);


  123.      
  124.      digitalWrite(led1,LOW);          //LED1滅
  125.      digitalWrite(led2,HIGH);          //LED2亮
  126.      xianshi2();               //運行xianshi2
  127.       setup();   
  128.      clockwises();
  129.      delay(1000);
  130.      duoji2();              //運行xianshi
  131.      delay(1000);
  132.      duoji3();              //運行duoji3
  133.    }
  134. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2019-11-20 14:55 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表