最全Arduino的GPIO和基础外设介绍,告别新手期,成为点灯大师(一)

     很多时候学习很多外设和传感器的使用,但是对开发板的了解却并不深入,本文章深入解析arduino uno这块开发板.知己知彼百战不殆.

0.Arduino UNO的参数及其外设.

CPU核心ATmega328P
工作电压5V
数字输入输出引脚(普通引脚)14个(其中有6个引脚可作为PWM引脚)
PWM引脚6个 (3对由3个定时器驱动)
模拟输入引脚(ADC)6个
输入/输出引脚直流电流20 毫安
3.3V引脚电流50 毫安
5V引脚电流200毫安
Flash Memory(闪存)32 KB (ATmega328P) 其中由 0.5 KB用于系统引导(bootloader)
SRAM(静态存储器)2 KB (ATmega328P)
EEPROM1 KB (ATmega328P)
板载LED引脚13
串口USART0
定时器

TIM0(8位) TIM1(16位) TIM2(8位)

IIC1个(A4,A5和板子上的SCL SDA)这两对引脚是一个IIC,可以参考下边文章
SPI        1个(SS-10 SCK-13 MOSI-10 MISO-11)

硬件看门狗

支持

内部时钟16 MHz

1.arduino的引脚图极其介绍

1.1直流电源插孔

-可以使用电源插孔为Arduino开发板供电。电源插孔通常连接到一个适配器。开发板的供电范围可以是5-20V,但制造商建议将其保持在7-12V之间。高于12V时,稳压芯片可能会过热,低于7V可能会供电不足。

1.2 VIN引脚

 - 该引脚用于使用外部电源为Arduino Uno开发板供电。一般5V,离线操作用这个口供电

1.3USB电缆

(数据线接口)- 连接到计算机时,提供500mA/5V电压。

1.4.RESET按键

板子上唯一的按键,RESET 复位键,也就是单片机的重启按键.

1.5 ADC 模数转换器  模拟输入引脚

        10位分辨率,意味着它将模拟信号转换为0到1023之间的数字值。其输入电压范围为0到5V,默认的参考电压为5V。可以使用analogRead()函数来读取模拟输入引脚的值,返回的结果是0到1023之间的整数,表示输入电压在0到5V范围内的位置。

        简单来说,正常普通读取引脚是0或1  ADC可以将0-5V划分为1024份 ,主要用于数据采集,部分传感器需要用adc来读取,

比如光敏传感器,MQ系列气体传感器,pH传感器,压力传感器,电位器等等.

右上角的SCL  SDA其实就是A4 A5 他俩是一样的.(scl sda IIC的引脚,这里了解即可)

1.6 普通引脚 0 -13

                  右侧有每个引脚具备的外设功能,正常情况下他就是个普通的GPIO,可配置为3种模式

 Arduino Uno/Arduino Mega这两个开发板的引脚输出都是5V,这点需要注意.

如果是stm32来说理论上引脚的模式有8种,因为arduino提供初学者,引脚模式精简为3种

模式arduino配置使用情况示例
浮空输入INPUT按键,信号输入等
输出OUTPUT电机,led,输出5V等
上拉输入INPUT_PULLUP按键,信号输入等

关于具体的浮空输入和上拉输入的区别,可以专门去搜索一下,这里不做赘述.

1.7PWM 引脚(图中画#的 有的板子是~号)

        

这些引脚是定时器驱动的PWM,可以从右侧看到他是哪个定时器驱动的,举个例子

引脚11  右侧有OC2A  代表着定时器2的通道A

引脚3   右侧有OC2B   代表着定时器2的通道B

同理.引脚10 9是定时器1的两个通道

引脚5 6 是定时器0的两个通道

一个PWM驱动的demo(定时器2的两个PWM)

void setup() {
  pinMode(3, OUTPUT);  // 设置引脚3为输出
  pinMode(11, OUTPUT); // 设置引脚11为输出
}

void loop() {
  analogWrite(3, 128);  // 设置引脚3的PWM占空比为50%(范围0-255)
  analogWrite(11, 64);  // 设置引脚11的PWM占空比为25%(范围0-255)
  delay(1000);
}

占空比 ,简单来说  如果是50%  也就是输出2.5V (5V的50%)初学者先这么理解.

呼吸灯也就是让单片机给led输出0V到5V这样循环,让人看到由暗到亮的过程.

真正的大师永远怀着一颗学徒的心.

1.8 串口引脚 USART 0 1 RX TX

        arduino uno只有一个硬件串口,下载和通讯都是用的USART0,所以,这里需要注意的是,你如果用0 1 这两个引脚左右串口通讯的时候是没法进行下载的,需要拔掉引脚0 和1才能下载代码

        

        不过也不用担心串口数量不够,arduino支持软件模拟串口,这里不展开讲,如果想让我单独出一期软件串口,可以留言私信.

        关于串口通讯具体细节可以看一下我往期的博客.

   1.9 AREF 参考电压(只影响模拟ADC引脚,不影响普通GPIO)

开发板右上角

        在arduino UNO中,有六个模拟输入引脚,ADC模拟引脚所测量的电压有一个范围,通常来说是0~5V,它能将0 ~ 5 V的电压分成1024份(2^10),算出来即为4.882mV的测量精度,举个例子就是0V的时候测量结果为0,5V为1023,3V约为615.

        如果你输入的电压最大是3.3V,测量出来的最大值也就是675,你可以用map去映射,也可以用arduino开发板提供的AREF,即在AREF接入3.3V作为参考值,这样不仅能直接读到1023,更为重要的是精度提高. 3.3/1023 ==3.223mV

        不用AREF测量3.3V的接入,652,654左右

        

        使用AREF测量

demo

void setup() {
  // 如果需要使用外部电压作为参考
  analogReference(EXTERNAL);  // 使用AREF引脚提供的电压作为参考电压
  Serial.begin(115200);
}


void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(analogRead(A0));
  delay(1000);
}

1.10 Arudino Uno的板载led灯

Arudino Uno提供一个自带的led灯供大家使用,也就是13引脚,如果直接操作13引脚可实现板载led灯的亮灭,这里给一个demo,相关配置的原理可以看 文章(二)

void setup() {
  pinMode(13,OUTPUT);//输出模式
}

void loop() {
  digitalWrite(13,1);
  delay(1000);
  digitalWrite(13,0);
  delay(1000);
}

文章二入口:

Arduino的GPIO和基础外设介绍,告别新手期,成为点灯大师(二)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值