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

標題: 【零知ESP8266教程】快速入門7-制作一個搶答器 [打印本頁]

作者: roc2    時間: 2019-10-12 10:26
標題: 【零知ESP8266教程】快速入門7-制作一個搶答器

根據我之前的分享,我們已經學會使用按鍵控制LED燈的亮與暗,這次我們運用學到的知識,把它投射到現實生活中!相信你們都看過綜藝節目,節目中的搶答器就是運用這一點實現的。那么今天,我們一起建立一個搶答器運作的model。

設計功能如下:當主持人按下開始按鍵后,三個人搶答開始,看誰先按下按鍵,最先按下按鍵的人相應的LED燈亮,主持人就可以根據燈的狀態選擇誰先回答問題。

一、工具原料
電腦,windows系統
零知ESP8266開發板
micro-usb線
LED燈紅色、綠色、黃色各一個
按鍵4個
220Ω 電阻3個
10kΩ 電阻4個
面包板一個+若干跳線

二、硬件連接





三、方法步驟
1、打開零知實驗室軟件開發工具,然后新建項目,輸入以下代碼:

  1. /**
  2. *    文件: LED-qiangda.ino
  3. *    作者: 零知
  4. *    時間: 2019/05/29 16:22
  5. *    說明: 當主持人按下開始按鍵后,三個人搶答開始,看誰先按下按鍵,
  6. *                  最先按下按鍵的人相應的LED燈亮,主持人就可以根據燈的狀態選擇誰先回答問題。
  7. **/
  8.    
  9. int LED_Y =        D1;//三個顏色LED引腳連接
  10. int LED_G =        D2;
  11. int LED_R =        D4;
  12.    
  13. int KEY_START = D0;        //開始按鍵
  14. int KEY_Y        = D5;        //控制黃色按鍵
  15. int KEY_G        = D6;
  16. int KEY_R        = D7;
  17.    
  18. int red = 0;    //讀取按鍵的值
  19. int green = 0;
  20. int yellow = 0;
  21.    
  22. void clear_led();
  23. void RED_YES();
  24. void YELLOW_YES();
  25. void GREEN_YES();
  26.    
  27. // the setup routine runs once when you press reset:
  28. void setup() {
  29.     // put your setup code here, to run once:
  30.         pinMode(LED_Y, OUTPUT);
  31.         pinMode(LED_G, OUTPUT);
  32.         pinMode(LED_R, OUTPUT);
  33.            
  34.         //初始狀態都關閉
  35.         digitalWrite(LED_R, HIGH);
  36.         digitalWrite(LED_G, HIGH);
  37.         digitalWrite(LED_Y, HIGH);
  38.            
  39.         pinMode(KEY_Y, INPUT);
  40.         pinMode(KEY_G, INPUT);
  41.         pinMode(KEY_R, INPUT);
  42.         pinMode(KEY_START, INPUT);
  43.     Serial.begin(9600);
  44. }
  45.    
  46. // the loop routine runs over and over again forever:
  47. void loop() {
  48.     // put your main code here, to run repeatedly:
  49.    
  50.         red=digitalRead(KEY_R);
  51.         yellow=digitalRead(KEY_Y);
  52.         green=digitalRead(KEY_G);
  53.             Serial.println(red); //保留兩位小數
  54. //       delay(500);
  55.         if(red==HIGH)
  56.                 RED_YES();   
  57.         if(yellow==HIGH)
  58.                 YELLOW_YES();
  59.         if(green==HIGH)
  60.                 GREEN_YES();
  61. }
  62.    
  63. void RED_YES()//一直執行紅燈亮,直到復位鍵按下,結束循環
  64. {
  65.   while(digitalRead(KEY_START)==0)
  66.   {
  67.       
  68.   
  69.                 digitalWrite(LED_R,LOW);
  70.                 digitalWrite(LED_G,HIGH);
  71.                 digitalWrite(LED_Y,HIGH);
  72.       delay(200);
  73.   }
  74.   clear_led();
  75. }
  76. void YELLOW_YES()//一直執行黃燈亮,直到復位鍵按下,結束循環
  77. {
  78.   while(digitalRead(KEY_START)==0)
  79.   {
  80.   digitalWrite(LED_R,HIGH);
  81.   digitalWrite(LED_G,HIGH);
  82.   digitalWrite(LED_Y,LOW);
  83.       delay(200);
  84.   }
  85.   clear_led();
  86. }
  87. void GREEN_YES()//一直執行綠燈亮,直到復位鍵按下,結束循環
  88. {
  89.   while(digitalRead(KEY_START)==0)
  90.   {
  91.   digitalWrite(LED_R,HIGH);
  92.   digitalWrite(LED_G,LOW);
  93.   digitalWrite(LED_Y,HIGH);
  94.       delay(200);
  95.   }
  96.   clear_led();
  97. }
  98. void clear_led()//清除LED
  99. {
  100.   digitalWrite(LED_R,HIGH);
  101.   digitalWrite(LED_G,HIGH);
  102.   digitalWrite(LED_Y,HIGH);
  103.       
  104. }
復制代碼

2、按照之前的方式先【驗證】,然后【上傳】到開發板中。


四、成果展示
上面步驟成功完成后,我們就可以看到預期的結果了,如下:



主持人,請出題吧!







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1