站内搜索
发作品签到
标准版

arduino拓展版

工程标签

483
0
0
0

简介

可实现小风扇扇风、计时、流水灯照明等功能。

简介:可实现小风扇扇风、计时、流水灯照明等功能。

开源协议

Public Domain

创建时间:2024-06-03 23:01:23更新时间:2024-09-09 18:05:24

描述

  1. 需求分析

本项目的目标是设计一个基于Arduino的秒表显示系统,并且能够控制小风扇和实现LED流水灯效果。具体需求如下:

使用TM1637显示器显示秒数。

控制小风扇,根据秒数的前30秒和后30秒改变风扇状态。

实现LED流水灯效果。

  1. 方案设计

本设计包含以下主要部分:

硬件部分:使用Arduino控制TM1637显示器、小风扇和LED灯。

软件部分:使用Arduino编程实现秒数计时、风扇控制和LED流水灯效果。

  1. 硬件设计

硬件设计包括以下内容:

原理图设计:使用立创EDA设计软件进行原理图设计。原理图如下:

小风扇控制单元:

引脚配置:INA (Pin 10), INB (Pin 11)

电子时钟单元:

引脚配置:CLK (Pin 13), DIO (Pin 12)

流水灯单元:

引脚配置:LED引脚 (Pin 2-7)

网络标号和端口配置:

 

CLK (TM1637) -> Arduino Pin 13

DIO (TM1637) -> Arduino Pin 12

INA (Fan) -> Arduino Pin 10

INB (Fan) -> Arduino Pin 11

LED (Pin 2-7) -> Arduino Pin 2-7

器件清单:

 

TM1637显示器

小风扇

LED灯若干

Arduino开发板

电阻、电容等

  1. 软件设计

软件设计包括以下部分:

功能模块:

秒数计时模块

风扇控制模块

LED流水灯模块

秒数计时模块:

功能描述:每秒计时并更新显示。

流程图:略。

核心源码:

cpp

复制代码

#include

#define CLK 13

#define DIO 12

TM1637Display display(CLK, DIO);

unsigned long previousMillis = 0;

const long interval = 1000;

int seconds = 0;

 

void setup() {

  display.setBrightness(0x0f);

}

 

void updateTime() {

  seconds++;

  if (seconds >= 60) seconds = 0;

}

 

void displayTime() {

  display.showNumberDec(seconds, false);

}

 

void loop() {

  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {

    previousMillis = currentMillis;

    updateTime();

    displayTime();

  }

}

风扇控制模块:

功能描述:根据秒数控制风扇开关。

流程图:略。

核心源码:

cpp

复制代码

#define INA 10

#define INB 11

 

void setup() {

  pinMode(INA, OUTPUT);

  pinMode(INB, OUTPUT);

}

 

void loop() {

  if (seconds < 30) {

    digitalWrite(INA, HIGH);

    digitalWrite(INB, LOW);

  } else {

    digitalWrite(INA, LOW);

    digitalWrite(INB, LOW);

  }

}

LED流水灯模块:

功能描述:依次点亮和熄灭LED。

流程图:略。

核心源码:

cpp

复制代码

#define LED_PIN_START 2

#define LED_PIN_END 7

 

void setup() {

  for (int pin = LED_PIN_START; pin <= LED_PIN_END; pin++) {

    pinMode(pin, OUTPUT);

  }

}

 

void loop() {

  for (int pin = LED_PIN_START; pin <= LED_PIN_END; pin++) {

    digitalWrite(pin, HIGH);

    delay(100);

    digitalWrite(pin, LOW);

  }

}

  1. 调试过程

硬件调试:

连接TM1637显示器、电机和LED灯至Arduino。

使用示波器检查各引脚信号,确保信号正常。

调试时的实物连接截图:

软件调试:

上传代码至Arduino,观察显示器、风扇和LED灯是否按预期工作。

记录调试过程中出现的问题及解决方法。

  1. 总结

本次设计实现了基于Arduino的秒表显示系统,同时实现了风扇控制和LED流水灯效果。通过项目的实现,掌握了TM1637显示器的使用方法,以及Arduino控制外设的基本技巧。

  1. 参考文献

Arduino官方文档:https://www.arduino.cc/

TM1637显示器使用手册

立创EDA设计软件使用指南

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
VID_20240609_111149.mp4
0
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航