查看: 268|回復: 0
打印 上一主題 下一主題

【零知ESP8266教程】快速入門13 - 1位數碼管顯示

[復制鏈接]
  • TA的每日心情
    開心
    2019-11-15 10:19
  • 簽到天數: 36 天

    [LV.5]常住居民I

    跳轉到指定樓層
    樓主
    發表于 2019-10-25 16:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
    本帖最后由 零知實驗室-roc 于 2019-10-25 16:08 編輯

    本次分享,我們在基礎上逐漸要開始加大難度,因為新電子元素的加入,我們的項目會出現各種各樣的控制該元器件的代碼,因為這個案例接線調試對于入門的小白來說比較復雜,所以我在這里做一次詳細的接線解釋以及原理解釋,對代碼調試做一些詳細解釋。

    本次試驗的新元素——1位數碼管
    一、工具原料
    電腦,windows系統
    零知ESP8266開發板
    micro-usb線
    數碼管1個(共陽)
    220Ω 電阻8個
    面包板一個+若干跳線

    二、硬件連接
    (共陽即正極接在電源,負極接在引腳,控制負極電頻高低來控制顯示)




    我在圖中標注了詳細的接法(接法不唯一,根據你的代碼來接)

    a,b,c…dp對應設置了什么,就把a,b,c…dp接到對應的引腳。

    三、方法步驟
    1、打開零知實驗室軟件開發工具,如圖所示:


    2、然后新建項目,輸入以下代碼:

    kittenblock中小學創客名師推薦的圖形化編程軟件

    /**

    *    文件: 數碼管-1位.ino      by 零知實驗室(www.lingzhilab.com) *    -- 零知開源,讓電子制作變得更簡單! -- *    時間: 2018/05/31 6:13 *    說明: 測試1位數碼管 **/     //下面為定義a~h, dp的引腳 int a = D5;//a段 int b = D6; int c = D7; int d = D4; int e = D2; int f = D1; int g = D0; int dp = D8;     int pinArray[8] = {D5,D6,D7,D4,D2,D1,D0,D8};//數組,通過下標獲取     //分別顯示0-9 void digital_show_0(void); void digital_show_1(void); void digital_show_2(void); void digital_show_3(void); void digital_show_4(void); void digital_show_5(void); void digital_show_6(void); void digital_show_7(void); void digital_show_8(void); void digital_show_9(void);     // the setup routine runs once when you press reset: void setup() {                // put your setup code here, to run once:         int i = 0;         for(i=0; i<=7; i++)         {                 pinMode( pinArray, OUTPUT);         }                                               }     // the loop routine runs over and over again forever: void loop() {     // put your main code here, to run repeatedly:                digital_show_0();                delay(1000);                digital_show_1();         delay(1000);                digital_show_2();         delay(1000);         digital_show_3();         delay(1000);         digital_show_4();         delay(1000);         digital_show_5();         delay(1000);         digital_show_6();         delay(1000);         digital_show_7();         delay(1000);         digital_show_8();         delay(1000);         digital_show_9();         delay(1000); }     void digital_show_0(void) //顯示數字0 {                digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e,LOW);         digitalWrite(f,LOW);         digitalWrite(g,HIGH);         digitalWrite(dp,HIGH); }     void digital_show_1(void) //顯示數字1 {         digitalWrite(a,HIGH);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,HIGH);         digitalWrite(e,HIGH);         digitalWrite(f,HIGH);         digitalWrite(g,HIGH);         digitalWrite(dp,HIGH); }     void digital_show_2(void) //顯示數字2 {                 digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,HIGH);         digitalWrite(d,LOW);         digitalWrite(e,LOW);         digitalWrite(f,HIGH);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); }     void digital_show_3(void) //顯示數字3 {                 digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e,HIGH);         digitalWrite(f,HIGH);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); }     void digital_show_4(void) //顯示數字4 {         digitalWrite(c,LOW);         digitalWrite(b,LOW);         digitalWrite(f,LOW);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH);         digitalWrite(a,HIGH);         digitalWrite(e,HIGH);         digitalWrite(d,HIGH); } void digital_show_5(void) //顯示數字5 {         digitalWrite(a,LOW);         digitalWrite(b, HIGH);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e, HIGH);         digitalWrite(f,LOW);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); } void digital_show_6(void) //顯示數字6 {                 digitalWrite(a,LOW);         digitalWrite(b,HIGH);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e,LOW);         digitalWrite(f,LOW);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); } void digital_show_7(void) //顯示數字7 {                 digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,HIGH);         digitalWrite(e,HIGH);         digitalWrite(f,HIGH);         digitalWrite(g,HIGH);         digitalWrite(dp,HIGH); } void digital_show_8(void) //顯示數字8 {                 digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e,LOW);         digitalWrite(f,LOW);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); } void digital_show_9(void) //顯示數字9 {         digitalWrite(a,LOW);         digitalWrite(b,LOW);         digitalWrite(c,LOW);         digitalWrite(d,LOW);         digitalWrite(e, HIGH);         digitalWrite(f,LOW);         digitalWrite(g,LOW);         digitalWrite(dp,HIGH); }


    2、按照之前的方式先【驗證】,然后【上傳】到開發板中。
    四、成果展示
    上面步驟成功完成后,我們就可以看到預期的結果了,如下:
    效果視頻:點我傳送

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

    本版積分規則

    熱門推薦

    Wemos D1解析blinker氣象數據制作中文臺歷
    Wemos D1解析blinker氣象
    blinker氣象數據能夠非常方便的獲得各地氣象數據從Serial中打印出來,我用Wemos D1,
    LD3320怎么才能編譯成功?
    LD3320怎么才能編譯成功?
    一開始從http://www.waveshare.net/study/article-11-1.html下了VoiceLED-V2文件,然
    怎么在Arduino 1.0.6版本下載ESP8266?
    怎么在Arduino 1.0.6版本
    因為某種需要,只有Ardunio1.0.6版本可以用,它的首選項是下面這樣的,工具開發板下面
    【分享】UNO直接測量電容容量
    【分享】UNO直接測量電容
    查找 Arduino 庫的時候,偶然間看到了 Capacitor 這么個庫,可直接用 UNO 測試電容,1
    【原創】嘗試手工焊接16U2版本UNO
    【原創】嘗試手工焊接16U2
    之前發過一個帖子,焊接了 CH340 版本的 UNO,運行良好。 然而對于原版的設計方案(16
    Copyright   ©2015-2016  Arduino中文社區  Powered by©Discuz!   
    快速回復 返回頂部 返回列表
    排三试机号今天查询