“第一课--LED灯闪烁实验(面包板的使用)/zh”的版本间的差异
(→设备) |
963029146@qq.com(讨论 | 贡献) 小 |
||
(未显示3个用户的9个中间版本) | |||
第7行: | 第7行: | ||
==设备== | ==设备== | ||
− | *'''[[Microduino-Core]]''' | + | *'''[[Microduino-Core/zh]]''' |
Microduino-Core 是以 Atmel ATmega328P,ATmega168PA 系列为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 | Microduino-Core 是以 Atmel ATmega328P,ATmega168PA 系列为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 | ||
− | + | *'''[[Microduino-USBTTL/zh]]''' | |
− | |||
− | *'''[[Microduino- | ||
下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。 | 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。 | ||
− | |||
− | |||
*其他硬件设备 | *其他硬件设备 | ||
第24行: | 第20行: | ||
**USB数据连接线 一根 | **USB数据连接线 一根 | ||
− | + | [[File:lesson1Main.jpg|600px|center|thumb]] | |
[[File:lesson1All.jpg|600px|center|thumb]] | [[File:lesson1All.jpg|600px|center|thumb]] | ||
第33行: | 第29行: | ||
===电阻、led=== | ===电阻、led=== | ||
电阻用作限流,以防led被烧坏。一般是 红绿LED的电压一般是1.8~2.4V,蓝白是2.8~4.2V ,3mmLED的额定电流1~10mA ,5mmLED的额定电流5~25mA ,10mmLED的额定电流25~100mA。可根据R=U/I来计算相应的阻值。一般几百欧就可以。 | 电阻用作限流,以防led被烧坏。一般是 红绿LED的电压一般是1.8~2.4V,蓝白是2.8~4.2V ,3mmLED的额定电流1~10mA ,5mmLED的额定电流5~25mA ,10mmLED的额定电流25~100mA。可根据R=U/I来计算相应的阻值。一般几百欧就可以。 | ||
+ | |||
+ | led正负判断 | ||
+ | |||
+ | 方法一:目测led内部,支架大连接的引脚是负极,支架小的链接的引脚是正极。 | ||
+ | |||
+ | 方法二:对于崭新的led,引脚有长短,因此直接看引脚的长短,引脚长的为正极,短的为负极。 | ||
+ | |||
+ | 万用表检测led灯好坏 | ||
+ | |||
+ | 用模拟万用表检测发光二极管时,必须使用“R×l0k”档。因为led的管压降大约为3V,而模拟万用表处于“R×lk” 档,表内电池仅为1.5V。低于管压降。无论正、反向接入,led都不可能导通,从而无法检测。“R×10k”档时表内接有9V(或 15V)高压电池,高于管压降,所以可以用来检测led。 | ||
+ | |||
+ | 因为模拟万用表黑表笔(与表内电池正极相连)表示正极,与红表笔(与表内电池负极相连)表示是负极,所以需要将模拟万用表的黑表笔接led的正极,红表笔接led的负极。如果led灯发光则证明led灯是好的。 | ||
+ | |||
+ | 用数字万用表用二极管档即可,而数字万用表黑表笔表示负极,红表笔表示正极,与模拟万用表相反,所以需要将数字万用表的红表笔接led的正极,黑表笔接led的负极。如果led灯发光则证明led灯是好的。 | ||
==实验原理图== | ==实验原理图== | ||
第38行: | 第48行: | ||
[[File:schematic.jpg|600px|center|thumb]] | [[File:schematic.jpg|600px|center|thumb]] | ||
+ | |||
+ | [[File:lesson1Setup.jpg|600px|center|thumb]] | ||
==程序== | ==程序== | ||
第55行: | 第67行: | ||
</source> | </source> | ||
− | * | + | *采用millis():返回自Microduino板开始运行当前程序的毫秒数 |
<source lang="cpp"> | <source lang="cpp"> | ||
int ledPin=13; | int ledPin=13; | ||
第93行: | 第105行: | ||
==结果== | ==结果== | ||
程序下载后,可看到led每隔1s闪烁一次。 | 程序下载后,可看到led每隔1s闪烁一次。 | ||
+ | [[File:lesson1OK.jpg|600px|center|thumb]] | ||
==视频== | ==视频== | ||
|} | |} | ||
+ | |||
+ | http://v.youku.com/v_show/id_XNzEwMDA0NzA4.html |
2015年8月6日 (四) 02:12的最新版本
Language | English |
---|
目的通过Microduino来控制一个led灯的亮灭,实际上是接触如何控制Microduino核心板的I/O口,这样大家就可以举一反三,发挥极大想象空间,为以后的学习打好基础。 设备Microduino-Core 是以 Atmel ATmega328P,ATmega168PA 系列为核心的8位单片机开发核心板,是一个开源的、与 Arduino UNO 兼容的控制器模块。 下载程序模块,可直接与 Microduino-Core 或者Microduino-Core+ 相连,让他们与计算机通讯。它的下载接口用的是MicUSB,这也是Microduino小巧的一部分。Microduino大小与一枚一元硬币差不多大。下载线与绝大多数智能手机usb数据线是一样的,方便实用。
面包板纵向每五个点都接在一起,横向每25个点是接在一起,有的面包板式50个点都接在一起,所以连接之前要确定好,以免产生产生错误结果。旁边两排的50个点一排用作GDN,一排用作VCC。 电阻、led电阻用作限流,以防led被烧坏。一般是 红绿LED的电压一般是1.8~2.4V,蓝白是2.8~4.2V ,3mmLED的额定电流1~10mA ,5mmLED的额定电流5~25mA ,10mmLED的额定电流25~100mA。可根据R=U/I来计算相应的阻值。一般几百欧就可以。 led正负判断 方法一:目测led内部,支架大连接的引脚是负极,支架小的链接的引脚是正极。 方法二:对于崭新的led,引脚有长短,因此直接看引脚的长短,引脚长的为正极,短的为负极。 万用表检测led灯好坏 用模拟万用表检测发光二极管时,必须使用“R×l0k”档。因为led的管压降大约为3V,而模拟万用表处于“R×lk” 档,表内电池仅为1.5V。低于管压降。无论正、反向接入,led都不可能导通,从而无法检测。“R×10k”档时表内接有9V(或 15V)高压电池,高于管压降,所以可以用来检测led。 因为模拟万用表黑表笔(与表内电池正极相连)表示正极,与红表笔(与表内电池负极相连)表示是负极,所以需要将模拟万用表的黑表笔接led的正极,红表笔接led的负极。如果led灯发光则证明led灯是好的。 用数字万用表用二极管档即可,而数字万用表黑表笔表示负极,红表笔表示正极,与模拟万用表相反,所以需要将数字万用表的红表笔接led的正极,黑表笔接led的负极。如果led灯发光则证明led灯是好的。 实验原理图原理图有两种接法,一是led的阴极接Microduino的GND,阳极接Microduino数据控制口13,这样就是高电平点亮led,二是led的阴极接Microduino的数据控制口13,阳极接Microduino的VCC,这样就是低电平点亮led。 程序
int led = 13;//定义引脚
void setup() {
pinMode(led, OUTPUT); //定义microduino数字13脚为输出
}
void loop() {
digitalWrite(led, HIGH); //数据13口输出高,若接法是高电平点亮则点亮,反之则熄灭
delay(1000); // 延时1s
digitalWrite(led, LOW); //数据13口输出低,若接法是高电平点亮则熄灭,反之则点亮
delay(1000); // 延时1s
}
int ledPin=13;
#define TIME 1000
long time1=0,time2=0;
void setup()
{
pinMode(ledPin,OUTPUT);
}
void loop()
{
if(millis()<time2+TIME)
{
digitalWrite(ledPin,HIGH);
time1=millis();
}
else
{
digitalWrite(ledPin,LOW);
if(millis()>time1+TIME)
time2=millis();
}
}
采用millis()比delay()函数效果更好,占用资源少,对系统拖延较少。 程序下载方法
结果程序下载后,可看到led每隔1s闪烁一次。 视频 |