Arduino基础入门篇06—流动的LED灯

本文介绍如何使用Arduino Uno R3开发板和面包板搭建电路,实现6个LED灯的流动显示效果。通过设置数字I/O引脚为输出模式,利用for循环依次控制每个LED灯的亮灭,达到流畅的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇介绍了Arduino数字I/O引脚及相关函数,并点亮了板载LED灯。本篇将使用面包板搭建电路,多个LED灯配合显示流动效果。

1. 实验材料

  • Uno R3开发板
  • 配套USB数据线
  • 面包板及配套连接线
  • 6个LED灯
  • 6个220Ω电阻

2. 实验步骤

  1. 根据原理图搭建电路

    直插式LED灯有两个引脚,长引脚为正极,短引脚为负极。LED灯点亮就是电流从正极流入,从负极流出。6个LED灯的负极连接到开发板的GND引脚,正极分别连接220Ω限流电阻连接到开发板的数字I/O引脚。

    实验原理图如下图所示:

    流水灯电路连接图

    实物连接图如下图所示:

    实物连接图

  2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

/*
 * Led_Flash
 * 依次点亮1~6号LED灯,依次熄灭6~1号LED灯,如此循环
 */

int delayTime = 200;
int ledPin;

void setup()
{
  for (ledPin = 1; ledPin < 7; ledPin++) //依次设置1~6个数字引脚为输出模式
  { 
	pinMode(ledPin, OUTPUT); //设置第ledPin个引脚为输出模式
  }
}
void loop()
{
  for (ledPin = 1; ledPin < 7; ledPin++) //每隔delayTime依次点亮1~6引脚相连的led灯
  {
	digitalWrite(ledPin, HIGH); //点亮ledPin引脚相连的led灯
	delay(delayTime);//延时delayTime
  }

  for (ledPin = 6; ledPin > 0; ledPin--) //每隔delayTime依次熄灭6~1引脚相连的led灯
  {
	digitalWrite(ledPin, LOW); //熄灭ledPin引脚相连的led灯
	delay(delayTime);//延时delayTime
  }
}

  1. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。

程序下载

3. 实验现象

LED灯依次点亮,依次熄灭,达到流动效果。

流水灯效果

4. 程序分析

在setup部分通过for循环将16号引脚设置为输出模式。在loop部分,通过两个for循环依次点亮16号LED灯,依次熄灭6~1号LED灯,使用的依然是digitalWrite函数。

延时时间定义为200,你可以改变它来控制流动速度。还可以通过修改程序中引脚的输出顺序来尝试更多不同的点亮LED的方式。

更多内容,欢迎关注我的公众号。 微信扫一扫下方二维码即可关注:
扫码加入微信公众号:TonyCode

Vue3 + TypeScript (简称V3TS) 是结合了 Vue.js 的下一代版本和 TypeScript 这种强类型的 JavaScript 变体来构建应用的技术组合。手撕甘特图通常是一个时间线视图,用于展示项目的进度、任务分配或计划安排。在 V3TS 中制作甘特图,你可以遵循以下步骤: 1. **环境配置**:首先,确保已安装 Vue CLI v3,并设置支持 TypeScript。可以使用命令 `vue create` 创建一个新的 Vue3项目并选择 TypeScript 作为配置。 2. **引入库**:由于甘特图需要数据驱动,你可能需要引入第三方库如 `antv-g6` 或者 `vis` 来处理图形绘制。通过npm或yarn添加依赖。 3. **声明组件**:创建 TypeScript 类型化的组件,例如 `TaskItem.vue`,其中包含任务对象的数据类型 (`Task`) 和方法 (`generateGanttGraph()`). ```typescript import { Component, Prop } from 'vue'; interface Task { id: number; name: string; start: Date; end: Date; } @Component({ // ... }) export default class TaskItem extends Vue { @Prop() task: Task; generateGanttGraph(): void { // 使用甘特图库生成图表逻辑 } } ``` 4. **数据绑定**:在组件内部或父组件中,管理任务列表 (`Task[]`) 并将其绑定到视图上,以便更新显示。 5. **渲染图表**:在组件的模板部分,利用甘特图库提供的 API 渲染任务节点,传递任务数据。 6. **事件监听**:为了动态调整和交互,可以添加事件监听器,比如拖拽、点击事件等。 7. **样式定制**:用 CSS 样式美化甘特图,使其符合项目的视觉风格。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值