Arduino uno基础教程

Arduino uno R3创客增强板学习记录


前言

   Arduino是一款便捷灵活、方便上手的的开源电子原型平台,Arduino平台由硬件(各种型号的Arduino控制板)和Arduino集成开发环境(Arduino IDE)组成,可以理解Arduino为Arduino软硬件平台的统称。

推荐学习网站:
   链接: Arduino中文社区.(有用的资源下载、交流提问)
   链接: Arduino官网.(加载较缓慢,全英文,用来查询Arduino programming language,新手可以使用下面的那个链接参考中文版)
   链接: 函数参考文档
   更详细的教程可参考:转自Arduino.cn
开发板:
   1.ARDUINO UNO R3(入门推荐,学生购买国产就行,有钱买意大利原版)、ARDUINO MEGA 2560(使用最多)
   2.ARDUINO LEONARDO WITH HEADERS
   3.ARDUINO 101
   4.ARDUINO MICRO
   5.ARDUINO NANO
   6.ARDUINO DUE
   7.ARDUINO ZERO
   ……
   推荐使用Arduino IDE(虽然很多人吐槽它没有代码提示功能,其实我也是,但是它的优点不容忽视,简单易上手,还可以玩esp系列,能力强的还可以在上面玩stc和stm32,如果你想瞎折腾那就怼vscode上的platform,新手不建议,这里只是简单介绍,让你了解)

   Arduino使用C/C++编写程序,虽然C++兼容C语言,但这是两种语言,C语言是一种面向过程的编程语言,C++是一种面向对象的编程语言。早期的Arduino核心库使用C语言编写,后来引进了面向对象的思想,目前最新的Arduino核心库采用C与C++混合编写而成。通常我们说的Arduino语言,是指Arduino核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。这些API是对更底层的单片机支持库进行二次封装所形成的。


一、I/O口的简单使用

Digital I/O
pinMode(pin,mode)
在使用输入或输出功能前,你需要先通过pinMode() 函数配置引脚的模式为输入模式或输出模式
pin:设置的数字管脚号
mode: INPUT 输入模式,OUTPUT 输出模式,INPUT_PULLUP 输入上拉模式
输入上拉模式:

digitalWrite(pin,value)
配置成输出模式后,使用digitalWrite() 让数字管脚输出高电平或者是低电平
value:HIGH,LOW

digitalRead(pin)
digitalRead()读取指定的数字管脚的电平,返回值为获取到的信号状态,1为高电平,0为低电平

/*
  boom:res(220*1,10k*1),button*1,lines
  circuit:	Led anodeattached from pin 13 to ground,pushbutton attached from pin 2 to +5V
*/
const int ledPin=13;
const int buttonPin=2;
int buttonState=HIGH;
void setup() {
  // put your setup code here, to run once:
  pinMode(ledPin,OUTPUT);
  pinMode(buttonPin,INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  buttonState=digitalRead(buttonPin);
  if(buttonState==HIGH){
    digitalWrite(ledPin,HIGH);
  }
  else{
    digitalWrite(ledPin,LOW);
  }
}

Analog I/O
analogRead(pin)
它可以将外部输入的模拟信号转换为芯片运算时可以识别的数字信号,从而实现读入模拟值的功能。
pin:设置的模拟输入管脚号

analogWrite(pin,value)
将模拟值(PWM波)写入引脚。可以用来照亮不同亮度的LED或驱动不同速度的电机。调用analogWrite()后,引脚将生成指定占空比的稳定方波,直到下一次调用analogWrite()(或在同一引脚上调用digitalRead()或digitalWrite())。模拟写入功能与模拟引脚或模拟读取功能无关
pin:是指定要输出PWM波的引脚;
value:指定是PWM的脉冲宽度,范围为0~255。

const int led=8;

void setup() {
  // put your setup code here, to run once:
  pinMode(led,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  for(int i=0;i<=255;i++){
    analogWrite(led,i);//i达到一定的数即led越过死去电压进入导通电压区
    Serial.println(i);//通过串口监视器观察
    delay(100);//以便观察,避免i变化太快实际led亮度没有来得及变化
    
  }
  for(int i=255;i>=0;i--){
    analogWrite(led,i);
    Serial.println(i);
    delay(100);//以便观察,避免i变化太快实际led亮度没有来得及变化
  }
  
}

analogReference(type)
配置用于模拟输入的参考电压(即用作输入范围顶部的值)
type: DEFAULT, INTERNAL, INTERNAL1V1, INTERNAL2V56, or EXTERNAL

二、I/O口的高级使用

Advanced I/O
tone()
noTone()
shiftOut()
shiftIn()
pulseIn()

Time
millis()
micros()
delay()
delayMicroseconds()

Random Numbers
randomSeed()
random()

External Interrupts
attachInterrupt()
detachInterrupt()

Interrupts
interrupts()
noInterrupts()

三、类库的使用和编写

   3.1使用类库

   3.2编写类库

四、通信

    4.1 串口通信

Serial
if (Serial)
available()
availableForWrite()
begin()
end()
find()
findUntil()
flush()
parseFloat()
parseInt()
peek()
print()
println()
read()
readBytes()
readBytesUntil()
readString()
readStringUntil()
setTimeout()
write()
serialEvent()

    4.2 无线通信

====

五、显示器的使用

六、存储

七、拓展

    7.1 USB类库的使用

    7.2 Ethernet类库的使用

八、网络篇(Esp8266与Arduino)

总结

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值