Arduino学习笔记

  • 太极创客 第一部分 笔记
    • 1-5 变量
    • 1-6 程序结构
    • 1-7 变量操作
    • 1-8/1-9 程序函数
    • 1-10/1-11 数字输出 1-12 面包板
    • 1-13/1-14 数字输入
    • 1-15至1-17 逻辑控制
    • 1-19至1-24 MC猜数字(例)
    • 1-25/1-26 模拟输出

太极创客 第一部分 笔记

1-5 变量

  • int是“整数类型变量”

  • 变量名称规则:
    ① 只能输入英文
    ② 变量名只能用连贯的一个词,中间不能加空格
    ③ 变量名中不能有特殊字符
    ④ 第一个字符不能是数字
    ⑤ 关键字不能做变量名称(即IDE中变蓝的词)
    ⑥ 可以加入下划线

  • 整数变量数值默认给0

  • 等号(=)有个特殊的名称“赋值运算符”

1-6 程序结构

  • void setup()属于初始化工作(只运行一次)
  • void loop() 函数会永远反复的运行
  • delay(); 延时函数,单位为ms

1-7 变量操作

  • 各类型的变量:如果一个数值超过该类型的最大范围,那么这个数值会返回到最小数值

  • 变量有作用域:在特定范围内声明,分为全局变量和局部变量。

    ​ 全局变量:适用于所有函数

    ​ 局部变量:有限制范围,只适用于特定区域内

  • 浮点型——浮点数的取值范围在3.4028235 E+38 ~ -3.4028235 E+38

1-8/1-9 程序函数

  • 函数固定的格式:什么函数+多少个参数:例如delay()只需要一个参数

  • delayMicroseconds()用于暂停程序运行,也为延时函数,与delay用法一致,但两者暂停时间的单位不同。

  • pinMode(pin,Mode):设置引脚的输入输出状态

    pinMode()函数可以将Arduino的引脚配置成三种模式:

  1. 输出模式(OUTPUT)——使用引脚提供≤40ma的电流
  2. 输入模式(INPUT)
  3. 上拉模式(INPUT_PULLUP)
  • digitalWrite(pin,value) :设置输出引脚的高低电平状态

    高电平(HIGH)5v ;低电平(LOW)0v/GND

  • 使引脚变为输出的顺序:

    1. 先给引脚设置相应的工作状态——pinMode(脚位,工作模式)
    2. 然后设置脚位的状态——digitalWrite(脚位,高电平或低电平)
    3. 设置持续时间——delay(毫秒)

1-10/1-11 数字输出 1-12 面包板

  • LED:发光二级管(长的为+,短的为-),工作时候回产生2V的压降(与LED限流电阻搭配使用)

  • 面包板:

    上下区是横向5位相通,一般用于接电源和接地

    中间区域是纵向5位相通,通常用于放置电路元件和电路连接线。

1-13/1-14 数字输入

  • 开关(同侧不相连,相连不同侧)

  • 上拉电阻

  • 当S2没按下时,Input通过2个电阻和+5V连接(注意电路中并没构成回路,因此不会有压降,所以Input端依然是高电平),为高电平。当S2按下时,+5V,R2,S2,GND形成回路,R2 电阻大,产生压降大,因此后面的Input就是低电平。因此,可以通过Input端的电平来判断S2是否按下。上拉电阻在数字电路中应用的更广泛。

  • 引脚悬空时,电位读取可能是低电位、也可能是高电位

  • 窗口监视器:程序运行状态

    serial.begin(9600):调用serial库中的begin函数,串口波特率通常使用9600,并注意代码与窗口选择一致

    serial.println():将变量数值输出到窗口监视器

  • digitalRead(pin):读取引脚的状态,并返回HIGH或LOW

1-15至1-17 逻辑控制

  • 输入上拉模式(INPUT_PULLUP),arduino微控制器自带内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉模式。

    请留意:在上拉模式下,按钮的逻辑状态是反的。即:开关断开时引脚读取到高电平,开关被按下后引脚读取到低电平。

  • if(逻辑关系式){}

    //关系表达式通过关系运算得到真假,真为1,假为0,其数据类型均为布尔/Boolean(除了0外,给其他任何数值都当作1来处理)

    //关键字用boolean或者bool都可以

  • "=“为赋值运算符;”=="为关系运算符

  • 布尔运算符:"!"(非);"||"(或);"&&"(与)

1-19至1-24 MC猜数字(例)

  • 制作MC猜数字所需硬件材料:

    – Arduino开发板,本教程使用的是共阴极数码管
    – 限流电阻 x 1(200欧姆左右),公对公杜邦线 x 10, 面包板, 面包板跳线 x 10, 按键开关 x 1

  • while(循环条件){循环体};

    do{循环体}while{循环条件}; //注意两者的循环和循环条件判断先后

  • switch case

switch (var) {case 1://当var等于1时执行这里的程序break;case 2://当var等于2时执行这里的程序break;default:// 如果var的值与以上case中的值都不匹配// 则执行这里的程序break;
}
    1. 在以上结构示例代码中,当变量var和某个case后面的数值匹配成功后,如果没有break, Arduino会执行该分支以及后面所有分支的语句。
    2. case 后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。
    3. case 后面不能使用字符串,但可以使用字符,使用字符时需要用单引号把字符括起来,如: case: 'b'
    4. default 不是必须的。当没有 default 时,如果所有 case都匹配失败,那么就什么都不执行。
  • if(判断条件){语句块}

    else if{语句块}

  • 随机数:①random(max)②random(min,max)

    min: 产生随机数的下限(包含此数值)
    max: 产生随机数的上限(不包含此数值)

    其返回值为:在最小值(min)和最大值减一(max-1)之间的随机数值

    单独使用random()函数。每次程序运行所产生的随机数字都是同一系列数字。并非真实的随机数,而是所谓的伪随机数。如果希望每次程序运行时产生不同的随机数值。应配合使用randomseed()函数。

  • randomSeed()函数可用来产生随机种子。单独使用random()函数所产生的随机数,在每一次程序重新启动后,总是重复同一组随机数字。如果希望程序重新启动后产生的随机数值与上一次程序运行时的随机数不同,则需要使用randomSeed()函数。在实际应用时,可以通过调用analogRead()函数读取一个空引脚,作为随机种子数值。

    randomSeed(seedVal)

    seeseedVal: 随机种子数值

long randNumber;
void setup(){Serial.begin(9600);randomSeed(analogRead(A0)); //将引脚A0放空,每次程序启动时所读取的数值都是不同的。//这么做可以产生真正的随机种子值,从而产生随机数值。
}void loop(){randNumber = random(300);  // 产生随机数Serial.println(randNumber);delay(50);
}
  • 函数调用:注意是否有参数,如果有参,那么在函数调用声明前要记得定义变量。

1-25/1-26 模拟输出

  • analogWrite(pin, value);

    //在调用analogWrite()函数前,无需使用pinMode()函数来设置该引脚,但是设置了也没有关系。

    pin:被读取的模拟引脚号码
    value:0到255之间的PWM频率值, 0对应off, 255对应on

  • analogWrite()函数将模拟值(PWM波)写入引脚。它可用于以不同的亮度点亮LED或以各种速度驱动电机。在调用analogWrite()函数之后,引脚将产生指定占空比的稳定方波,直到下一次调用analogWrite()或在相同引脚上调用digitalRead()或digitalWrite()。

    大多数引脚上的PWM信号频率约为490 Hz。在Uno和类似的板上,引脚5和6的频率约为980Hz。

    在大多数Arduino板上(ATmega168或ATmega328),此 功能在引脚3,5,6,9,10和11上工作。

Arduino学习笔记(1):太极创客 第一部分相关推荐

  1. arduino 学习笔记及课件01基础入门

    arduino 学习笔记及课件01基础入门 以下学习笔记中图片部分由太极创客视频截图所得 概论 一. 引脚及信号 1.1引脚模式 INPUT:当Arduino没有使用上拉电阻或下拉电阻而直接与开放的开 ...

  2. 高等数值计算方法学习笔记第4章第一部分【数值积分(数值微分)】

    高等数值计算方法学习笔记第4章第一部分[数值积分(数值微分)] 一.数值积分概论 1.数值求积的基本思想(牛-莱公式找不到原函数,用矩形近似) 2.代数精度的概念 1.上述四个公式的代数精度(梯形,左 ...

  3. R语言学习笔记——入门篇:第一章-R语言介绍

    R语言 R语言学习笔记--入门篇:第一章-R语言介绍 文章目录 R语言 一.R语言简介 1.1.R语言的应用方向 1.2.R语言的特点 二.R软件的安装 2.1.Windows/Mac 2.2.Lin ...

  4. Arduino学习笔记2

    一.蜂鸣器输出实验 1.源代码 int buzzer=2;//设置控制蜂鸣器的数字口对应板子上2口 void setup() { pinMode(buzzer,OUTPUT);//设置对应的输出模式 ...

  5. Arduino 学习笔记_3 案例:按下按钮生成一位随机数字,在数码管中显示

    猜数字案例 有一位8段数码管,和一个按钮.每次按下按钮,随机生成一个0~9的数并在LED显示器上显示出来. 首先先可以参考下官网上的案例.这个案例是从0到9所有数字循环显示,里面用到了数码管对应引脚, ...

  6. MYSQL学习笔记(自用)第一章

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 MYSQL学习笔记 前言 学习资料下载 第一章 第一节:选择语句|The Select Statement(在单一表格中检索数据) 第 ...

  7. 【java学习笔记day01】运行第一个程序Helloworld!

    java学习笔记day01 2.什么是软件工程师? 3.什么是软件? 4.开发软件需要计算机编程语言,计算机编程语言有很多,例如 c, c++,Java,NET,c#,php... 5.Java软件工 ...

  8. Arduino基础学习——meArm(太极创客第二部分)

    面包板电源模块为机器臂单独供电,机器臂本身有四个小电机驱动作用,如果单独靠arduino来为这四个小电机供电,机器臂可能不会稳定工作,将会抖动. 机械臂的四个动作主要靠四个电机来控制,这四个电机主要连 ...

  9. 【Arduino学习笔记】E18-D50NK红外避障传感器使用说明

    网上淘的E18-D50NK到货了,闲着没事试了一下,顺便做个笔记 就是这货,红色接5V正极,绿色接GND,黄色为信号线 后面的小圆孔可以调节有效检测距离 arduino代码如下: int E18Pin ...

最新文章

  1. GridSearchCV 与 RandomizedSearchCV 调参
  2. C++知识点34——动态内存与智能指针
  3. 比较好用的web打印控件——Lodop
  4. 【并发编程】CountDownLatch与CyclicBarrier
  5. 30个创意出色的非常实用的jquery框架插件-(视觉大背景,瀑布流效果)
  6. 美国第一台电子计算机是由女程序员编写的
  7. H5 Canvas刮刮乐
  8. win10子系统linux编译ffmpeg
  9. 关于springMVC传参问题
  10. 前端开发中的性能那点事(三)php的opcode缓存
  11. 转(static final 和final的区别)
  12. easyui省市二级联动
  13. 关于sip协议-3PCC-SIPP工具相关及报错
  14. Command Line Tools下载不下来,则可以去官网下载
  15. 开启win10隐藏语音库
  16. 最新电脑cpu性能排行服务器,服务器cpu性能排行,详细教您服务器cpu性能排行
  17. 李沐-动手学习深度学习v2
  18. win10计算机不分区,win10系统自带无损分区且数据不丢失的处理方案
  19. (前端)html与css css 18、清除浮动,溢出隐藏
  20. C语言strchr函数

热门文章

  1. SCAU 汇编语言 期末复习 (上)
  2. 12个点可以画出59条直线,经过3个或者3个以上点的直线有多少?
  3. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案)...
  4. 图形流水线中光栅化原理与实现
  5. SQL注入(使用sqli-labs案例以及sqlmap自动化注入工具)
  6. 信息奥赛一本通 2037 约瑟夫问题 C++
  7. WordPress主机和共享虚拟主机不同在哪?
  8. 微软打字时,间距突然变大?解决方法!
  9. 腾讯会议可以录屏吗?学习两个录制会议的好方法
  10. 百度开源在线文本编辑器-UEditor