Arduino与LED深度握手

简介: Arduino与LED深度握手

1.0 简介

  • **发光二极管(LED)**是一种常用的发光器件,通过电子与空穴复合释放能量发光,它在照明、显示等领域应用广泛。
  • 当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,氮化镓二极管发蓝光。因化学性质又分有机发光二极管OLED和无机发光二极管LED。光的三原色是红绿蓝,颜料的三原色是平红黄青。
  • 本篇博文将介绍如何使用arduino逐步实现LED控制:有源蜂鸣器伴随点灯,串口点灯,呼吸灯。

发光二极管可高效地将电能转化为光能,在现代社会具有广泛的用途,如照明、平板显示、医疗器件等。发光二极管简称为LED。由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。

这种电子元件早在1962年出现,早期只能发出低光度的红光,之后发展出其他单色光的版本,时至今日能发出的光已遍及可见光、红外线及紫外线,光度也提高到相当的光度。而用途也由初时作为指示灯、显示板等;随着技术的不断进步,发光二极管已被广泛地应用于显示器和照明。

           1.png

                                    2.jpg

2.0 准备

  • 软件:下载arduino的开发环境
  • 硬件:arduino uno板一块、数据线一条、杜邦线和220欧电阻(分压保护)若干、红绿蓝三种LED灯珠各一、面包板

3.0 接线图

  • 红绿蓝分别接9/10/11pwm引脚,有源蜂鸣器输出接9号中间串一个220欧姆电阻起分压电路,保护LED和控制板,避免过电流烧毁啊😜😜😜

1.jpg

4.0 三个实验的程序

接下来依次展示有源蜂鸣器伴随点灯,串口点灯,呼吸灯三种程序。🤞🤞🤞

4.1 有源蜂鸣器伴随点灯

逻辑思路:红绿蓝初始化,都给低电平,主程序红绿蓝依次交替点亮熄灭

void setup(){     //初始化9/10/11三个端口
  pinMode(9, OUTPUT); //9号端口设置为输出
  pinMode(10, OUTPUT);  //10号端口设置为输出
  pinMode(11, OUTPUT);  //11号端口设置为输出
  digitalWrite(9,LOW);  //给9号低电平
  digitalWrite(10,LOW); //给10号低电平
  digitalWrite(11,LOW); //给11号低电平
}
void loop(){      //主程序
  delay(2000);      //延时2秒
  digitalWrite(9,HIGH); //给9号高电平
  digitalWrite(11,LOW); //给11号低电平
  delay(2000);      //延时2秒
  digitalWrite(10,HIGH);//给10号高电平
  digitalWrite(9,LOW);  //给9号低电平
  delay(2000);      //延时2秒
  digitalWrite(11,HIGH);//给11号高电平
  digitalWrite(10,LOW); //给10号低电平
}

演示效果视频如下

1.png

有源蜂鸣器红绿蓝演示效果1.0

                                                      1.gif

4.2串口点灯

逻辑思路:红绿蓝初始化,都给低电平,主程序读取串口赋值字符串“item”,判断为“start”开始进入循环开始红绿蓝依次交替点亮熄灭,判断为“stop”跳出循环,又开始读取串口。。。下面为mixly模块和代码

1.jpg

String item;
void setup(){
  Serial.begin(9600);
  pinMode(9, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
  item = "";
  digitalWrite(9,LOW);
  digitalWrite(10,LOW);
  digitalWrite(11,LOW);
}
void loop(){
  if (Serial.available() > 0) {
    item = Serial.readString();
    Serial.println(item);
    if (item == "start") {
      while (true) {
        item = Serial.readString();
        Serial.println(item);
        if (item == "stop") {
          break;
        }
        delay(2000);
        digitalWrite(9,HIGH);
        digitalWrite(11,LOW);
        delay(2000);
        digitalWrite(10,HIGH);
        digitalWrite(9,LOW);
        delay(2000);
        digitalWrite(11,HIGH);
        digitalWrite(10,LOW);
      }
    }
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
  }
}

演示效果视频如下

1.png

2.0串口点灯

                                             image.gif

4.3 呼吸灯

逻辑思路:红初始化,给低电平,主程序读取串口赋值字符串“item”,判断为“start”开始进入循环开始红色呼吸灯由暗变亮,再由亮变暗,判断为“stop”跳出循环,又开始读取串口。。。下面为mixly模块和代码

1.jpg

String item;
void setup(){
  Serial.begin(9600);
  pinMode(9, OUTPUT);
  item = "";
  digitalWrite(9,LOW);
}
void loop(){
  if (Serial.available() > 0) {
    item = Serial.readString();
    Serial.println(item);
    if (item == "start") {
      while (true) {
        item = Serial.readString();
        Serial.println(item);
        if (item == "stop") {
          break;
        }
        for (int i = 0; i <= 255; i = i + (1)) {
          analogWrite(9,i);
          delay(20);
        }
 for (int i = 255; i >= 0; i = i + (-1)) {
          analogWrite(9,i);
          delay(20);
        }
      }
    }
    digitalWrite(9,LOW);
  }
}

演示效果视频如下

1.png

3.0呼吸灯

                                        1.gif

5.0 小结

逐步通过这个三个小实验,我们可以简单对arduino实现LED和有源蜂鸣器代码控制,串口字符串控制,甚至于呼吸灯。最终实现了上位机与下位机的简单通信,相当于学会使用手进行有意识的简单运动。

在以后的博文中我们将学会用arduino常用传感器和执行器,从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。

目录
相关文章
|
SQL 资源调度 数据库
数仓学习---14、大数据技术之DolphinScheduler
数仓学习---14、大数据技术之DolphinScheduler
|
Web App开发 缓存 数据库
DMS产品常见问题之DMS数据规定失败如何解决
DMS(数据管理服务,Data Management Service)是阿里云提供的一种数据库管理和维护工具,它支持数据的查询、编辑、分析及安全管控;本汇总集中了DMS产品在实际使用中用户常遇到的问题及其相应的解答,目的是为使用者提供快速参考,帮助他们有效地解决在数据管理过程中所面临的挑战。
|
9月前
|
人工智能 Cloud Native Java
2025 年 Java 应届生斩获高薪需掌握的技术实操指南与实战要点解析
本指南为2025年Java应届生打造,涵盖JVM调优、响应式编程、云原生、微服务、实时计算与AI部署等前沿技术,结合电商、数据处理等真实场景,提供可落地的技术实操方案,助力掌握高薪开发技能。
432 2
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
841 0
在Java中处理JSON数据:Jackson与Gson库比较
|
7月前
|
负载均衡
轻量应用服务器升级套餐配置总结
在升级轻量应用服务器前,请先创建云盘快照备份数据。登录控制台,选择目标服务器,进入升级页面,阅读注意事项并选择新套餐配置,确认服务协议后完成支付。升级后需等待服务器重启,若系统盘容量变化,还需手动扩容分区。注意中国香港机房有特殊限制,续费时负载均衡会一并续费,操作时请以控制台提示为准。
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
284 1
|
机器学习/深度学习 人工智能 自然语言处理
Hugging Face 论文平台 Daily Papers 功能全解析
【9月更文挑战第23天】Hugging Face 是一个专注于自然语言处理领域的开源机器学习平台。其推出的 Daily Papers 页面旨在帮助开发者和研究人员跟踪 AI 领域的最新进展,展示经精心挑选的高质量研究论文,并提供个性化推荐、互动交流、搜索、分类浏览及邮件提醒等功能,促进学术合作与知识共享。
1162 0
|
12月前
|
运维 监控 BI
15 分钟快速上手 Odoo
Odoo 是一款备受企业青睐的开源 ERP 系统,但传统基于 Docker 的部署方式存在安装复杂、镜像拉取困难、配置繁琐及管理不便等问题。Websoft9 提供了一键部署方案,通过云原生应用模板和自动化运维工具,用户可在 15 分钟内快速上手 Odoo,享受零门槛、极速交付与自动化运维体验。本文还深度体验了 Odoo 的核心功能模块,如 CRM 智能客户管理、项目管理敏捷协作、库存精准控制及报表零代码定制等功能,助力企业高效开启数字化转型之旅。
593 5
|
机器学习/深度学习 人工智能 大数据
基于联邦学习的数据隐私保护机制在智能模型训练中的应用
【8月更文第15天】随着大数据和人工智能的发展,数据隐私保护成为了亟待解决的问题。传统的集中式机器学习方法需要将数据收集到一个中心服务器进行处理,这不仅增加了数据泄露的风险,还可能触犯相关的法律法规。联邦学习(Federated Learning, FL)作为一种新兴的分布式机器学习框架,允许终端设备直接在本地数据上训练模型,并仅将更新后的模型参数发送给中心服务器汇总,从而在不暴露原始数据的情况下实现模型训练。
837 0
|
云安全 运维 安全
阿里云免费版SSL证书申请及部署图文教程指导
SSL证书是个人和企业搭建网站不可或缺的云安全产品,SSL证书能够为网站和移动应用(APP)及小程序提供数据HTTPS加密协议访问,保障数据的安全。阿里云SSL证书有收费版的也有免费版的,有的新手用户由于是初次在阿里云申请SSL证书,可能不是很清楚免费版证书的申请和部署流程,本文为以图文形式为大家展示阿里云免费版SSL证书最新的申请及部署教程,以供参考。