美文网首页Arduino 专题学习
2017级Arduino小组学习任务

2017级Arduino小组学习任务

作者: SunShineJia | 来源:发表于2019-04-28 20:24 被阅读410次

    推荐学习资料:

    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函数,即项目1中的2.2方式)
      (Fritzing绘制的电路图、工作原理的说明,包含完整注释的源代码)
      2.2 用电位器实现调光LED灯(使用软件编程的方法,即项目1中的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绘制的电路图、工作原理的说明、包含完整注释的源代码、map函数的用法)

    项目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 + 四位数码管显示 + 按键调表
      (画出电路图,写出包含完整注释的代码,连接几个按键,实现从运行状态到调表状态切换、年月日时分秒字段的切换、数值的增减等)

    相关文章

      网友评论

        本文标题:2017级Arduino小组学习任务

        本文链接:https://www.haomeiwen.com/subject/nroggqtx.html