wordpress圖片播放優(yōu)化大師官網(wǎng)下載安裝
37款傳感器與模塊的提法,在網(wǎng)絡上廣泛流傳,其實Arduino能夠兼容的傳感器模塊肯定是不止37種的。鑒于本人手頭積累了一些傳感器和執(zhí)行器模塊,依照實踐出真知(一定要動手做)的理念,以學習和交流為目的,這里準備逐一動手試試多做實驗,不管成功與否,都會記錄下來——小小的進步或是搞不掂的問題,希望能夠拋磚引玉。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗一百九十五:I2C紅色8*8LED點陣屏模塊 HT16k33(VK16K33)驅動1088BS 物聯(lián)網(wǎng)可擴展編程
知識點:VK16K33芯片
是一款存儲器映射和多功能LED控制驅動芯片。該芯片支持更大 128 點的顯示模式(16SEGs×8COMs) 以及更大 13×3 的按鍵矩陣掃描電路。VK16K33 的軟件配置特性使其適用于多種 LED 應用,包括 LED 模塊和顯示子系統(tǒng)。VK16K33 通過雙向I2C 接口可與大多數(shù)微控制器進行通信。
功能特點1.工作電壓:4.5V~5.5V2.內部 RC 振蕩器3.I2C 總線接口4.16×8 位 RAM 用于存儲顯示數(shù)據(jù)5.更大顯示模式為16×8:16SEGs和8COMs6.讀 /寫地址自動遞增7.多達13×3 按鍵矩陣掃描功能8. 16階調光電路9.封裝類型:20/24/28-pin SOP VK16K33此系列IC具有低功耗、高抗雜訊及高系統(tǒng)ESD防護能力;VK16K33整合了LED驅動和按鍵掃描的功能,將控制面板所需要的功能融合于一身,可降低主MCU的負擔及需要的I/O數(shù)目。采用I2C的介面更可減少控制面板和主板之間的材料成本、進而降低產品整體成本。
VK16K33有28SOP、24SOP和20SOP三種包裝,分別對應三種更大顯示點數(shù);16x8點LED和13x3個按鍵、12x8點LED和10x3個按鍵,以及8x8點LED和8x3個按鍵。內建顯示記憶體及RC振蕩電路;工作電壓:4.5V~5.5V;VK16K33支持中斷信號和輪詢兩種工作模式。可選擇性的提供按鍵中斷信號給MCU,MCU可不須一直檢查按鍵狀態(tài)。VK16K33與系統(tǒng)控制晶片的傳輸只需2根信號線,通過VK16K33 偵測按鍵輸入,可減少主版MCU I/O數(shù)目及精簡主版及面板的布局線路;因此可降低產品整體成本。 VK16K33適用于家電、影音設備、儀表設備、車用裝置等LED顯示器/面板的控制及驅動。
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程
項目十五:不同方向的滾動字符串
實驗開源代碼
/*【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程項目十五:不同方向的滾動字符串實驗接線:VK16k33 UNOVIN 5VGND GNDSCL A5SDA A4
*/#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"Adafruit_8x8matrix matrix = Adafruit_8x8matrix();void setup() {Serial.begin(9600);Serial.println("8x8 LED Matrix Test");matrix.begin(0x70); // pass in the address
}static const uint8_t PROGMEM
smile_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100
},
neutral_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100
},
frown_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100
};void loop() {matrix.clear();matrix.drawBitmap(1, 0, smile_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(1, 0, neutral_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(200);matrix.clear();matrix.drawBitmap(1, 0, frown_bmp, 8, 8, LED_ON);matrix.writeDisplay();delay(200);matrix.clear(); // clear displaymatrix.drawPixel(1, 0, LED_ON);matrix.writeDisplay(); // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawLine(1, 0, 7, 7, LED_ON);matrix.writeDisplay(); // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawRect(1, 0, 8, 8, LED_ON);matrix.fillRect(2, 2, 4, 4, LED_ON);matrix.writeDisplay(); // write the changes we just made to the displaydelay(200);matrix.clear();matrix.drawCircle(3, 3, 3, LED_ON);matrix.writeDisplay(); // write the changes we just made to the displaydelay(200);matrix.setTextSize(1);matrix.setTextWrap(false); // we dont want text to wrap so it scrolls nicelymatrix.setTextColor(LED_ON);for (int8_t x = 0; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("Hello");matrix.writeDisplay();delay(50);}matrix.setRotation(3);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("World");matrix.writeDisplay();delay(50);}matrix.setRotation(0);
}
Arduino實驗場景圖
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程
項目十六:滾動的一串數(shù)字
實驗開源代碼
/*【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程項目十六:滾動的一串數(shù)字實驗接線:VK16k33 UNOVIN 5VGND GNDSCL A5SDA A4
*/#include <Wire.h>
#include "Grove_LED_Matrix_Driver_HT16K33.h"Matrix_8x8 matrix;void setup() {Wire.begin();matrix.init();matrix.setBrightness(0);matrix.setBlinkRate(BLINK_OFF);
}void loop() {// 顯示數(shù)字“0”并延遲 400nsmatrix.writeNumber(0, 400);matrix.display();// 顯示數(shù)字 "-2147483648" 并延遲 (300*11)ns// writeNumber()的顯示范圍是int32_t(從-2147483648到2147483647)matrix.writeNumber(-2147483648, 300);matrix.display();
}
Arduino實驗場景圖
【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)
實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程
項目十七:變換的笑臉與流淌的字符"Hello",“World”
實驗開源代碼
/*【Arduino】168種傳感器模塊系列實驗(資料代碼+仿真編程+圖形編程)實驗二百零七:I2C紅色8*8LED點陣模塊VK16k33驅動1088BS樹莓派物聯(lián)網(wǎng)可擴展編程項目十七:變換的笑臉與流淌的字符"Hello","World"實驗接線:VK16k33 UNOVIN 5VGND GNDSCL A5SDA A4
*/#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"Adafruit_BicolorMatrix matrix = Adafruit_BicolorMatrix();void setup() {Serial.begin(9600);Serial.println("8x8 LED Matrix Test");matrix.begin(0x70); // pass in the address
}static const uint8_t PROGMEM
smile_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10100101,B10011001,B01000010,B00111100
},
neutral_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10111101,B10000001,B01000010,B00111100
},
frown_bmp[] =
{ B00111100,B01000010,B10100101,B10000001,B10011001,B10100101,B01000010,B00111100
};void loop() {matrix.clear();matrix.drawBitmap(0, 0, smile_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(0, 0, neutral_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear();matrix.drawBitmap(0, 0, frown_bmp, 8, 8, LED_GREEN);matrix.writeDisplay();delay(500);matrix.clear(); // clear displaymatrix.drawPixel(0, 0, LED_GREEN);matrix.writeDisplay(); // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawLine(0, 0, 7, 7, LED_GREEN);matrix.writeDisplay(); // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawRect(0, 0, 8, 8, LED_GREEN);matrix.fillRect(2, 2, 4, 4, LED_GREEN);matrix.writeDisplay(); // write the changes we just made to the displaydelay(500);matrix.clear();matrix.drawCircle(3, 3, 3, LED_GREEN);matrix.writeDisplay(); // write the changes we just made to the displaydelay(500);matrix.setTextWrap(false); // we dont want text to wrap so it scrolls nicelymatrix.setTextSize(1);matrix.setTextColor(LED_GREEN);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("Hello");matrix.writeDisplay();delay(50);}matrix.setRotation(3);matrix.setTextColor(LED_GREEN);for (int8_t x = 7; x >= -36; x--) {matrix.clear();matrix.setCursor(x, 0);matrix.print("World");matrix.writeDisplay();delay(50);}matrix.setRotation(0);
}
Arduino實驗場景圖