Arduino从0-1


Arduino

pFv82fH.png

学前必看:

  • 软件推荐官方的IDE

  • 下载地址:https://www.arduino.cc/en/software

  • 硬件版本都可以-教程使用arduino-uno
  • 什么是arduino、arduino可以做什么?https://www.arduino.cc/en/Guide/Introduction
  • arduino硬件初步了解https://www.arduino.cc/en/hardware

主版介绍

一、电源(*Power*)

Arduino UNO有三种供电方式:

● 通过USB接口供电,电压为5V;

● 通过DC电源输入接口供电,电压要求7~12V;

● 通过电源接口处5V或者VIN端口供电,5V端口处供电必须为5V,VIN端口处

供电为7~12V。

二、指示灯(*LED*)

Arduino UNO带有4个LED指示灯,作用分别是:

● ON,电源指示灯。当Arduino通电时,ON灯会点亮。

● TX,串口发送指示灯。当使用USB连接到计算机且Arduino向计算机传输数据

时,TX灯会点亮。

● RX,串口接收指示灯。当使用USB连接到计算机且Arduino接收计算机传来的

数据时,RX灯会点亮。

● L,可编程控制指示灯。该LED通过特殊电路连接到Arduino的13号引脚,当

13号引脚为高电平或高阻态时,该LED会点亮;当为低电平时,不会点亮。因

此可以通过程序或者外部输入信号来控制该LED的亮灭。

三、复位按键(*Reset Button*)

按下该按键可以使Arduino重新启动,从头开始运行程序。

四、存储空间(*Memory*)

Arduino的存储空间即是其主控芯片所集成的存储空间。也可以通过使用外设芯片的方式来扩展Arduino的存储空间。Arduino UNO的存储空间分三种:

● Flash,容量为32KB。其中0.5KB作为BOOT区用于储存引导程序,实现通过串

口下载程序的功能;另外的31.5KB作为用户储存的空间。相对于现在动辄几百

GB的硬盘,可能觉得32KB太小了,但是在单片机上,32KB已经可以存储很大

的程序了。

● SRAM,容量为2KB。SRAM相当于计算机的内存,当CPU进行运算时,需要

在其中开辟一定的存储空间。当Arduino断电或复位后,其中的数据都会丢失。

● EEPROM,容量为1KB。EEPROM的全称为电可擦写的可编程只读存储器,是

一种用户可更改的只读存储器,其特点是在Arduino断电或复位后,其中的数据

不会丢失。

五、输入*/输出端口(Input/Output* Port****)

pFv8gte.png

如图1所示,Arduino UNO有14个数字输入/输出端口,6个模拟输入端口。其中一些带有特殊功能,这些端口如下:

13

● UART通信,为0(RX)和1(TX)引脚,被用于接收和发送串口数据。这两个

引脚通过连接到ATmega16U2来与计算机进行串口通信。

● 外部中断,为2和3引脚,可以输入外部中断信号。

● PWM输出,为3、5、6、9、10和11引脚,可用于输出PWM波。

● SPI通信,为10(SS)、11(MOSI)、12(MISO)和13(SCK)引脚,可用于

SPI通信。

● TWI通信,为A4(SDA)、A5(SCL)引脚和TWI接口,可用于TWI通信,兼

容IIC通信。

● AREF,模拟输入参考电压的输入端口。

● Reset,复位端口。接低电平会使Arduino复位。当复位键被按下时,会使该端口

接到低电平,从而使Arduino复位。

可以在http://arduino.cc/en/Main/ArduinoBoardUno上找到Arduino UNO更多的相关信息及下载最新的原理图及PCB文件。

实例一(点亮板载13号灯并且闪烁)

void setup() {
  // setup中的代码只执行一次:
  pinMode(13,OUTPUT);//设定13号引脚模式OUTPUT/INPUT
}
void loop() {
  // loop中的代码重复执行:
  digitalWrite(13,HIGH);//设定13号引脚高电平
  delay(500);//等待500ms
  digitalWrite(13,LOW);//设定13号引脚低电平
  delay(500);//等待500ms
}

解释:**电平是指电路中两点或几点在相同阻抗下电量的相对比值。

电平可以用来表示电压电流功率的相对大小,通常用分贝(dB)作为单位。在数字电路中,电平通常指电压的相对状态,用于表示数字信号的逻辑状态,如高电平或低电平。高电平通常表示为"1"或"H",代表电压较高的状态;低电平表示为"0"或"L",代表电压较低的状态。这种二进制的表示方式广泛应用于计算机通信系统自动控制等领域。电平的稳定性对于正确识别和解析数字信号非常重要。

程序中的HIGH/LOW等同于1/0等同于True/False

实例二(按键控制板载13号灯开关--按下亮松开灭)

void setup() {
  // setup中的代码只执行一次:
  pinMode(3,INPUT);//设定3号引脚按键模式OUTPUT/INPUT
  pinMode(13,OUTPUT);//设定板载13号灯的模式
}
void loop() {
  boolean flag=digitalRead(3);
  //boolean==布尔值,读取3号引脚电平值数据类型为布尔值,按键按下高电平True
   digitalWrite(13,flag);
}

解释:boolean布尔值返回结果只有True/Fslse

实例三(按键控制板载13号灯开关--按下开再次按下灭)

void setup() {
  // setup中的代码只执行一次:
  pinMode(3,INPUT);//设定3号引脚按键模式OUTPUT/INPUT
  pinMode(13,OUTPUT);//设定板载13号灯的模式
}
void loop() {
  while(1){
    if(digitalRead(3)==1){
      int flag;
      delay(300);
      flag++;
      digitalWrite(13,flag%2);//取模结果零/非零 非零均为高电平 零低电平
    }
  }
}

解释:举例1%2 1对2取模结果为1 因为1除2整除不了余1----4%2结果0----5%10结果5

flag++等价于 flag=flag+1

While(1)无限循环

编程中的‘=’是赋值而‘==’是判断等式是否成立

时间有限持续更新中