Ardunio UNO 1 ~数字接口
一、Arduino 和 Arduino UNO 科普Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti等。 它构建于开放原始码simple I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。
Arduino Uno是基于ATmega328P的微控制器板。它有14个数字输入/输出引脚(其中6个可用作PWM输出),6个模拟输入,16MHz晶振时钟,USB连接,电源插孔,ICSP接头和复位按钮。只需要通过USB数据线连接电脑就能供电、程序下载和数据通讯。
Arduino UNO R3是一款非常适合单片机入门的开发板,采用AVR单片机ATmega328P作为主控制器,集成开发环境为Arduino IDE,可以帮助初学者快速掌握单片机技术。
https://mc.dfrobot.com.cn/data/attachment/album/202103/13/155807oqqx0soghqghnaxv.jpg
二、Arduino UNO数字口
数字接口,总共16个,功能有区别:
1.数字接口从图上可以看到总共有14个(0~13号),0号和1号口属于串口通信用的TX,RX,一般我们不去占用;从2号口到13号口是我们可随意使用的数字接口数字接口可以读取数字信号,也可以输出数字信号,而在2到13号口中带有“~”符号的接口代表它不仅可以输出高电平和低电平信号,也可以输出PWM信号,不带“~”符号的接口就只能输出5V高电平或者0V低电平。输出高电平和低电平可以简单理解为只能输出5V和0V。
https://mc.dfrobot.com.cn/data/attachment/album/202103/13/160426esv5ddsv2vs9kqt9.jpg
三、入门案例
输出信号 digitalWrite(pin, value)
pin: the Arduino pin number.
value: HIGH or LOW.
读入信号
digitalRead(pin)案例电路连接图
数字控制 经典案例《开关灯》
int LED = 13;
void setup() {
// 定义13为输出引脚
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH); // 点亮LED
delay(1000); // 持续1秒
digitalWrite(LED, LOW); // 熄灭LED
delay(1000); // 持续1秒
}
2.带有“~”符号的接口PWM(Pulse-width modulation)还可以输出模拟信号 。PWM是一种方波控制信号。方波高电平的宽度在一个周期里的占比被称为占空比(Duty Cycle)。改变PWM的占空比,可以改变输出信号的平均电压,实现模拟电压的输出。
Arduino Uno的3,5,6,9,10,11接口可以通过简单语句analogWrite(pin, dutyCycle)来实现一个指定占空比的PWM。其中pin的值选择(5,6,9,10,3,11),dutyCycle的值在0~255之间,0为占空比0%,255为占空比100%。但是这种方式PWM信号的频率是固定的默认值,大约1000Hz左右(16MHz/64/256)。
analogWrite(pin, dutyCycle)
案例电路连接图
PWM案例《控制LED的亮度》
#define LED 3 //定义LED灯引脚
int i = 0; //存储最新数值变数,我们将使用它来从上到下计数
void setup(){
pinMode(LED,OUTPUT); //设定LED引脚为输出
}
void loop(){
for(i = 0;i < 255;i++){ //变数从0到254之间变化(渐强)
analogWrite(LED, i); //设定LED亮度
delay(10); //延时10ms,因为analogWrite执行瞬间完成,
//速度太快不易察觉
}
for(i =255;i > 0; i--){ //变数从255到1之间变化(渐弱)
analogWrite(LED, i); //设定LED亮度
delay(10); //延时10ms
}
}
页:
[1]