2018级Arduino小组学习任务

推荐学习资料:

  1. 官网参考资料 https://www.arduino.cc/reference/en/
  2. Arduino公开课 http://ardui.co/basic
  3. 一个内容非常丰富的网站 https://randomnerdtutorials.com/projects-arduino/

目录

项目1:Arduino基本输入输出电路(任务序号 1)
项目2:PWM实现变色LED灯 (任务序号 2)
项目3:用电位器实现调光LED灯 (任务序号 3)
项目4:用模拟温度传感器LM35实现温度测量(任务序号 4)
项目5:用光敏电阻实现手机的自动屏幕亮度效果(任务序号 5)
项目6:用蜂鸣器演奏简单的乐曲(任务序号 6、7)
项目7:利用一位数码管实现0-9数字的显示(任务序号 8、9)
项目8:利用四位数码管实现动态扫描显示(任务序号 10、11)
项目9:利用MAX7219点阵模块实现形状符号显示(任务序号 12)
项目10:利用数字温度传感器18B20+四位数码管显示温度值(任务序号 13)
项目11:利用数字温湿度传感器DHT11+四位数码管显示温湿度值(任务序号 14)
项目12:按键消抖(任务序号 15)
项目13:Arduino外部中断(任务序号 16)
项目14:定时器中断(任务序号 17)
项目15:实时时钟 + 四位数码管显示时间 + 按键调表 (任务序号 18、19、20)

项目1. Arduino基本输入输出电路(任务序号 1)

(由一个小组独立完成)

图文教程详细目录

  1. Arduino的基本输入输出函数
    (详细介绍pinMode、digitalWrite、digitalRead三个函数的参数及用法)
  2. 上拉电阻在输入电路中的作用
    (结合pinMode函数的参数介绍何谓上拉电阻、在读取按键输入时,分别使用无上拉、内置上拉和外置上拉,编程演示其异同)
  3. 限流电阻在输出电路中的作用
    (查资料了解Arduino GPIO端口能够输入和输出的最大电流是多少,查资料了解红、绿、蓝三色LED正常工作的电流范围是多少,说明在GPIO端口接LED为何要串接限流电阻,一般串接多大阻值的限流电阻)
  4. 大电流驱动电路
    (由于Arduino GPIO端口输出电流有限,不能直接驱动电机、继电器等需要较大电流的设备,因此需要使用三极管或场效应管设计驱动电路,画出三极管或场效应管驱动继电器的电路图,并说明其工作原理)

项目2. PWM实现变色LED灯 (任务序号 2)

(由一个小组独立完成)
要求:使用Arduino Nano + 三色LED模块,实现从串口输入RGB值,LED显示对应的颜色,如串口输入255,0,0,LED为纯红色,输入255,255,0,LED为黄色。

图文教程详细目录:

  1. 什么是PWM?有何用途?
  2. Arduino 产生PWM信号的两种方式
    2.1 适用于所有GPIO的纯软件编程方式
    (讲解此方式需给出一个用PWM信号控制板载LED灯亮度变化的示例代码)
    2.2 仅适用于6个端口的硬件方式
    (讲解此方式重点介绍AnalogWrite函数的用法)
    3 串口输入输出的基本方法(给出最简单的代码示例)
    4 串口控制变色灯的实现(Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码、map函数的用法)

项目3. 用电位器实现调光LED灯(任务序号 3)

(由一个小组独立完成)
要求:通过旋转电位器(可变电阻)改变一个外接LED灯的亮度

  1. Arduino 模数转换函数 AnalogRead的用法
    (在哪些引脚上可用,给出一个以可变电阻分压为输入,从串口输出模数转换数值的例程)
    2.1 用电位器实现调光LED灯(使用AanlogWrite函数,即项目2中的2.2方式)
    (Fritzing绘制的电路图、工作原理的说明,包含完整注释的源代码)
    2.2 用电位器实现调光LED灯(使用软件编程的方法,即项目2中的2.1方式)
    (工作原理的说明,包含完整注释的源代码,与2.1代码的比较)

项目4. 用模拟温度传感器LM35实现温度测量(任务序号 4)

(由一个小组独立完成)
要求:使用LM35传感器,从串口输出当前环境温度

图文教程详细目录

  1. 如何通过https://www.alldatasheet.com/网站检索LM35的datasheet(说明书)
  2. 如何对照datasheet来分辨LM35的引脚和了解工作原理
  3. 用万用表测量LM35电压输出引脚的电压并手动换算温度
    (不接Arduino的情况下,用万用表测量LM35输出引脚的电压并手动换算温度,改变LM35所处环境的温度,观察电压的变化,此节的目的是理解原理)
  4. 实现温度测量 (Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码、map函数的用法)

项目5. 光敏电阻实现手机的自动屏幕亮度效果(任务序号 5)

(由一个小组独立完成)
要求:在光线强的地方,自动增强LED的亮度,在光线弱的地方,自动增强LED的亮度

图文教程详细目录

  1. 5506型光敏电阻的主要参数及其在测光电路中的接法
    (参数主要介绍亮电阻和暗电阻,可参考购买的网店页面介绍 https://detail.tmall.com/item.htm?spm=a1z10.3-b.w4011-3660415149.42.621365aerMcRtl&id=574358540746&rn=91d85a52ccf5c88842b7a54e9754504a&abbucket=19
  2. 用万用表测量光敏电阻的阻值,观察其阻值随光线强弱的变化情况
    此节的目的是理解原理)
  3. 实现亮度测量(将光敏电阻的分压值进行模数转换,并通过串口输出) (Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)
  4. 实现手机的自动屏幕亮度效果(Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)

项目6. 用蜂鸣器演奏简单的乐曲(任务序号 6、7)

(两个小组合作完成,自主分工)

图文教程详细目录

  1. 什么是无源蜂鸣器和有源蜂鸣器(有什么特点,适用于什么场景)
  2. 写一个用旋转电位器连续改变蜂鸣器音调的程序
    (Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)
  3. Arduino中与音调有关的两个函数(tone 和 noTune)
  4. 写一个连续播放7个音符,每个音符时长1秒的程序 (包含完整注释的源代码)
  5. 把乐谱转换为播放程序的基本方法(需要哪些变量,以什么方式存储)
  6. 编程实现播放《两只老虎》(包含完整注释的源代码)
  7. 微动开关(按键)的结构、引脚及电路连接方法
  8. 实现7键电子琴 (Fritzing绘制的电路图、工作原理的说明、包含完整注释的源代码)

项目7. 利用一位数码管实现0-9数字的显示(任务序号 8、9)

(两组合作,一组完成1-4,另一组完成5-7)

图文教程详细目录

  1. 一位数码管的结构原理
    (何谓共阴、共阳?在电路连接和软件编程方面有何区别)
  2. 一位数码管与Arduino的连接电路
  3. 设计0-9数字显示用的字形表
    (如何设计?共阴和共阳有何区别?如何在程序中存储?能显示哪些英文字母?)
  4. 编写三个例程(包含完整注释的源代码)
    4.1 串口输入数字n,则显示数字n
    4.2 0-9循环显示,每个数字显示1秒
    4.3 连接一个微动开关(按键),按一下,显示一个数字,0-9循环。(Friting绘制电路图)
  5. 74HC595的引脚及其功能
    (下载74HC595的datasheet,了解其引脚和功能)
  6. 74HC595实现串入并出
    (不用Arduino,用微动开关(按键)+8个LED+1片74HC595,实现一个按键驱动的移位亮灯,目的是理解74HC595的基本工作原理)
  7. 用74HC595实现4.2程序
    (使用Arduino的shiftOut函数,重点介绍函数用法、电路连接,Fritzing绘出电路图)

项目8. 利用四位数码管实现动态扫描显示(任务序号 10、11)

(两个小组完成,共同完成1-2,分别完成3、4)

图文教程详细目录

  1. 探究视觉暂留效应与扫描现实刷新速率
    (用4个LED串接470欧限流电阻后接到Arduino板相邻的四个口线上,编写简单的“流水灯”程序,改变每个LED点亮的时间,确定人眼看上去四个LED同时亮且感觉不到闪烁的点亮时间是多少)
  2. 四位数码管的电路结构与显示原理
    (什么是位选、什么是段选、共阴与共阳的区别、显示4位数字,需要多少条口线?显示n位数字呢?)
  3. Arduino直接连接四位数码管实现四位阿拉伯数字显示
    (Friting绘制电路图(注意每个段都要加470欧姆限流电阻),程序原理说明,包含完整注释的源代码)
  4. Arduino + 74HC595 + 四位数码管实现动态扫描显示
    (Friting绘制电路图(注意每个段都要加470欧姆限流电阻),程序原理说明,包含完整注释的源代码,可参考项目6的相关代码)

项目9. 利用MAX7219点阵模块实现形状符号显示(任务序号 12)

图文教程详细目录

  1. MAX7219显示驱动芯片的功能特性
    (从http://www.alldatasheet.com检索并下载MAX7219说明书,介绍:芯片主要功能、性能参数、引脚、工作原理等)
  2. 8x8LED点阵屏的内部结构与原理(与项目8第2节的内容相类比,本质上是一样的)
  3. Arduino + MAX7219 + 8x8点阵的硬件电路连接
    (分别画出连接1片8x8点阵的电路和多个MAX7219+8x8点阵级联的情况)
  4. 显示8x8点阵图形的程序实现(包含完整注释的源代码)
    (顺便介绍一下取字模软件的用法)

项目10:利用数字温度传感器DS18B20+四位数码管显示温度值(任务序号 13)

Guide for DS18B20 Temperature Sensor with Arduino | Random Nerd Tutorials https://randomnerdtutorials.com/guide-for-ds18b20-temperature-sensor-with-arduino/

图文教程详细目录

  1. DS18B20 数字温度传感器的功能特性
    (从http://www.alldatasheet.com检索并下载DS18B20说明书,介绍:芯片主要功能、性能参数、引脚、典型电路连接方法等)
  2. DS18B20所需的OneWire库和DallasTemperature库的安装与使用
    2.1 在Arduino IDE中安装库的方法(“项目”—“添加库”—“管理库”)
    2.2 通过网络下载手动安装库的方法
    (OneWire库下载地址:https://github.com/PaulStoffregen/OneWire
    (DallasTemperature库下载地址:https://github.com/milesburton/Arduino-Temperature-Control-Library
  3. DS18B20+四位数码管显示温度值
    (硬件电路图、包含注释的完整代码)
  4. 在3的基础上实现温度报警功能
    (硬件电路图、包含注释的完整代码,当温度高于或低于某设定值时,蜂鸣器发出报警声)

项目11:利用数字温湿度传感器DHT11+四位数码管显示温湿度值(任务序号 14)

图文教程详细目录

  1. DHT11 数字温度传感器的功能特性
    (从http://www.alldatasheet.com检索并下载DHT11说明书,介绍:芯片主要功能、性能参数、引脚、典型电路连接方法等)
  2. DHT11 Arduino库的安装与使用
    2.1 在Arduino IDE中安装库的方法(“项目”—“添加库”—“管理库”)
    2.2 通过网络下载手动安装库的方法
    (该库下载地址:https://github.com/adafruit/DHT-sensor-library
  3. DHT11+四位数码管显示温度值
    (硬件电路图、包含注释的完整代码)
  4. 在3的基础上实现温湿度报警功能
    (硬件电路图、包含注释的完整代码,当温湿度高于或低于某设定值时,蜂鸣器发出报警声)

项目12:按键消抖(任务序号 15)

参考资料:https://blog.csdn.net/tigerrui/article/details/82735721

图文教程详细目录

  1. 按键抖动及消抖的基本原理介绍
    (按键抖动的危害(给出一个简单的示例程序),软件消抖与硬件消抖的基本原理)
  2. 常用软件消抖方法
    2.1 纯手工编程实现软件消抖(分别讨论按下消抖、弹起消抖的实现,完整示例程序)
    2.2 利用Bounce2函数库实现按键消抖(库的下载安装及完整示例程序)
  3. 硬件消抖电路及其原理
    (画出电路图,说明原理)

项目13:Arduino外部中断(任务序号 16)

参考资料:
https://blog.csdn.net/c80486/article/details/52622035
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

图文教程详细目录

  1. 中断的概念、分类及其用途
    (内部中断与外部中断的区别,在Arduino中的具体体现)
  2. Arduino中的外部中断
    2.1 支持外部中断输入的引脚
    2.2 Arduino中断相关函数及其用法 (attachInterrupt() 与 detachInterrupt() )
    (重点介绍 attachInterrupt函数及其参数,编程演示不同的中断触发类型(LOW、CHANGE、RISING、FALLING))
  3. 中断应用示例程序
    3.1 编写一个手动方式实现PWM十档调光的程序(不使用AnalogWrite函数,手工编写代码生成PWM信号(可参考项目2的2.1节),外接一个按键,每按一下键,亮度在1-10档间循环,用查询的方式检测按键)
    3.2 改为用中断的方式检测按键,其他均同上,比较两者的差别(编程复杂度方面,实际使用效果方面)

项目14:定时器中断(任务序号 17)
参考资料:
https://blog.csdn.net/c80486/article/details/52622035
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/

图文教程详细目录

  1. 中断的概念、分类及其用途
    (内部中断与外部中断的区别,在Arduino中的具体体现)
  2. Arduino中的定时器中断
    2.1 Arduino 定时器中断的基本使用方法与注意事项
    2.2 Arduino 定时器中断函数库 MsTimer2的安装与使用
    (下载地址:https://github.com/PaulStoffregen/MsTimer2
    2.3 利用Arduino定时器中断来检测按键时长
    (外接一个按键,设置一个时长为1ms的定时器中断,按下按键后,统计中断发生的次数,直至按键弹起,此时的次数即是以ms为单位的按键时长,从串口输出)
  3. 综合应用案例
    (在2.3的基础上,完成一个进阶的案例:反应时间检测。外接一个按键一个LED等,按下按键后,随机等待10-20秒,LED灯熄灭,当按键者看到LED熄灭时,立即松手让按键弹起,从LED熄灭,到按键弹起,即为人的反应时间,从串口输出,精确到1ms)

项目15:实时时钟 + 四位数码管显示时间 + 按键调表 (任务序号 18、19、20)

图文教程详细目录

  1. DS3231实时时钟芯片功能与特性
    (从http://www.alldatasheet.com检索并下载DS3231说明书,介绍:芯片主要功能、性能参数、封装形式与引脚、工作原理、典型电路连接方法等)
  2. I2C通信方式原理与应用
    (I2C是各类传感器与模块与Arduino通信的最常用方式之一,重点介绍I2C的特点、Arduino的相关引脚、相关库的安装与使用)
  3. DS3231实时时钟模块的原理图
    (检索DS3231实时时钟模块的电路图,说明电路各部分的功能,说明模块各引脚的功能)
  4. DS3231实时时钟的基本实现
    (利用I2C库和DS3231库实现从串口每隔1S输出一次年月日星期时分秒信息,实现从串口输入“YYYYMMDDHHMMSS”格式的信息后,实现调表功能,写出包含完整注释的代码)
  5. DS3231 + 四位数码管显示
    (画出电路图,写出包含完整注释的代码,MM.DD 与 MM:SS分别显示5S。)
  6. DS3231 + 四位数码管显示 + 按键调表
    (画出电路图,写出包含完整注释的代码,连接几个按键,实现从运行状态到调表状态切换、年月日时分秒字段的切换、数值的增减等)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,440评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,814评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,427评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,710评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,625评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,511评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,162评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,311评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,262评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,278评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,989评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,583评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,664评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,904评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,274评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,856评论 2 339

推荐阅读更多精彩内容