相關商品

  • Arduino 8位靜態(tài)數(shù)碼管 掃描顯示器 SPI LED 數(shù)碼管 擴展顯示模塊
  • Arduino 魔法書 實現(xiàn)夢想的工具和技術
  • Arduino UNO R3 控制器 ATmega328P-PU+ATmega16U2 arduino 原裝進口
  • 奧松機器人 Arduino UNO R3 V5.0傳感器擴展板 電子積木 正品保障 傳感器套件專配 單片機開發(fā)
  • Arduino Due ARM控制器 Arduino原裝進口 32bit CortexM3
  • Arduino Starter Kit Arduino入門套件 意大利中國代理
  • Arduino Yun Arduino官方原裝 Arduino Yún WiFi Linux
  • Arduino無線SD擴展板 Arduino原裝進口
  • LCD2004字符液晶顯示器 2004液晶屏 Arduino力薦顯示 超越LCD1602
  • Arduino IIC LCD2004 I2C接口字符液晶顯示器 帶庫文件 電子積木
  • Arduino Ethernet w/o PoE Arduino原裝進口 arduino網(wǎng)絡擴展板
  • Arduino UNO R3 SMD 控制器 ATmega16U2 開發(fā)版 單片機 sparkfun原裝進口
  • PicoBoard互動創(chuàng)新板(單板非套件) 傳感器互動板 Scratch教學傳感板
  • PVCBOT零基礎機器人制作配書套件 小學生DIY模型科技小制作套裝
  • PVCBOT零基礎機器人制作教材  DIY機器人配書套件 科技小制作小發(fā)明
  • PVCBOT零基礎機器人制作工具包 五金焊接電子模型玩具工具箱套裝
  • ArduPilot 固定翼 飛控 多旋翼 Arduino 控制器 Sparkfun原裝進口
  • Arduino 雙路大功率直流電機驅動擴展板 VNH5019 美國Pololu原裝
  • Arduino 直流電機驅動板 MiniMoto DRV8830 IIC/I2C Sparkfun原裝
  • Arduino 機器人權威指南 愛上Arduino制作指南
  • Arduino 模擬傳感器 Slider Sensor 直滑電位計 位置 滑動傳感器
  • Arduino Intel Galileo Gen 2 伽利略開發(fā)板 官方授權
  • Arduino 條形LED模塊 10段條狀數(shù)碼管 發(fā)光模塊 梯度顯示 短光條
  • Arduino RGB LED 模塊 全彩LED燈 LED流水燈模塊 機器人配件
  • 當前位置: 首頁 > 應用教程 > 【創(chuàng)客學堂】基于Arduino與SPI總線接口的LED顯示器

    【創(chuàng)客學堂】基于Arduino與SPI總線接口的LED顯示器

    編輯:Techie2013-08-30 13531382@qq.com 瀏覽次數(shù):4463

    Arduino連接了并行設備后,還剩下什么?

        有沒有發(fā)現(xiàn)你的Arduino控制器的端口總是不夠用?一些并行數(shù)據(jù)傳輸?shù)脑O備總是會占用很多的端口,一大團亂糟糟的連接線,會讓你大傷腦筋。如果你想用普通的4位LED數(shù)碼管顯示一個時鐘,那么你需要用到8+4=12個端口!這對于Arduino UNO R3這樣的,只余12個數(shù)字端口的小板子來說,還剩下什么?
    我們當然不會那么做,因為那樣做你就像被綁在大樹上一般。有更聰明的方法,那就是讓數(shù)據(jù)串行,比較突出的代表是SPI總線串行通信方式,遵守SPI總線協(xié)議。
    SPI是Motorola公司推出的一種同步串行通訊方式,是一種四線同步總線,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線(SDO、SDI、SCLK、CS),如果你只有一個SPI設備時,那你可以只用兩根線(SDO、SCLK),節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡單易用的特性,如今越來越多的芯片集成了這種通信協(xié)議因其硬件功能很強,與SPI總線有關的軟件就相當簡單,使CPU有更多的時間處理其他事務。


    Arduino連接了SPI接口后,還會剩下很多


        下面就向大家介紹兩款國外SPI總線接口Arduino  LED顯示器,體會一下SPI的好處。(注:測試環(huán)境為:win7下Arduino IDE 1.0.5+奧松機器人Arduino UNO R3+奧松機器人Arduino sensor Shield V5.0


    Arduino UNO R3 與Arduino sensor Shield V5.0 
    圖1 Arduino UNO R3 與Arduino sensor Shield V5.0

        第一款,4位LED數(shù)碼管模塊,呵呵,別擔心 ,此管非彼管,不是普通的了,是具有SPI接口的4位LED數(shù)碼管模塊,因為現(xiàn)在只用了一個模塊,所以,它的連接線可以最簡化到除了電源線、地線以外,就只有SDO、SCLK這兩條線!是不是so easy?但它可是簡約而不簡單哦。
     

    SPI接口4位LED數(shù)碼管正面圖     SPI接口4位LED數(shù)碼管背面圖
              圖2 SPI接口4位LED數(shù)碼管正面圖                圖3 SPI接口4位LED數(shù)碼管背面圖

        它采用了一塊TM1637專用LED控制芯片,屬于開源硬件,在網(wǎng)上可以找到它的Arduino庫。模塊采用SPI 串行接口,能夠控制6位的8段LED數(shù)碼管,可以在Arduino程序中設定8級可調的輝度,方便應用于不同明暗程度的場合;與Arduino控制器的連接也很方便,畢竟才兩根線嘛,而且還可以在Arduino程序中更改端口號,真是太人性化了!


    我選擇,我喜歡


        好吧,那先來看看怎么選擇它的輝度的:
     

    Arduino 程序文件中可更改輝度相關數(shù)據(jù) 
    圖4 Arduino 程序文件中可更改輝度相關數(shù)據(jù)


     
        在Arduino程序文件中,找到tm1637.set(BRIGHT_TYPICAL);其中值就是輝度值,可以設定為0-7的任意整數(shù),0表示最暗。
    下面兩圖為輝度為0與7時的對比。


     SPI接口Digit Display模塊的輝度0與輝度7的對比圖

    圖5  SPI接口Digit Display模塊的輝度0與輝度7的對比圖


        再來看看如修改端口
     

     
    Arduino 程序文件中可自定義相關SPI端口號

    圖6 Arduino 程序文件中可自定義相關SPI端口號

        第二款,10位LED Bar,它采用了一塊YM9221專用LED控制芯片,也屬于開源硬件,在網(wǎng)上可以找到它的Arduino庫。模塊亦采用SPI 串行接口,這款顯示器與上面介紹的相比,缺點在于:1.輝度不可自由調節(jié),是通過三個精密電阻給定的;2.SPI端口的修改也不夠方便,要到Arduino庫LED_Bar.h中修改最多6條語句才行。優(yōu)點在于:1.其將可控的12段LED分成三部分,也就是說,可以分段給定輝度值;2.它是具有SPI全功能的模塊,板上已給出SPI輸入輸出的口線位置,想級聯(lián),那是相當容易。

    SPI接口LED Bar模塊正面圖        SPI接口LED Bar 模塊反面圖
     

          圖7 SPI接口LED Bar模塊正面圖                  圖8 SPI接口LED Bar 模塊反面圖

        下面說明一下如何更改LED Bar SPI端口,這里要跟你的Arduino板子對應,參考Arduino原理圖與AVR芯片相關的引腳名稱。


    Arduino 程序文件中更改SPI總線端口相關數(shù)據(jù) 
     

    圖9 Arduino 程序文件中更改SPI總線端口相關數(shù)據(jù)
     
     

        悄悄地說一句:與這兩款相似功能的產(chǎn)品即將由奧松機器人推出,敬請關注奧松機器人的官網(wǎng) :)

    SPI在國內


    說了這么多新的SPI總線芯片模塊,再來比較一下采用國內較為通用的74HC595芯片的SPI總線接口LED模塊吧,就拿現(xiàn)在奧松機器人推出的一款SPI LED  Module V1.0來說,它用了8片SPI芯片,一位LED一個,成本是大了點。但優(yōu)點是電流足夠強大,實際上它用的LED也是個頭不小,挺配套,呵呵;芯片自帶緩沖,可靜態(tài)顯示 ,無抖動感;3.3V,5V電壓通吃;應用起來也挺方便,不用去海搜Arduino庫了,清一色的自定義即可,接口也是適配于Arduino 傳感器擴展板的。


    SPI LED Module V1.0 
     

    圖10 SPI LED Module V1.0

    順便給出一個它的顯示程序,功能是靜態(tài)顯示01234567,供大家參考。
    //Pin connected to ST_CP of 74HC595
    int latchPin = 4;
    //Pin connected to SH_CP of 74HC595
    int clockPin = 3;
    ////Pin connected to DS of 74HC595
    int dataPin = 2;
    int tab[]=
    {
      0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f
    };
    void setup() {
      //set pins to output because they are addressed in the main loop
      pinMode(latchPin, OUTPUT);
      pinMode(clockPin, OUTPUT);
      pinMode(dataPin, OUTPUT);
      for(int i = 0; i < 8; i++)// shut off all the segments before being displayed
      {
        digitalWrite(latchPin, LOW);
        shiftOut(dataPin, clockPin, LSBFIRST,0xff);  
        digitalWrite(latchPin, HIGH);
        delay(10);
      }   
    }

    void loop()
    {
      for(int i = 0; i < 8; i++)// display 0-7
      {
        digitalWrite(latchPin, LOW);
        shiftOut(dataPin, clockPin, LSBFIRST,tab[7-i]);  
        digitalWrite(latchPin, HIGH);
        delay(1000);
      }  
      while(1)//stop refresh the registers,then the numbers display steady
      {
        digitalWrite(latchPin, HIGH);
      }


    SPI LED Module V1.0顯示0-7 
     

    圖11 SPI LED Module V1.0顯示0-7

    下面是相關鏈接

    8位靜態(tài)數(shù)碼管級聯(lián)的視頻演示   http://v.youku.com/v_show/id_XNDU1MTMyOTA0.html
    8位靜態(tài)數(shù)碼管 擴展顯示模塊   http://m.lifestyle201.com/goods-97.html
    Arduino UNO R3                
    http://m.lifestyle201.com/goods-141.html
    Arduino 傳感器擴展板v5.0  
    http://m.lifestyle201.com/goods-147.html
    什么是SPI                    http://baike.baidu.com/view/245026.htm

    • 用戶評價

    暫時還沒有任何用戶評論

    總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
    用戶名: 匿名用戶
    E-mail:
    評價等級:
    評論內容:
    驗證碼:
    captcha

    Hi,大家好,我是小奧!

    歡迎來到奧松機器人的世界!

    需要咨詢服務請點小奧哦!

    • 銷售咨詢: 銷售咨詢
    • 銷售咨詢: 銷售咨詢
    • 技術支持: 技術支持
    • 咨詢電話:
      0451-86628691
    Top