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

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

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

如何將micro:bit連接到無焊面包板

454398 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-28 09:47 ? 次閱讀

概述

在本課程中,您將學(xué)習(xí)如何將micro:bit連接到無焊面包板,以及如何打開和關(guān)閉LED,控制其亮度以及如何使用三個(gè)LED發(fā)出交通信號。

您將首先使單個(gè)LED閃爍,然后控制LED的亮度,最后再添加兩個(gè)LED以使交通信號如上所示。

部分

要關(guān)注本課程中的所有活動(dòng),您將需要以下部分。您還需要一個(gè)微型USB導(dǎo)線將micro:bit連接到計(jì)算機(jī)。

如何將micro:bit連接到無焊面包板

》 BBC micro:bit

產(chǎn)品ID:3530

英國入侵就在這里!不,不是音樂。..微控制器!美國的新手是學(xué)習(xí)編程電子技術(shù)的最新,最簡單的方法-BBC 。..

$ 14.95

庫存中

添加到購物車

半尺寸面包板

產(chǎn)品編號:64

這是一個(gè)可愛的半尺寸面包板,適用于小型項(xiàng)目。它是2.2英寸x 3.4英寸(5.5厘米x 8.5厘米),中間有一個(gè)標(biāo)準(zhǔn)的雙條帶,兩個(gè)上都有兩個(gè)電源導(dǎo)軌。..

庫存

缺貨

小鱷魚夾至公跳線束-12件

產(chǎn)品ID:3255

這些電纜用于具有非標(biāo)頭友好型表面的面包板將成為您最好的朋友!您將不再有長長的短吻鱷皮夾了。..

$ 7.95

入庫價(jià)

div》

添加到購物車

超級明亮的5mm紅色LED(25個(gè)裝)

產(chǎn)品ID:297

需要一些真正的LED嗎?我們是這些紅色紅色LED的忠實(shí)擁護(hù)者,實(shí)際上我們只在套件中使用它們。它們非常明亮,并具有約20度的LED光束。他們?nèi)ァ?.

$ 8.00

入庫

添加到購物車

超亮黃色5mm LED(25件裝)

產(chǎn)品ID:2700

需要一些真正亮的LED嗎?我們是這些黃色透明LED的忠實(shí)擁護(hù)者,實(shí)際上,我們僅在套件中使用它們。它們非常明亮!它們很容易進(jìn)入面包板并。..

$ 4.95

入庫存

添加到購物車

超亮綠色5mm LED(25件裝)

產(chǎn)品編號:300

需要一些真正明亮的LED嗎?我們是這些透明綠色LED的忠實(shí)擁護(hù)者,實(shí)際上我們只在套件中使用它們。它們非常明亮,并具有約20度的LED光束。他們?nèi)ァ?.

$ 8.00

入庫

添加到購物車

直通電阻-470 ohm 5%1/4W-每包25個(gè)

產(chǎn)品ID:2781

ΩMG!您將無法抵抗這些方便的電阻器包!那么,從軸向上看,它們可以為您提供所有的抵抗力!這是25包。..

$ 0.75

存貨

添加到購物車

面包板布局

如下圖所示連接電阻和LED。確保LED的較長引線(正極引線)在左側(cè)。

將micro:bit連接到面包板時(shí),最好將鱷魚夾垂直放入micro:bit的墊板上的孔中,否則夾可能會滑落或意外

無焊面包板的工作方式是在您戳入組件引線的孔的后面找到一個(gè)金屬夾。

p》

將micro:bit的pin0連接到面包板第3行的紅色引線實(shí)際上將引線連接到該行的每個(gè)孔位置(至少對于左行的5行而言)。然后,電阻器的右側(cè)連接到右側(cè)排第3行下方的線夾,從而連接到LED的正極。

面包板兩側(cè)的長列的工作方式不同從面包板中央?yún)^(qū)域的主要連接排開始。這些長列中的每一個(gè)都由一個(gè)通常用于供電的長夾子組成。在這種情況下,右列(旁邊有一條藍(lán)線)連接到micro:bit的GND連接,也連接到LED的負(fù)極。

電阻是必要的,以限制流過LED的電流。不允許從micro:bit的數(shù)字輸出汲取超過3mA的電流。 470Ω電阻器將LED電流限制在3mA以下。

閃爍LED

首先,讓我們的LED閃爍。使LED閃爍的方法是一遍又一遍地遵循以下代碼說明序列:

打開LED

延遲一段時(shí)間

關(guān)閉LED

延遲一段時(shí)間

此代碼取決于您選擇使用的編程平臺。

JavaScript塊代碼

JavaScript塊代碼編輯器直接嵌入在下面的此頁面中。在編輯器中,您可以單擊“下載”按鈕(右下方),然后將下載的文件復(fù)制到您的micro:bit?;蛘撸梢詥螕舸颂幵趩为?dú)的瀏覽器選項(xiàng)卡中打開編輯器。

要安裝程序,請將十六進(jìn)制文件復(fù)制到您的micro:bit 。請參閱本指南以開始使用Javascript塊。

Forever 塊將重復(fù)運(yùn)行該塊中包含的所有代碼。

MicroPython

要運(yùn)行MicroPython版本代碼中,請?jiān)诖颂幋蜷_在線Python編輯器,并將以下代碼粘貼到編輯器窗口中。

下載:文件

復(fù)制代碼

from microbit import *

while True:

pin0.write_digital(1) # turn pin0 (and the LED) on

sleep(500) # delay for half a second (500 milliseconds)

pin0.write_digital(0) # turn pin0 (and the LED) off

sleep(500) # delay for half a second from microbit import *

while True:

pin0.write_digital(1) # turn pin0 (and the LED) on

sleep(500) # delay for half a second (500 milliseconds)

pin0.write_digital(0) # turn pin0 (and the LED) off

sleep(500) # delay for half a second

程序首先導(dǎo)入 microbit 包含用于控制引腳開和關(guān)所需的 write_digital 函數(shù)的庫。

while 循環(huán)將重復(fù)其中包含的命令,直到您拔出微型插頭。 :位這些命令首先打開該引腳,延遲半秒鐘,然后將其關(guān)閉,然后再次延遲。

Arduino

請按照本指南確保已為micro:bit設(shè)置了Arduino環(huán)境。

現(xiàn)在通過單擊 File 菜單和 New 來啟動(dòng)新的Sketch。然后將以下代碼粘貼到編輯器窗口中。

下載:文件

復(fù)制代碼

// define a constant for the LED pin

const int ledPin = 0;

// setup is run just once when the micro:bit starts up

void setup() {

pinMode(ledPin, OUTPUT); // set the ledPin (pin0) to be an output

}

void loop() {

digitalWrite(ledPin, HIGH); // turn the ledPin (and LED) on

delay(500); // delay for half a second (500 milliseconds)

digitalWrite(ledPin, LOW); // turn the ledPin (and LED) off

delay(500); // delay for half a second

} // define a constant for the LED pin

const int ledPin = 0;

// setup is run just once when the micro:bit starts up

void setup() {

pinMode(ledPin, OUTPUT); // set the ledPin (pin0) to be an output

}

void loop() {

digitalWrite(ledPin, HIGH); // turn the ledPin (and LED) on

delay(500); // delay for half a second (500 milliseconds)

digitalWrite(ledPin, LOW); // turn the ledPin (and LED) off

delay(500); // delay for half a second

}

保存文件,然后將其上傳到您的micro:bit。

Arduino版本該代碼的代碼與MicroPython和JavaScript Blocks代碼略有不同,因?yàn)槭褂肁rduino時(shí),您必須指定該引腳用作輸出,而對于其他語言,這是在您第一次將該引腳用作引腳時(shí)自動(dòng)發(fā)生的。輸出。

交通信號

此該示例使用三個(gè)LED制作模型交通信號燈。如果愿意,可以使用所有紅色LED,但是如果使用紅色,黃色和綠色,則更現(xiàn)實(shí)。

LED依次以紅色,黃色,綠色,黃色循環(huán),然后再次變回紅色。

要添加額外的LED和電阻器,請按照以下面包板布局所示進(jìn)行布線。

請確保LED正確定位,并且較長的正極引線(陽極)向左。

JavaScript塊代碼

JavaScript塊代碼編輯器直接嵌入在下面的此頁面中。在編輯器中,您可以單擊“下載”按鈕(右下方),然后將下載的文件復(fù)制到您的micro:bit。或者,您可以單擊此處在單獨(dú)的瀏覽器選項(xiàng)卡中打開編輯器。

MicroPython代碼

下面列出了MicroPython代碼。

下載:文件

復(fù)制代碼

from microbit import *

red_pin = pin0 # giving the LED pins names by using variables

amber_pin = pin1 # makes it easier to see how the program works

green_pin = pin2

while True:

# red - turn amber LED off and red LED on

amber_pin.write_digital(0)

red_pin.write_digital(1)

sleep(4000) # delay 4 seconds

# amber - turn red LED off and amber LED on

red_pin.write_digital(0)

amber_pin.write_digital(1)

sleep(1000)

# green - turn amber LED off and green LED on

amber_pin.write_digital(0)

green_pin.write_digital(1)

sleep(4000)

# amber - turn green LED off and amber LED on

green_pin.write_digital(0)

amber_pin.write_digital(1)

sleep(1000) from microbit import *

red_pin = pin0 # giving the LED pins names by using variables

amber_pin = pin1 # makes it easier to see how the program works

green_pin = pin2

while True:

# red - turn amber LED off and red LED on

amber_pin.write_digital(0)

red_pin.write_digital(1)

sleep(4000) # delay 4 seconds

# amber - turn red LED off and amber LED on

red_pin.write_digital(0)

amber_pin.write_digital(1)

sleep(1000)

# green - turn amber LED off and green LED on

amber_pin.write_digital(0)

green_pin.write_digital(1)

sleep(4000)

# amber - turn green LED off and amber LED on

green_pin.write_digital(0)

amber_pin.write_digital(1)

sleep(1000)

Arduino代碼

該程序的Arduino版本與其他兩個(gè)版本非常相似。

下載:文件

復(fù)制代碼

// define constants for each LED pin

const int redPin = 0;

const int amberPin = 1;

const int greenPin = 2;

void setup() {

// set all three pins to act as digital outputs

pinMode(redPin, OUTPUT);

pinMode(amberPin, OUTPUT);

pinMode(greenPin, OUTPUT);

}

void loop() {

// red - turn amber LED off and red LED on

digitalWrite(amberPin, LOW);

digitalWrite(redPin, HIGH);

delay(4000); // delay 4 seconds

// amber - turn red LED off and amber LED on

digitalWrite(redPin, LOW);

digitalWrite(amberPin, HIGH);

delay(1000);

// green - turn amber LED off and green LED on

digitalWrite(amberPin, LOW);

digitalWrite(greenPin, HIGH);

delay(4000);

// amber - turn green LED off and amber LED on

digitalWrite(greenPin, LOW);

digitalWrite(amberPin, HIGH);

delay(1000);

} // define constants for each LED pin

const int redPin = 0;

const int amberPin = 1;

const int greenPin = 2;

void setup() {

// set all three pins to act as digital outputs

pinMode(redPin, OUTPUT);

pinMode(amberPin, OUTPUT);

pinMode(greenPin, OUTPUT);

}

void loop() {

// red - turn amber LED off and red LED on

digitalWrite(amberPin, LOW);

digitalWrite(redPin, HIGH);

delay(4000); // delay 4 seconds

// amber - turn red LED off and amber LED on

digitalWrite(redPin, LOW);

digitalWrite(amberPin, HIGH);

delay(1000);

// green - turn amber LED off and green LED on

digitalWrite(amberPin, LOW);

digitalWrite(greenPin, HIGH);

delay(4000);

// amber - turn green LED off and amber LED on

digitalWrite(greenPin, LOW);

digitalWrite(amberPin, HIGH);

delay(1000);

}

LED亮度控制

除了打開和關(guān)閉LED之外,還可以使用它來控制LED的亮度。

在在此示例中,A按鈕將使LED調(diào)光器變亮,而B按鈕將使它變亮。同時(shí),micro:bits內(nèi)置的LED顯示屏將顯示0到9之間的數(shù)字,指示亮度級別。

JavaScript阻止代碼

要在單獨(dú)的標(biāo)簽中打開JavaScript阻止代碼,請單擊此處。

實(shí)際上,這里發(fā)生了很多事情。讓我們以開始時(shí)的 塊開始。當(dāng)micro:bit啟動(dòng)時(shí),此塊僅運(yùn)行一次,它定義了四個(gè)變量:

min_power-當(dāng)0熄滅且1023為最大亮度時(shí),LED的最小輸出水平

max_power-LED的最大輸出電平。這兩個(gè)變量允許您設(shè)置亮度的可能范圍。

power_step-亮度將以10步變化,因此此值是根據(jù)最小值和最大值計(jì)算的。

亮度-亮度級別,介于0到10之間的一個(gè)數(shù)字。

永遠(yuǎn)重復(fù)運(yùn)行的 forever 循環(huán)設(shè)置名為 power 根據(jù)亮度級別。

要增加和減少亮度,使用了兩個(gè)處理程序。這些響應(yīng)按下按鈕A或按鈕B,然后顯示亮度級別并使用 analog write 塊在 pin0 上設(shè)置輸出級別。

MicroPython

這是MicroPython代碼

下載:文件

復(fù)制代碼

from microbit import *

min_power = 50

max_power = 1023

power_step = (max_power - min_power) / 9

brightness = 0

def set_power(brightness):

display.show(str(brightness))

if brightness == 0:

pin0.write_analog(0)

else:

pin0.write_analog(brightness * power_step + min_power)

set_power(brightness)

while True:

if button_a.was_pressed():

brightness -= 1

if brightness 《 0:

brightness = 0

set_power(brightness)

elif button_b.was_pressed():

brightness += 1

if brightness 》 9:

brightness = 9

set_power(brightness)

sleep(100) from microbit import *

min_power = 50

max_power = 1023

power_step = (max_power - min_power) / 9

brightness = 0

def set_power(brightness):

display.show(str(brightness))

if brightness == 0:

pin0.write_analog(0)

else:

pin0.write_analog(brightness * power_step + min_power)

set_power(brightness)

while True:

if button_a.was_pressed():

brightness -= 1

if brightness 《 0:

brightness = 0

set_power(brightness)

elif button_b.was_pressed():

brightness += 1

if brightness 》 9:

brightness = 9

set_power(brightness)

sleep(100)

Arduino代碼

使用micro:bit顯示器的Arduino代碼有所不同,因?yàn)樗褂昧?a target="_blank">Adafruit GFX庫。

下載:文件

復(fù)制代碼

#include

const int ledPin = 0;

const int minPower = 50;

const int maxPower = 255;

const int powerStep = (maxPower - minPower) / 9;

int brightness = 0;

Adafruit_Microbit_Matrix microbit;

void setup() {

pinMode(ledPin, OUTPUT);

microbit.begin();

pinMode(PIN_BUTTON_A, INPUT);

pinMode(PIN_BUTTON_B, INPUT);

setPower(brightness);

}

void loop() {

if (digitalRead(PIN_BUTTON_A) == LOW) {

brightness --;

if (brightness 《 0) {

brightness = 0;

}

setPower(brightness);

delay(200);

}

else if (digitalRead(PIN_BUTTON_B) == LOW) {

brightness ++;

if (brightness 》 9) {

brightness = 9;

}

setPower(brightness);

delay(200);

}

}

void setPower(int brightness) {

microbit.print(brightness);

if (brightness == 0) {

analogWrite(ledPin, 0);

}

else {

analogWrite(ledPin, brightness * powerStep + minPower);

}

} #include

const int ledPin = 0;

const int minPower = 50;

const int maxPower = 255;

const int powerStep = (maxPower - minPower) / 9;

int brightness = 0;

Adafruit_Microbit_Matrix microbit;

void setup() {

pinMode(ledPin, OUTPUT);

microbit.begin();

pinMode(PIN_BUTTON_A, INPUT);

pinMode(PIN_BUTTON_B, INPUT);

setPower(brightness);

}

void loop() {

if (digitalRead(PIN_BUTTON_A) == LOW) {

brightness --;

if (brightness 《 0) {

brightness = 0;

}

setPower(brightness);

delay(200);

}

else if (digitalRead(PIN_BUTTON_B) == LOW) {

brightness ++;

if (brightness 》 9) {

brightness = 9;

}

setPower(brightness);

delay(200);

}

}

void setPower(int brightness) {

microbit.print(brightness);

if (brightness == 0) {

analogWrite(ledPin, 0);

}

else {

analogWrite(ledPin, brightness * powerStep + minPower);

}

}

其他要做的事情

使用最喜歡的micro:bit編程語言,嘗試修改 blink 或流量信號代碼來更改LED的計(jì)時(shí)。

對于交通信號項(xiàng)目,您還可以嘗試更改代碼,使其表現(xiàn)得像人行橫道,并且燈光會根據(jù)您的需求而變化按下按鈕A。

責(zé)任編輯:wv

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

    關(guān)注

    240

    文章

    23062

    瀏覽量

    657049
  • 面包板
    +關(guān)注

    關(guān)注

    3

    文章

    298

    瀏覽量

    17529
收藏 人收藏

    評論

    相關(guān)推薦

    面包常見問題的解決方法

    面包 ,又叫面包 。在當(dāng)今的電子愛好者和工程師社區(qū)中,
    的頭像 發(fā)表于 11-05 11:44 ?196次閱讀
    <b class='flag-5'>面包</b><b class='flag-5'>板</b>常見問題的解決方法

    如何將LVDS/OLDI橋接到HDMI/DVI

    電子發(fā)燒友網(wǎng)站提供《如何將LVDS/OLDI橋接到HDMI/DVI.pdf》資料免費(fèi)下載
    發(fā)表于 09-27 09:35 ?1次下載
    <b class='flag-5'>如何將</b>LVDS/OLDI橋<b class='flag-5'>接到</b>HDMI/DVI

    ESP無法連接到WIFI怎么解決?

    將此芯片用于已在 PCB 上接線的電路。我在面包連接了相同的電路。奇怪的是,我甚至在面包上也沒有遇到過這個(gè)錯(cuò)誤。它在那里總是工作正常。
    發(fā)表于 07-17 08:30

    如何將Littlefs安裝到通過qspi連接到電路的外部串行閃存上?

    一款 PSoC6 套件,并將 mtb-littlefs 子程序添加到我的項(xiàng)目和 XMC7100 套件中。 能行嗎? 如何將 Littlefs 安裝到通過 qspi 連接到電路的外部串行閃存上? 我
    發(fā)表于 05-27 06:03

    電源芯片的工作原理 電源芯片怎么測好壞 電源芯片如何接到pcb

    等。本文詳細(xì)介紹電源芯片的工作原理、如何測試電源芯片的好壞以及如何將電源芯片連接到PCB上。 一、電源芯片的工作原理 電源芯片通常由芯片本體和周邊電路組成。芯片本體是電源芯片的核心
    的頭像 發(fā)表于 03-28 15:37 ?6792次閱讀

    如何將TX模式設(shè)備MULTICH_CONNECT_PCB連接到RX模式設(shè)備?

    好的,正在查看 I2S 接口。 I2S 模塊具有 tx/rx 模式。 如何將 TX模式設(shè)備MULTICH_CONNECT_PCB連接到 RX 模式設(shè)備? 在 RX 模式下,有沒有時(shí)鐘輸入或幀輸入?
    發(fā)表于 03-04 07:53

    CAN如何將雙通道ADC連接到FX3控制器?

    我想用 FX3 控制器直接連接具有 250MSPS 的 14 位雙通道 ADC 的并行 LVDS 輸出。 從器件的數(shù)據(jù)表中可以清楚地看出,我 CAN ADC輸出連接到GPIFII接口的引腳
    發(fā)表于 02-27 06:25

    如何將LED連接到Arduino并使其閃爍

     在本快速入門指南中,您將學(xué)習(xí)如何將 LED 連接到 Arduino 并使其閃爍。
    的頭像 發(fā)表于 02-11 10:53 ?1959次閱讀
    <b class='flag-5'>如何將</b>LED<b class='flag-5'>連接到</b>Arduino<b class='flag-5'>板</b>并使其閃爍

    如何將按鈕連接到Arduino

    在本快速入門指南中,您將學(xué)習(xí)如何將按鈕連接到Arduino,并根據(jù)按鈕是否被按下來讀取HIGH或LOW。您將使用電路上隨附的發(fā)光二極管 (LED)通過按鈕打開和關(guān)閉,以便驗(yàn)證按鈕按
    的頭像 發(fā)表于 02-11 10:52 ?3293次閱讀
    <b class='flag-5'>如何將</b>按鈕<b class='flag-5'>連接到</b>Arduino<b class='flag-5'>板</b>

    如何將光敏電阻連接到Arduino并讀取電壓

    在本快速入門指南中,您將學(xué)習(xí)如何將光敏電阻連接到Arduino并讀取電壓。您將首先使用串行監(jiān)視器來了解光傳感器的行為方式,然后構(gòu)建一個(gè)電路,在天黑時(shí)自動(dòng)打開燈。
    的頭像 發(fā)表于 02-11 10:45 ?3379次閱讀
    <b class='flag-5'>如何將</b>光敏電阻<b class='flag-5'>連接到</b>Arduino<b class='flag-5'>板</b>并讀取電壓

    如何將HC-SR04連接到Arduino并編寫一個(gè)簡單的程序來測量距離

    一種流行的Arduino超聲波傳感器是HC-SR04。它廣泛用于非接觸式距離測量,通常用于機(jī)器人和自動(dòng)化項(xiàng)目。本指南向您展示如何將HC-SR04連接到Arduino并編寫一個(gè)簡單的程序來測量距離。
    的頭像 發(fā)表于 02-11 10:17 ?2127次閱讀
    <b class='flag-5'>如何將</b>HC-SR04<b class='flag-5'>連接到</b>Arduino并編寫一個(gè)簡單的程序來測量距離

    如何將增量旋轉(zhuǎn)編碼器與Arduino連接

    在本教程中,您將學(xué)習(xí)如何將增量旋轉(zhuǎn)編碼器與Arduino連接,以讀取旋鈕的運(yùn)動(dòng)。這對于在機(jī)器人和其他應(yīng)用程序中創(chuàng)建用戶界面或讀取機(jī)械位置非常有用。
    的頭像 發(fā)表于 02-11 10:00 ?1284次閱讀
    <b class='flag-5'>如何將</b>增量旋轉(zhuǎn)編碼器與Arduino<b class='flag-5'>連接</b>

    profinet轉(zhuǎn)etherCat如何將數(shù)控轉(zhuǎn)塔沖床正確連接步進(jìn)電機(jī)

    profinet轉(zhuǎn)etherCat如何將數(shù)控轉(zhuǎn)塔沖床正確連接步進(jìn)電機(jī)
    的頭像 發(fā)表于 01-26 14:09 ?329次閱讀
    profinet轉(zhuǎn)etherCat<b class='flag-5'>如何將</b>數(shù)控轉(zhuǎn)塔沖床正確<b class='flag-5'>連接</b>步進(jìn)電機(jī)

    什么是端子

    端子提供簡化的導(dǎo)線連接解決方案。雖然焊接提供永久連接,但無端子在可能需要斷開連接進(jìn)行維修或
    的頭像 發(fā)表于 01-19 15:32 ?474次閱讀

    雙頻收發(fā)系統(tǒng)如何將ADC和DAC與xilinx v6連接使用?

    如題,請問一下ADI公司的收發(fā)系統(tǒng)如何將ADC和DAC與xilinx v6連接使用。比如貴公司設(shè)計(jì)資料中提供的MSDPD收發(fā)版就是一個(gè)例子。我想請問有沒有可以實(shí)現(xiàn)共時(shí)雙頻收發(fā),可以與xilinx v6
    發(fā)表于 12-11 07:51