Arduino学习笔记

本文详细介绍了Arduino编程中的关键函数,如Setup(),Loop(),pinMode(),digitalWrite(),digitalRead(),analogRead(),analogWrite()等,并给出了使用实例,以及UNOR3开发板的重要引脚及其功能。同时涵盖了串口通信和常用库文件的使用。
摘要由CSDN通过智能技术生成

安装教程:【Arduino】Arduino IDE使用教程-超详细_arduinoide-CSDN博客

学习教程:【Arduino】一天入门Arduino语言 教程_arduino编程-CSDN博客

Arduino基础

  • Setup()函数 初始化变量,管脚模式,调用库函数等

  • Loop()函数 连续循环执行loop函数内的程序

pinMode()函数:数字IO口输入输出模式定义函数,将接口定义为输入或输出接口

  • pin - 你希望设置模式的引脚的编号 0~13
  • *mode* - INPUT(输入模式),OUTPUT(输出模式)或INPUT_PULLUP(内部上拉输入)。
pinMode(A0,INPUT);

digitalWrite()函数:数字IO口输出电平定义函数,将数字接口值至高或低、开或关。但脚位必须先透过pinMode明示为输入或输出模式digitalWrite才能生效。

  • pin你希望设置模式的引脚的编号 0~13
  • value :表示为HIGH(高电平)或LOW(低电平)
digitalWrite(A0,HIGH);

digitalRead函数:数字IO口读输入电平函数,读出数字接口的值 比如可以读数字传感器。当感测到脚位处于高电位时时回传HIGH,否则回传LOW。

int val = digitalRead(A0);

analogRead()函数:模拟IO口读函数,从指定的模拟接口读取值,Arduino对该模拟值进行10-bit的数字转换。

val = analogRead(A0); 

analogWrite函数:数字IO口PWM输出函数,给一个接口写入模拟值(PWM波)改变PWM脚位的输出电压值可用于电机PWM调速或音乐播放。

 analogWrite(9,128);

delay(ms) 延时函数:delay(ms) 延时函数(单位ms),延时一段时间,暂停晶片执行多少毫秒。

void setup() {
  // LED输出
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // 打开LED灯
  delay(1000);                      // 延时1s
  digitalWrite(LED_BUILTIN, LOW);   // 关闭LED灯
  delay(1000);                      // 延时1s
}

delayMicroseconds()函数:延时函数(单位us)暂停晶片执行多少微秒

delayMicroseconds(1000); //暂停1豪秒

millis()函数:返回时间函数(单位ms), 回传晶片开始执行到目前的毫秒,此函数用于返回Arduino板开始运行当前程序时的毫秒数,该参数溢出大概需要50天时间。 

void loop() { 
   Serial.print("Time:");  //延时1S计算运行时间
   time = millis();  
   delay(1000); 
}

min(x, y):求最小值 ,回传两数之间较小者

max(x, y):求最大值 ,回传两数之间较大者

abs(x):计算绝对值 ,回传该数的绝对值

constrain(x, a, b):约束函数,下限a,上限b,判断x变数位于a与b之间的状态。

x若小于a回传a;介于a与b之间回传x本身;大于b回传

pow(base, exponent):开方函数

sq(x) 平方:平方函数

sqrt(x): 开根号

Serial.begin(speed)

  • 串口定义波特率函数,设置串行每秒传输数据的速率(波特率),可以指定Arduino从电脑交换讯息的速率,通常置于setup()函数中。

Serial.begin(9600)

Serial.end()

  • 描述:禁止串口传输。此时串口Rx和Tx可以作为数字IO引脚使用。

Serial.print()

  • 描述:串口输出数据,写入字符数据到串口。

Serial.println()

  • 描述:串口输出数据并换行。

Serial.available()

  • 描述:判断串口缓冲区的状态,返回从串口缓冲区读取的字节数。

Serial.read()

  • 描述:读取串口数据,一次读一个字符,读完后删除已读数据。

Serial.readBytes()

  • 描述:从串口读取指定长度的字符到缓存数组。

Serial.flush()

  • 描述:清空缓冲器。 有时候因为资料速度太快,超过程式处理资料的速度,你可以使用此函式清除缓冲区内的资料。经过此函式可以确保缓冲区(buffer)内的资料都是最新的。

Arduino语言库文件
官方库文件

· EEPROM - EEPROM读写程序库

· Ethernet - 以太网控制器程序库

· LiquidCrystal - LCD控制程序库

· Servo - 舵机控制程序库

· SoftwareSerial - 任何数字IO口模拟串口程序库

· Stepper - 步进电机控制程序库

· Wire - TWI/I2C总线程序库

· Matrix - LED矩阵控制程序库

· Sprite - LED矩阵图象处理控制程序库
 

UNO R3开发板

重要的引脚介绍
Power 引脚: 开发板可提供3.3V和5V电压输出,Vin引脚可用于从外部电源为开发板供电。
Analog In引脚: 模拟输入引脚,开发板可读取外部模拟信号,A0~A5为模拟输入引脚。
Digital 引脚:**UNO R3拥有14个数字I/O引脚,其中6个可用于PWM(脉宽调制)输出。数字引脚用于读取逻辑值(0或1),或者作为数字输出引脚来驱动外部模块。标有"~"的引脚可产生PWM。
TX和RX引脚: 标有TX(发送)和RX(接收)的两个引脚用于串口通讯。其中标有TX和RX的LED灯连接相应引脚,在串口通讯时会以不同速度闪烁。
13引脚:**开发板标记第13引脚,连接板载LED灯,可通过控制13引脚来控制LED灯亮灭。一般拿到开发板上电板载灯都会闪烁,可辅助检测开发板是否正常。
 

例1:hello world

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); //初始化串口并设置波特率为9600
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("Hello World!"); //打印Hello World!并回车换行
  delay(1000); //延时等待1s
}

例2:LED灯依次闪烁

/*
   Blink
   等待一秒钟,点亮LED,再等待一秒钟,熄灭LED,如此循环
*/

//在大多数Arduino控制板上13号引脚都连接了一个标有"L"的LED灯
int led = 13;  //给13号引脚连接的设备起一个别名"led"

void setup() {
  pinMode(led, OUTPUT); //将"led"引脚设置为输出状态
}

void loop() {
  digitalWrite(led,  HIGH); //引脚输出高电平1,点亮LED
  delay(1000);  //等待1s
  digitalWrite(led, LOW); //引脚输出低电平0,熄灭LED
  delay(1000);  //等待1s
}

例3 会呼吸的灯 

/*
 * Breath
 * 通过模拟输出PWM控制LED灯,改变其亮度,达到呼吸效果
 */
 
int ledPin = 3;

void setup ()
{
  pinMode(ledPin,OUTPUT);
}

void loop()
{
  for (int a=0; a<=255;a++)                //循环语句,控制PWM亮度的增加
  {
    analogWrite(ledPin,a);
    delay(8);                             //当前亮度级别维持的时间,单位毫秒            
  }
  for (int a=255; a>=0;a--)             //循环语句,控制PWM亮度减小
  {
    analogWrite(ledPin,a);
    delay(8);                             //当前亮度的维持的时间,单位毫秒  
  }

}

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值