0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将micro:bit连接到无焊面包板

454398 来源:网络整理 作者:网络整理 2019-11-28 09:47 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

概述

在本课程中,您将学习如何将micro:bit连接到无焊面包板,以及如何打开和关闭LED,控制其亮度以及如何使用三个LED发出交通信号。

您将首先使单个LED闪烁,然后控制LED的亮度,最后再添加两个LED以使交通信号如上所示。

部分

要关注本课程中的所有活动,您将需要以下部分。您还需要一个微型USB导线将micro:bit连接到计算机。

如何将micro:bit连接到无焊面包板

》 BBC micro:bit

产品ID:3530

英国入侵就在这里!不,不是音乐。..微控制器!美国的新手是学习编程和电子技术的最新,最简单的方法-BBC 。..

$ 14.95

库存中

添加到购物车

半尺寸面包板

产品编号:64

这是一个可爱的半尺寸面包板,适用于小型项目。它是2.2英寸x 3.4英寸(5.5厘米x 8.5厘米),中间有一个标准的双条带,两个上都有两个电源导轨。..

库存

缺货

小鳄鱼夹至公跳线束-12件

产品ID:3255

这些电缆用于具有非标头友好型表面的面包板将成为您最好的朋友!您将不再有长长的短吻鳄皮夹了。..

$ 7.95

入库价

div》

添加到购物车

超级明亮的5mm红色LED(25个装)

产品ID:297

需要一些真正的LED吗?我们是这些红色红色LED的忠实拥护者,实际上我们只在套件中使用它们。它们非常明亮,并具有约20度的LED光束。他们去。..

$ 8.00

入库

添加到购物车

超亮黄色5mm LED(25件装)

产品ID:2700

需要一些真正亮的LED吗?我们是这些黄色透明LED的忠实拥护者,实际上,我们仅在套件中使用它们。它们非常明亮!它们很容易进入面包板并。..

$ 4.95

入库存

添加到购物车

超亮绿色5mm LED(25件装)

产品编号:300

需要一些真正明亮的LED吗?我们是这些透明绿色LED的忠实拥护者,实际上我们只在套件中使用它们。它们非常明亮,并具有约20度的LED光束。他们去。..

$ 8.00

入库

添加到购物车

直通电阻-470 ohm 5%1/4W-每包25个

产品ID:2781

ΩMG!您将无法抵抗这些方便的电阻器包!那么,从轴向上看,它们可以为您提供所有的抵抗力!这是25包。..

$ 0.75

存货

添加到购物车

面包板布局

如下图所示连接电阻和LED。确保LED的较长引线(正极引线)在左侧。

将micro:bit连接到面包板时,最好将鳄鱼夹垂直放入micro:bit的垫板上的孔中,否则夹可能会滑落或意外

无焊面包板的工作方式是在您戳入组件引线的孔的后面找到一个金属夹。

p》

将micro:bit的pin0连接到面包板第3行的红色引线实际上将引线连接到该行的每个孔位置(至少对于左行的5行而言)。然后,电阻器的右侧连接到右侧排第3行下方的线夹,从而连接到LED的正极。

面包板两侧的长列的工作方式不同从面包板中央区域的主要连接排开始。这些长列中的每一个都由一个通常用于供电的长夹子组成。在这种情况下,右列(旁边有一条蓝线)连接到micro:bit的GND连接,也连接到LED的负极。

电阻是必要的,以限制流过LED的电流。不允许从micro:bit的数字输出汲取超过3mA的电流。 470Ω电阻器将LED电流限制在3mA以下。

闪烁LED

首先,让我们的LED闪烁。使LED闪烁的方法是一遍又一遍地遵循以下代码说明序列:

打开LED

延迟一段时间

关闭LED

延迟一段时间

此代码取决于您选择使用的编程平台。

JavaScript块代码

JavaScript块代码编辑器直接嵌入在下面的此页面中。在编辑器中,您可以单击“下载”按钮(右下方),然后将下载的文件复制到您的micro:bit。或者,您可以单击此处在单独的浏览器选项卡中打开编辑器。

要安装程序,请将十六进制文件复制到您的micro:bit 。请参阅本指南以开始使用Javascript块。

Forever 块将重复运行该块中包含的所有代码。

MicroPython

要运行MicroPython版本代码中,请在此处打开在线Python编辑器,并将以下代码粘贴到编辑器窗口中。

下载:文件

复制代码

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

程序首先导入 microbit 包含用于控制引脚开和关所需的 write_digital 函数的库。

while 循环将重复其中包含的命令,直到您拔出微型插头。 :位这些命令首先打开该引脚,延迟半秒钟,然后将其关闭,然后再次延迟。

Arduino

请按照本指南确保已为micro:bit设置了Arduino环境。

现在通过单击 File 菜单和 New 来启动新的Sketch。然后将以下代码粘贴到编辑器窗口中。

下载:文件

复制代码

// 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代码略有不同,因为使用Arduino时,您必须指定该引脚用作输出,而对于其他语言,这是在您第一次将该引脚用作引脚时自动发生的。输出。

交通信号

此该示例使用三个LED制作模型交通信号灯。如果愿意,可以使用所有红色LED,但是如果使用红色,黄色和绿色,则更现实。

LED依次以红色,黄色,绿色,黄色循环,然后再次变回红色。

要添加额外的LED和电阻器,请按照以下面包板布局所示进行布线。

请确保LED正确定位,并且较长的正极引线(阳极)向左。

JavaScript块代码

JavaScript块代码编辑器直接嵌入在下面的此页面中。在编辑器中,您可以单击“下载”按钮(右下方),然后将下载的文件复制到您的micro:bit。或者,您可以单击此处在单独的浏览器选项卡中打开编辑器。

MicroPython代码

下面列出了MicroPython代码。

下载:文件

复制代码

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版本与其他两个版本非常相似。

下载:文件

复制代码

// 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亮度控制

除了打开和关闭LED之外,还可以使用它来控制LED的亮度。

在在此示例中,A按钮将使LED调光器变亮,而B按钮将使它变亮。同时,micro:bits内置的LED显示屏将显示0到9之间的数字,指示亮度级别。

JavaScript阻止代码

要在单独的标签中打开JavaScript阻止代码,请单击此处。

实际上,这里发生了很多事情。让我们以开始时的 块开始。当micro:bit启动时,此块仅运行一次,它定义了四个变量:

min_power-当0熄灭且1023为最大亮度时,LED的最小输出水平

max_power-LED的最大输出电平。这两个变量允许您设置亮度的可能范围。

power_step-亮度将以10步变化,因此此值是根据最小值和最大值计算的。

亮度-亮度级别,介于0到10之间的一个数字。

永远重复运行的 forever 循环设置名为 power 根据亮度级别。

要增加和减少亮度,使用了两个处理程序。这些响应按下按钮A或按钮B,然后显示亮度级别并使用 analog write 块在 pin0 上设置输出级别。

MicroPython

这是MicroPython代码

下载:文件

复制代码

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代码有所不同,因为它使用了Adafruit GFX库。

下载:文件

复制代码

#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的计时。

对于交通信号项目,您还可以尝试更改代码,使其表现得像人行横道,并且灯光会根据您的需求而变化按下按钮A。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    243

    文章

    24434

    浏览量

    687416
  • 面包板
    +关注

    关注

    4

    文章

    299

    浏览量

    18678
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    技术分享 | 迅为RK3568开发如何将 Linux 板卡虚拟成U盘

    技术分享 | 迅为RK3568开发如何将 Linux 板卡虚拟成U盘
    的头像 发表于 06-04 10:57 885次阅读
    技术分享 | 迅为RK3568开发<b class='flag-5'>板</b><b class='flag-5'>如何将</b> Linux 板卡虚拟成U盘

    Jumperless V5:无需跳线的面包

    跳线的极客巫师一样进行硬件原型设计 。它是一个硬件集成开发环境(IDE),基于模拟特性 RP2350B 的开发、装满线材的抽屉、以及堆满测试设备的工作台(包括电源、万用表、示波器、函数发生器和逻辑分析仪)全部塞进了一块面包
    的头像 发表于 04-08 11:19 996次阅读
    Jumperless V5:无需跳线的<b class='flag-5'>面包</b><b class='flag-5'>板</b>

    stm32f103cbu6底部盘能不能连接到VSS?

    stm32f103cbu6底部盘能不能连接到VSS
    发表于 03-10 07:51

    请问如何将DLP lightcrafter连接成为普通的投影仪使用?

    请问如何将DLP lightcrafter连接成为普通的投影仪使用? 通过mini HDMI连接到我的电脑后,电脑能显示一个叫LCr 4500的屏幕,但是lightcrafter不能显示屏幕内容,请问怎么操作,谢谢。
    发表于 02-21 09:43

    使用插件Excel连接到MySQL/MariaDB

    使用插件 Excel 连接到 MySQL/MariaDB 适用于 MySQL 的 Devart Excel 插件允许您将 Microsoft Excel 连接到 MySQL 或 MariaDB
    的头像 发表于 01-20 12:38 1129次阅读
    使用插件<b class='flag-5'>将</b>Excel<b class='flag-5'>连接到</b>MySQL/MariaDB

    回流与多层连接问题

    连接电子元件与PCB的主要焊接技术,其在多层中的应用面临着一系列挑战。 一、回流技术简介 回流是一种铅焊接技术,它通过
    的头像 发表于 01-20 09:35 895次阅读

    回流与波峰的区别

    在电子制造领域,焊接技术是连接电路板上各个元件的关键步骤。回流和波峰是两种广泛使用的焊接方法,它们各有特点和适用场景。 一、回流 回流
    的头像 发表于 01-20 09:27 4532次阅读

    ADS1258的底部热盘到底该连接到那个脚?

    请问 在正负电源的系统中, ADS1258 的底部热盘到底该连接到那个脚? 29脚数字地?32脚模拟地?还是5脚 参考地??接错了,或者没有接悬空有什么影响呢?
    发表于 01-09 08:03

    EE-212:AD74111单声道音频编解码器评估连接到ADSP-21161N SHARC® EZ-KIT Lite

    电子发烧友网站提供《EE-212:AD74111单声道音频编解码器评估连接到ADSP-21161N SHARC® EZ-KIT Lite.pdf》资料免费下载
    发表于 01-08 14:27 0次下载
    EE-212:<b class='flag-5'>将</b>AD74111单声道音频编解码器评估<b class='flag-5'>板</b><b class='flag-5'>连接到</b>ADSP-21161N SHARC® EZ-KIT Lite<b class='flag-5'>板</b>

    EE-194:AD1836A评估连接到ADSP-21161N SHARC EZ-KIT Lite

    电子发烧友网站提供《EE-194:AD1836A评估连接到ADSP-21161N SHARC EZ-KIT Lite.pdf》资料免费下载
    发表于 01-07 14:31 0次下载
    EE-194:<b class='flag-5'>将</b>AD1836A评估<b class='flag-5'>板</b><b class='flag-5'>连接到</b>ADSP-21161N SHARC EZ-KIT Lite

    EE-321:Blackfin处理器连接到AD7656 SAR ADC

    电子发烧友网站提供《EE-321:Blackfin处理器连接到AD7656 SAR ADC.pdf》资料免费下载
    发表于 01-06 16:04 0次下载
    EE-321:<b class='flag-5'>将</b>Blackfin处理器<b class='flag-5'>连接到</b>AD7656 SAR ADC

    EE-219:字符LCD面板连接到ADSP-21262 SHARC DSP

    电子发烧友网站提供《EE-219:字符LCD面板连接到ADSP-21262 SHARC DSP.pdf》资料免费下载
    发表于 01-05 10:10 0次下载
    EE-219:<b class='flag-5'>将</b>字符LCD面板<b class='flag-5'>连接到</b>ADSP-21262 SHARC DSP

    在实际的电气连接中,是直接Exposed Thermal Pad连接到AGND吗?

    在阅读ADS8568数据手册时,在第6页至第9页Exposed Thermal Pad介绍,通过查找的方式发现也无Exposed Thermal Pad相关介绍。请问在实际的电气连接中,直接
    发表于 12-24 06:04

    e络盟达成micro:bit分销里程碑

    成就不仅彰显了e络盟在全球电子元器件分销领域的卓越实力,更体现了其对青少年编程教育的坚定承诺。 作为安富利旗下的一员,e络盟一直致力于为全球客户提供高质量的电子元器件产品和解决方案。此次与Micro:bit教育基金会的合作,更是
    的头像 发表于 12-23 16:26 950次阅读

    e络盟实现重要里程碑:成功分销 1000 万套 micro:bit 设备

    安富利旗下全球电子元器件产品与解决方案分销商e络盟与合作伙伴 Micro:bit 教育基金会日前携手宣布,e络盟成功达成了制造并分销超过 1000 万台 BBC micro:bit
    的头像 发表于 12-12 10:34 1031次阅读
    e络盟实现重要里程碑:成功分销 1000 万套 <b class='flag-5'>micro</b>:<b class='flag-5'>bit</b> 设备