2 Arduino基本数字输出功能LED灯 | 您所在的位置:网站首页 › arduino的led灯实验 › 2 Arduino基本数字输出功能LED灯 |
Arduino基本数字输出功能LED灯
I/O端口原理单片机知识点补充实战1——闪烁LED指示灯实战2——LED简易流水灯
I/O端口原理
I/O英文全称是 Input/Output,即输入/输出。单片机端口是标准双向口,就是说,单片机的端口既可以作为输出信号端(如控制灯亮灭、继电器吸合释放、喇叭发声等),也可以作为输入信号端(如按键信号输入、红外形输入、开关信号输入等) 单片机知识点补充Arduino UNO R3: 引脚图 实物图 高低电平:一般来说+5V为电平1,接地为0. LED:LED的长引脚是正极,LED内部电极体积小的正极。 面包板:从原理图可以看到,面包板上下区是横向5位相通,一般用于接电源和接地,中间区域是纵向5位相通,通常用于放置电路元件和电路连接线。(面包板的核心组件是内部的金属弹性卡槽) 特别注意当我们使用单片机进行连接电路时,首先要设计好电路,如LED灯的电流大小要通过加电阻进行控制。(由VCC接到GND接法LED灯称之为拉电流;由VCC接到VCC接法称之为灌电流) 灌电流连接方式称为:共阳连接(led的阳极连接在一起) 拉电流连接方法称为:共阴连接(led的阴极连接在一起) 法一:利用CPU独立工作 // LED连接到引脚13 // 引脚定义: int LED = 13; // 复位后初始化内容 void setup() { // 初始化数字端口为输出模式 pinMode(LED_BUILTIN, OUTPUT); } // 主循环 void loop() { digitalWrite(LED_BUILTIN, HIGH); // LED引脚置高电平 delay(1000); // 延迟1s digitalWrite(LED_BUILTIN, LOW); // LED引脚变为低电平 delay(1000); // 延迟1s }法二:CPU与定时器一起工作(即不使用延时函数的led闪烁程序) // 定义引脚 const int ledPin = 13; // led连接的引脚 // 变量 int ledState = LOW; // led状态,亮或者灭 long previousMillis = 0; // 存储最后一次的led状态 // 这里使用了长整型变量,因为使用了ms,瞬间的数值变化非常大。 long interval = 1000; // 间隔闪烁的时间长度 void setup() { // 初始化引脚输出模式 pinMode(ledPin, OUTPUT); } void loop() { // 这里还可以添加其他的程序 unsigned long currentMillis = millis(); if(currentMillis - previousMillis > interval) { // 保存当前值,方便下次再次和当前时间比较 previousMillis = currentMillis; // 如果led熄灭就把它点亮,反之亦然 if (ledState == LOW) ledState = HIGH; else ledState = LOW; // 把对应的LED状态反应到led引脚上。 // 之前都是用变量再处理,处理完成后把最终结果输出到终端。 digitalWrite(ledPin, ledState); } }程序思路如下: 首先熄灭所有LED,然后点亮第一个,等待200ms熄灭第一个,然后点亮第二个,等待200ms,熄灭第二个然后… // 引脚定义 const int ledCount = 6; // led个数 int ledPins[] = { 0,1,2, 3, 4, 5, }; // 对应的led引脚 void setup() { // 循环设置,把对应的led都设置成输出 for (int thisLed = 0; thisLed // 熄灭所有led,不同的电路连接也会得到点亮所有led for (int num = 0; num digitalWrite(ledPins[num], LOW); delay(200); digitalWrite(ledPins[num], HIGH); // 这样就形成了简易的led流水效果 } } |
CopyRight 2018-2019 实验室设备网 版权所有 |