初见arduino

发布于 17 天前  48 次阅读


arduino是什么

arduino是连接物联网和创客的桥梁

初始准备

官方网站

arduino官方网站

arduino软件下载安装

file

1. 进入官网,点击software
2. 选择合适的进行下载
3. 安装选择所有的依赖
4. 驱动安装点同意
5. 打开首选项进行一些基本配置

arduino IDE

file

1.工具
2.开发板型号
3.端口号

file

基本操作:
1. 编写代码)
2. 验证(编译)
3. 上传

开源硬件

file

arduino Uno R3

file

芯片旁边的白色是引脚。
开发板继承了端口的集成。

file

初始arduino程序语言C++

//两个函数:
void setup()
{
 // put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:

}

arduino程序的结构

// the setup function runs once when you press reset or power the board
void setup() 
{
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() 
{
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

程序分析

arduino中的函数库

file

点亮LED

file

pinMode()

file

说明
通过pinMode()函数,你可以将Arduino的引脚配置为以下三种模式:

- 输出(OUTPUT)模式
- 输入(INPUT)模式
- 输入上拉(INPUT_PULLUP)模式 (仅支持Arduino 1.0.1以后版本)
在输入上拉(INPUT_PULLUP)模式中,Arduino将开启引脚的内部上拉电阻,实现上拉输入功能。一旦将引脚设置为输入(INPUT)模式,Arduino内部上拉电阻将被禁用。

设置pinMode为输出(OUTPUT)模式

当引脚设置为输出(OUTPUT)模式时,引脚为低阻抗状态。这意味着Arduino可以向其它电路元器件提供电流。也就是说,Arduino引脚在输出(OUTPUT)模式下可以点亮LED或者驱动电机。(如果被驱动的电机需要超过40mA的电流,Arduino将需要三极管或其它辅助元件来驱动他们。)

设置引脚为输入(INPUT)模式

当引脚设置为输入(INPUT)模式时,引脚为高阻抗状态(100兆欧)。此时该引脚可用于读取传感器信号或开关信号。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

设置引脚为输入上拉(INPUT_PULLUP)模式

Arduino 微控制器自带内部上拉电阻。如果你需要使用该内部上拉电阻,可以通过pinMode()将引脚设置为输入上拉(INPUT_PULLUP)模式。

注意:当Arduino引脚设置为输入(INPUT)模式或者输入上拉(INPUT_PULLUP)模式,请勿将该引脚与负压或者高于5V的电压相连,否则可能会损坏Arduino控制器。

digitalWrite()

file

将数字引脚写HIGH(高电平)或LOW(低电平)

如果该引脚通过pinMode()设置为输出模式(OUTPUT),您可以通过digitalWrite()语句将该引脚设置为HIGH(5伏特)或LOW(0伏特/GND)。

如果该引脚通过pinMode()设置为输入模式(INPUT),当您通过digitalWrite()语句将该引脚设置为HIGH时,
这与将该引脚将被设置为输入上拉(INPUT_PULLUP)模式相同。

获得更多关于输入上拉(INPUT_PULLUP)模式信息请参阅:INPUT_PULLUP

请注意: 比起其它数字引脚,数字引脚13由于内部串联了一个LED并焊接了一个限流电阻,所以该引脚比其他引脚更不易用来实现数字输入功能。如果将数字引脚13设置为输入上拉(INPUT_PULLUP)模式,该引脚将会悬在1.7伏特而不是正常的高电平5伏特。如果必须使用引脚13做为数字输入,请将该引脚配合外部下拉电阻使用。

示例代码

/*
digitalWrite()示例程序
v1.0
Created 2016
by 太极创客
www.taichi-maker.com

This example code is in the public domain.
*/

int ledPin = 13;                 

// 当Arduino控制器通电或复位后,setup函数会运行一次
void setup()
{
  // 将引脚13设置为输出(OUTPUT)模式
  pinMode(ledPin, OUTPUT);      
}

// 当Arduino控制器通电或复位后,loop函数会反复运行
void loop()
{
  digitalWrite(ledPin, HIGH);   // 引脚13高电平,点亮LED
  delay(1000);                  // 等待1秒
  digitalWrite(ledPin, LOW);    // 引脚13底电平,关闭LED
  delay(1000);                  // 等待1秒
}

delay()

delay()
说明
delay()函数可用于暂停程序运行。暂停时间可以由delay()函数的参数进行控制,单位是毫秒(1秒钟=1000毫秒)。

语法
delay(ms)

参数
ms: 暂停时间,该时间单位是毫秒( unsigned long型数据)

返回值
无

示例程序

Arduino
int ledPin = 13;                 // Arduino Uno引脚13接有LED
void setup()
{
  pinMode(ledPin, OUTPUT);      // 将LED连接引脚设置为输出模式
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // 点亮LED
  delay(1000);                  // 等待一秒钟(1000毫秒)
  digitalWrite(ledPin, LOW);    // 熄灭LED
  delay(1000);                  // 等待一秒钟(1000毫秒)
}
1
2
3
4
5
6
7
8
9
10
11
12
13
int ledPin = 13;                 // Arduino Uno引脚13接有LED
void setup()
{
  pinMode(ledPin, OUTPUT);      // 将LED连接引脚设置为输出模式
}

void loop()
{
  digitalWrite(ledPin, HIGH);   // 点亮LED
  delay(1000);                  // 等待一秒钟(1000毫秒)
  digitalWrite(ledPin, LOW);    // 熄灭LED
  delay(1000);                  // 等待一秒钟(1000毫秒)
}

LED

file

file

LED灯珠工作电流:20mA
工作时,LED产生2v左右的电压降

file

file

仿真软件

file

file

file

file

面包板

file

file

一般上下两行是接电源用。

arduino数字输入

file

arduino的引脚设置为数字输入(INPUT)状态时可以识别两种状态:
HIGH(高电平)
LOW(低电平)

file

file

file

file

根据上述内容做了一个合集

/*
  DigitalReadSerial

  Reads a digital input on pin 2, prints the result to the Serial Monitor

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/DigitalReadSerial
*/

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input:
  pinMode(pushButton, INPUT);
  pinMode(5, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button:
  Serial.println(buttonState);
  delay(1);        // delay in between reads for stability
  if(buttonState==1)
  {
    digitalWrite(5, LOW);
  }
  else
  {
    digitalWrite(5,HIGH);
  }
 }

file


擦肩而过的概率