日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在Arduino上使用八個(gè)大型紅色LED而不需要放棄8個(gè)輸出引腳

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-27 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

概述

在本課程中,您將學(xué)習(xí)如何在Arduino上使用八個(gè)大型紅色LED而不需要放棄8個(gè)輸出引腳!

如何在Arduino上使用八個(gè)大型紅色LED而不需要放棄8個(gè)輸出引腳

盡管您可以將八個(gè)LED分別連接一個(gè)Arduino引腳上的電阻(就像我們?cè)诘?課中對(duì)RGB LED所做的那樣),您很快就會(huì)開始用盡Arduino上的引腳。如果您沒有與duino連接的東西很多,則可以這樣做-但通常我們需要按鈕,傳感器,伺服器等,在您不知道它的情況下,您就沒有管腳了。因此,您將使用名為 74HC595串行到并行轉(zhuǎn)換器的芯片,而不是這樣做。該芯片具有八個(gè)輸出(完美)和三個(gè)輸入,可用于一次將數(shù)據(jù)饋入其中。

該芯片使驅(qū)動(dòng)LED的速度稍慢一些(您每秒只能將LED更換大約500,000次,而不是每秒8,000,000次),但它的確非常快,比人類可以檢測(cè)到的速度還要快,所以值得!

零件

要構(gòu)建本課中描述的項(xiàng)目,您將需要以下零件。

零件 數(shù)量

5mm紅色LED 8

270電阻(紅色,紫色,棕色條紋) 8

74HC595移位寄存器

1

半面包板 1

Arduino Uno R3 1

跳線束 1

面包板布局

由于我們要連接八個(gè)LED和八個(gè)電阻,因此實(shí)際上需要進(jìn)行很多連接。

將74HC595芯片放在第一位可能是最容易的,因?yàn)閹缀跛衅渌麞|西都可以連接對(duì)此。如此放置,以使小U形槽口朝向面包板的頂部。芯片的引腳1位于該凹口的左側(cè)。

arduino的數(shù)字4進(jìn)入移位寄存器的引腳14

arduino的數(shù)字5進(jìn)入移位寄存器的引腳12

來自arduino的數(shù)字6進(jìn)入移位寄存器的#11引腳

除了‘595的所有輸出之一,所有輸出都位于芯片的左側(cè),因此,為了便于連接,

在芯片之后,將電阻器放置到位。您需要小心,不要使電阻的引線相互接觸。在將電源連接到Arduino之前,應(yīng)該再次檢查這一點(diǎn)。如果發(fā)現(xiàn)很難在不接觸引線的情況下布置電阻器,則有助于縮短引線,使其更靠近面包板的表面。然后,將LED放在面包板上。

更長(zhǎng)的正極LED引線必須全部朝向芯片,無論面包板位于面包板的哪一側(cè)。

現(xiàn)在僅需連接跳線,如上所示。不要忘了從IC的引腳8到面包板GND列的引腳。

稍后加載列出的草圖并嘗試一下。每個(gè)LED都應(yīng)依次點(diǎn)亮,直到所有LED都點(diǎn)亮,然后它們都熄滅并重復(fù)該循環(huán)。

74HC595移位寄存器

在閱讀代碼之前,讓我們快速看一下芯片的功能,以便我們可以理解代碼的功能。

該芯片屬于一種移位寄存器。

移位寄存器可保存八個(gè)存儲(chǔ)單元,每個(gè)存儲(chǔ)單元可以是1或0。

設(shè)置每個(gè)存儲(chǔ)單元這些值的開或關(guān),我們使用芯片的“數(shù)據(jù)”和“時(shí)鐘”引腳輸入數(shù)據(jù)。

時(shí)鐘引腳需要接收八個(gè)脈沖。在每個(gè)脈沖時(shí),如果數(shù)據(jù)引腳為高電平,則將1壓入移位寄存器。否則,它為0。當(dāng)接收到所有八個(gè)脈沖時(shí),然后啟用“鎖存”引腳會(huì)將這八個(gè)值復(fù)制到鎖存寄存器。這是必要的,否則當(dāng)將數(shù)據(jù)加載到移位寄存器中時(shí),錯(cuò)誤的LED會(huì)閃爍。該芯片還具有OE(輸出使能)引腳,該引腳用于一次啟用或禁用所有輸出。您可以將其連接到具有PWM功能的Arduino引腳,并使用“ analogWrite”控制LED的亮度。該引腳為低電平有效,因此我們將其連接至GND。

Arduino代碼

Arduino包含一個(gè)名為“ shiftOut”的特殊功能,該功能專門用于將數(shù)據(jù)發(fā)送到移位寄存器。

這是完整的草圖,

下載:文件

復(fù)制代碼

/*

Adafruit Arduino - Lesson 4. 8 LEDs and a Shift Register

*/

int latchPin = 5;

int clockPin = 6;

int dataPin = 4;

byte leds = 0;

void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

}

void loop()

{

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

}

void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

} /*

Adafruit Arduino - Lesson 4. 8 LEDs and a Shift Register

*/

int latchPin = 5;

int clockPin = 6;

int dataPin = 4;

byte leds = 0;

void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

}

void loop()

{

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

}

void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

}

我們要做的第一件事是定義將要使用的三個(gè)引腳。這些是Arduino數(shù)字輸出,將連接到74HC595的鎖存器,時(shí)鐘和數(shù)據(jù)引腳。

下載:file

復(fù)制代碼

int latchPin = 5;

int clockPin = 6;

int dataPin = 4; int latchPin = 5;

int clockPin = 6;

int dataPin = 4;

接下來,定義了一個(gè)名為“ leds”的變量。這將用于保持當(dāng)前打開或關(guān)閉LED的模式。 “字節(jié)”類型的數(shù)據(jù)表示使用八位數(shù)字。每個(gè)位都可以打開或關(guān)閉,因此非常適合跟蹤我們八個(gè)LED中的哪個(gè)打開或關(guān)閉。

下載:文件

復(fù)制代碼

byte leds = 0; byte leds = 0;

“設(shè)置”功能僅設(shè)置了我們正在使用的三個(gè)引腳

下載:文件

復(fù)制代碼

void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

} void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

}

“循環(huán)”功能最初通過將變量“ leds”的值設(shè)置為0來關(guān)閉所有LED。然后調(diào)用“ updateShiftRegister”發(fā)送“ leds” ’模式到移位寄存器,以便所有LED熄滅。稍后我們將處理‘updateShiftRegister’的工作方式。

循環(huán)功能暫停半秒鐘,然后使用‘for’循環(huán)和變量‘i’從0到7開始計(jì)數(shù)。每次,它使用Arduino函數(shù)‘bitSet’來設(shè)置控制變量‘leds’中的LED的位。然后它還會(huì)調(diào)用‘updateShiftRegister’,以便leds更新以反映變量‘leds’中的內(nèi)容。

然后,在‘i’遞增之前,有半秒的延遲,下一個(gè)LED點(diǎn)亮。

下載:文件

復(fù)制代碼

void loop()

{

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

} void loop()

{

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

}

函數(shù)‘updateShiftRegister’首先將LatchPin設(shè)置為低電平,然后在再次將‘latchPin’置于高電平之前調(diào)用Arduino函數(shù)‘shiftOut’。它有四個(gè)參數(shù),前兩個(gè)是分別用于數(shù)據(jù)和時(shí)鐘的引腳。

第三個(gè)參數(shù)指定要從哪個(gè)數(shù)據(jù)端開始。我們將從最右邊的位開始,這就是所謂的“最低有效位”(LSB)。

最后一個(gè)參數(shù)是要移入移位寄存器的實(shí)際數(shù)據(jù)。

下載:文件

復(fù)制代碼

void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

} void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

}

如果要關(guān)閉而不是打開LED之一,則可以在“ leds”變量上調(diào)用類似的Arduino函數(shù)(bitClear) 。這會(huì)將“ leds”的位設(shè)置為0,然后您只需跟隨它調(diào)用“ updateShiftRegister”即可更新實(shí)際的LED。

亮度控制

我未提到的74HC595的一個(gè)引腳是稱為“輸出使能”的引腳。這是針腳13,在面包板上,它永久接地。該引腳用作開關(guān),可以啟用或禁用輸出-唯一需要注意的是它是“低電平有效”(接地以啟用)。因此,如果將其連接到5V,則所有輸出均關(guān)閉。而如果將其接地,則應(yīng)該打開的那些輸出打開,應(yīng)該關(guān)閉的那些輸出關(guān)閉。

我們可以將此引腳與“ analogWrite”功能一起使用,我們?cè)诘?課中使用了該功能。 ,以使用PWM控制LED的亮度(另請(qǐng)參閱第3課)。

要做的是,更改與74HC595引腳13的連接,以代替將其接地,將其連接到Arduino的引腳3。

下面的草圖將在所有LED點(diǎn)亮后逐漸將它們逐漸熄滅。

下載:文件

復(fù)制代碼

/*

Adafruit Arduino - Lesson 4. 8 LEDs and a Shift Register - Brightness

*/

int latchPin = 5;

int clockPin = 6;

int dataPin = 4;

int outputEnablePin = 3;

byte leds = 0;

void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

pinMode(outputEnablePin, OUTPUT);

}

void loop()

{

setBrightness(255);

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

for (byte b = 255; b 》 0; b--)

{

setBrightness(b);

delay(50);

}

}

void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

}

void setBrightness(byte brightness) // 0 to 255

{

analogWrite(outputEnablePin, 255-brightness);

}

/*

Adafruit Arduino - Lesson 4. 8 LEDs and a Shift Register - Brightness

*/

int latchPin = 5;

int clockPin = 6;

int dataPin = 4;

int outputEnablePin = 3;

byte leds = 0;

void setup()

{

pinMode(latchPin, OUTPUT);

pinMode(dataPin, OUTPUT);

pinMode(clockPin, OUTPUT);

pinMode(outputEnablePin, OUTPUT);

}

void loop()

{

setBrightness(255);

leds = 0;

updateShiftRegister();

delay(500);

for (int i = 0; i 《 8; i++)

{

bitSet(leds, i);

updateShiftRegister();

delay(500);

}

for (byte b = 255; b 》 0; b--)

{

setBrightness(b);

delay(50);

}

}

void updateShiftRegister()

{

digitalWrite(latchPin, LOW);

shiftOut(dataPin, clockPin, LSBFIRST, leds);

digitalWrite(latchPin, HIGH);

}

void setBrightness(byte brightness) // 0 to 255

{

analogWrite(outputEnablePin, 255-brightness);

}

其他要做的事情

一旦您知道如何使用74HC595,那么使用許多LED可以做很多事情。您可以嘗試以下操作:

制作“ Larson Scanner”掃描燈,就像在電視連續(xù)劇《騎士騎士》中KITT的前部以及在《 Battle Start Galactica》系列中的Cylons上那樣。 li》

制作電子骰子。將6個(gè)LED排列為兩列,每列三個(gè)LED,中間一個(gè)LED。提示–看一下稱為“隨機(jī)”的Arduino函數(shù)。

74HC595的一大優(yōu)點(diǎn)是,您可以通過菊花鏈?zhǔn)竭B接它們以增加數(shù)量。您可以控制的LED。有關(guān)74HC595的更高級(jí)用法的其他指導(dǎo),請(qǐng)查看使用‘shiftOut’的Arduino官方文檔http://arduino.cc/zh/Tutorial/ShiftOut

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    244

    文章

    24740

    瀏覽量

    692897
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6529

    瀏覽量

    197563
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    電能表用電流互感器,到底需不需要接地?

    高壓系統(tǒng)(10kV及以上)的電流互感器二次側(cè)必須單點(diǎn)接地,低壓系統(tǒng)(400V及以下)用于計(jì)量的電流互感器二次側(cè)通常不需要接地。
    的頭像 發(fā)表于 05-06 13:48 ?533次閱讀
    電能表用電流互感器,到底需<b class='flag-5'>不需要</b>接地?

    請(qǐng)推薦適合 VisionFive 的 CPU 風(fēng)扇型號(hào),如何將風(fēng)扇固定在CPU,還是不需要風(fēng)扇?

    以及如何將風(fēng)扇固定在CPU,還是不需要風(fēng)扇?謝謝。
    發(fā)表于 03-25 07:40

    請(qǐng)問SPI為什么不需要加上拉電阻?

    SPI為什么不需要加上拉電阻?
    發(fā)表于 11-25 07:52

    系統(tǒng)c盤滿了怎么清理不需要文件

    統(tǒng)c盤滿了怎么清理不需要文件 ? 你的 c: 驅(qū)動(dòng)已經(jīng)滿了, 電腦變慢或者無法安裝更新, 這是 windows 機(jī)器常見的問題, 不用當(dāng)技術(shù)專家也能騰出空間, 這篇指南用簡(jiǎn)單安全的步驟幫你找到并刪除
    的頭像 發(fā)表于 11-22 09:30 ?1251次閱讀

    DAC5578 8位,進(jìn)制通道,超低故障,電壓輸出,2線接口DAC技術(shù)手冊(cè)

    DAC5578(8位)、DAC6578(10位)和DAC7578(12位)是低功耗、輸出電壓的進(jìn)制信道數(shù)模轉(zhuǎn)換器(DAC)。這些器件是單片式的,提供良好的線性,并最大限度地減少了不需要
    的頭像 發(fā)表于 11-20 11:03 ?1036次閱讀
    DAC5578 <b class='flag-5'>8</b>位,<b class='flag-5'>八</b>進(jìn)制通道,超低故障,電壓<b class='flag-5'>輸出</b>,2線接口DAC技術(shù)手冊(cè)

    AFE8092 8 個(gè)發(fā)射、8 個(gè)接收 RF 采樣收發(fā)器技術(shù)手冊(cè)

    AFE8092是一款高性能、寬帶寬的多通道收發(fā)器,集成了八個(gè)射頻采樣發(fā)射器鏈、八個(gè)射頻采樣接收器鏈和兩個(gè)獨(dú)立的射頻前端,用于輔助鏈(反饋路徑)。發(fā)射機(jī)和接收機(jī)鏈的高動(dòng)態(tài)范圍允許為無線基站生成和接收 3G、4G 和 5G 信號(hào),A
    的頭像 發(fā)表于 10-31 14:49 ?852次閱讀
    AFE8092 <b class='flag-5'>8</b> <b class='flag-5'>個(gè)</b>發(fā)射、<b class='flag-5'>8</b> <b class='flag-5'>個(gè)</b>接收 RF 采樣收發(fā)器技術(shù)手冊(cè)

    ?SN74LV8T374 路D型觸發(fā)器技術(shù)文檔總結(jié)

    SN74LV8T374包含八個(gè) D 型人字拖。所有通道共享上升沿觸發(fā)時(shí)鐘 (CLK) 輸入和低電平有效輸出使能 (OE) 輸入。該器件具有流通引腳排列,可以更輕松地進(jìn)行總線布線。
    的頭像 發(fā)表于 09-28 14:01 ?1310次閱讀
    ?SN74LV<b class='flag-5'>8</b>T374 <b class='flag-5'>八</b>路D型觸發(fā)器技術(shù)文檔總結(jié)

    Texas Instruments CDCDB803用于PCIe?第1代至第5代的8輸出時(shí)鐘緩沖器數(shù)據(jù)手冊(cè)

    、QuickPath互連 (QPI)、UPI、SAS和SATA接口分配參考時(shí)鐘。其SMBus接口和八個(gè)輸出使能引腳可實(shí)現(xiàn)所有八個(gè)輸出的單獨(dú)配
    的頭像 發(fā)表于 09-26 15:14 ?930次閱讀
    Texas Instruments CDCDB803用于PCIe?第1代至第5代的<b class='flag-5'>8</b><b class='flag-5'>輸出</b>時(shí)鐘緩沖器數(shù)據(jù)手冊(cè)

    ?CDCDB800 8輸出時(shí)鐘緩沖器技術(shù)文檔總結(jié)

    分配參考時(shí)鐘。SMBus 接口和八個(gè)輸出使能引腳允許單獨(dú)配置和控制所有八個(gè)輸出。該CDCDB800是DB800ZL導(dǎo)數(shù)緩沖器,達(dá)到或超過DB
    的頭像 發(fā)表于 09-11 17:05 ?1178次閱讀
    ?CDCDB800 <b class='flag-5'>8</b><b class='flag-5'>輸出</b>時(shí)鐘緩沖器技術(shù)文檔總結(jié)

    ?CDCDB803 8輸出時(shí)鐘緩沖器技術(shù)文檔總結(jié)

    參考時(shí)鐘。SMBus 接口和八個(gè)輸出使能引腳允許單獨(dú)配置和控制所有八個(gè)輸出。該CDCDB803是一種DB800ZL導(dǎo)數(shù)緩沖液,達(dá)到或超過DB
    的頭像 發(fā)表于 09-11 16:45 ?1102次閱讀
    ?CDCDB803 <b class='flag-5'>8</b><b class='flag-5'>輸出</b>時(shí)鐘緩沖器技術(shù)文檔總結(jié)

    ?TPS61199 白光LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    該TPS61199為大尺寸 LCD 背光提供高度集成的解決方案。該器件集成了一個(gè)電流模式升壓控制器和八個(gè)電流吸收器,用于驅(qū)動(dòng)多達(dá)八個(gè)具有多個(gè) LED 串聯(lián)的
    的頭像 發(fā)表于 09-01 09:16 ?962次閱讀
    ?TPS61199 白光<b class='flag-5'>LED</b>驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    ?TPS92638-Q1 8通道線性LED驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    TPS92638-Q1 是一款具有 PWM 調(diào)光控制的通道線性 LED 驅(qū)動(dòng)器。其設(shè)計(jì)非常適合驅(qū)動(dòng)多串 LED 至中等功率范圍。 該器件最多可驅(qū)動(dòng)八個(gè)串,每個(gè)串中有一
    的頭像 發(fā)表于 08-27 11:23 ?1219次閱讀
    ?TPS92638-Q1 <b class='flag-5'>8</b>通道線性<b class='flag-5'>LED</b>驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    LP5868T大電流LED矩陣驅(qū)動(dòng)器技術(shù)解析與應(yīng)用指南

    Texas Instruments LP5868T大電流LED驅(qū)動(dòng)器集成了18個(gè)恒定電流阱和N (N = 6/8/11) 個(gè)開關(guān)MOSFET,支持N × 18
    的頭像 發(fā)表于 08-15 11:52 ?1294次閱讀
    LP5868T大電流<b class='flag-5'>LED</b>矩陣驅(qū)動(dòng)器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74LV8T541-EP通道緩沖器和線路驅(qū)動(dòng)器數(shù)據(jù)手冊(cè)

    Texas Instruments SN74LV8T541-EP路緩沖器/線路驅(qū)動(dòng)器包含八個(gè)具有3態(tài)輸出的緩沖器。低電平有效輸出能夠使
    的頭像 發(fā)表于 07-05 10:15 ?941次閱讀
    Texas Instruments SN74LV<b class='flag-5'>8</b>T541-EP<b class='flag-5'>八</b>通道緩沖器和線路驅(qū)動(dòng)器數(shù)據(jù)手冊(cè)

    《ESP32S3 Arduino開發(fā)指南》第二章 Arduino基礎(chǔ)知識(shí)

    迭代,不斷完善,示例代碼功能也越來越健全。使用Arduino IDE進(jìn)行開發(fā),由于驅(qū)動(dòng)庫是相互兼容的,很多代碼不需要修改就可以直接使用,這就可以讓從芯片替代成本變得很低,也讓越來越多電子愛好者參與
    發(fā)表于 05-13 09:28
    林口县| 剑川县| 大田县| 绍兴县| 昂仁县| 剑川县| 高州市| 松江区| 大连市| 南平市| 腾冲县| 鄂尔多斯市| 台湾省| 棋牌| 榆林市| 炉霍县| 闽侯县| 开江县| 北碚区| 赤水市| 屏南县| 水富县| 肥西县| 合川市| 荆门市| 天水市| 西青区| 西乌珠穆沁旗| 萨迦县| 栾川县| 神农架林区| 仁布县| 南江县| 铁岭市| 囊谦县| 瑞昌市| 昌乐县| 芷江| 吉木乃县| 商河县| 峡江县|