让你一文学会arduino

Kate ·
更新时间:2024-11-10
· 903 次阅读

大家好我是你们的朋友JamesBin,这篇课文能让你从0到1的学习arduino,下面让我们开始学习吧!

三相电详解一、认识arduino二、点灯程序三、闪烁LED灯四、呼吸灯五、按键六、按键消抖持续更新中 一、认识arduino

  Arduino这个名字源于意大利语,本意为“强壮的朋友”,于2005年诞生于意大利的伊夫雷亚交互设计学院(Interaction Design Institute Ivrea),主导项目的主要创始人之一名叫Massimo Banzi。

  Arduino项目创建的初衷,是为了降低交互设计学院里学生创作交互作品的门槛。其中除了减少学生的花费以外,还考虑到了其学习的难度。也就是说,只要花费很少的money,具有非常少量的编程知识,就可以根据天马行空的创意,创造出不同的作品。

  本着开源的精神,让更多的爱好者受益,Arduino项目创建的伊始,就遵守了开源硬件的协议,任何人都可以免费拿到Arduino硬件电路板的设计图纸,并根据自己的设计工艺进行批量生产。
近年来随着智能硬件的崛起,全世界兴起了一种名为创客的风潮,他们使用Arduino及其周边的各种硬件模块,快速搭建各种好玩的产品。比如可以快速创建个性化的空气质量检测器,火灾报警器,甚至有爱猫的朋友作出智能喂猫器,甚至还可以做出各种稀奇古怪的小型机器人,飞行爱好者们设计出各种飞行器,从而最终完成各种惊险刺激的航拍。
  既然Arduino可以做出这么多有趣的东西,接下来就让我们认识一下她吧!在这里插入图片描述
图片来源:Arduino UNO电路板

图片来源:Arduino UNO电路板
如上图所示,Arduino的基础电路板名叫Arduino UNO。这款电路板最初是2011年9月25日在纽约创客大会(New York Maker Faire)上发布的,型号名字“UNO”,是意大利语中“一”的意思。
简单概括来说,电路板主要包括三大部分:

处理器 电源接口 扩展插槽

处理器使用的是Atmel公司生产的处理器。
  电源的供电方式有三种,第一种是直接通过USB接口直接供电,第二种是通过柱形外部电源接口进行供电,最后一种是通过扩展插槽上的3V或5V引脚进行供电。
  扩展插槽主要分为模拟信号引脚和数字信号引脚以及接地引脚。顾名思义,数字信号引脚可以直接引入或输出的是数字信号,模拟信号引脚引入或输出的是模拟信号。当电路设计复杂的时候,扩展插槽可以接入扩展板,根据不同需求,对整个电路板进行扩展,增强了基础电路板的可扩展性。图中的重启按钮可以对整个电路板进行重启操作。

二、点灯程序

硬件方面
在这里插入图片描述
图片来源:Arduino-UNO-LED

具体包括如下:

Arduino UNO电路板(1块)
mini面包板(1块)
220欧姆电阻(1个)
LED灯(1盏)
面包线(2根)

软件方面只需要Arduino官方提供的IDE即可。
准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!
连接电路
在这里插入图片描述

代码:

int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); }

代码解释:

int led = 13; // 定义针脚号,数字类型为整型 // 对Arduino电路板或相关状态进行初始化方法 pinMode(led, OUTPUT); // 设定13号针脚为输出状态,pinMode()方法是Arduino类库提供的系统方法,调用的时候需要传入两个参数。一个是针脚号,另一个是针脚号的状态。 三、闪烁LED灯

硬件方面
在这里插入图片描述
图片来源:Arduino-UNO-LED

具体包括如下:

Arduino UNO电路板(1块)
mini面包板(1块)
220欧姆电阻(1个)
LED灯(1盏)
面包线(2根)

软件方面只需要Arduino官方提供的IDE即可。
准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!
连接电路
在这里插入图片描述

int led = 13; // 定义针脚号,数字类型为整型 void setup() { pinMode(led, OUTPUT); } // 系统调用,无限循环方法 void loop() { digitalWrite(led, HIGH); delay(1000); // 此处向Arduino的13针脚发送低电压状态, // 此状态可以让LED神灯熄灭 digitalWrite(led, LOW); // 再次延迟1000毫秒,也即1秒钟, delay(1000); } 四、呼吸灯

硬件方面
在这里插入图片描述
图片来源:Arduino-UNO-LED
软件方面
只需要Arduino官方提供的IDE即可。
准备好上面这些之后,接下来只要连接好电路,敲几行简单的代码,就可以让我们的神灯闪烁起来!
连接电路
在这里插入图片描述
代码如下:

void setup () { pinMode(13,OUTPUT); } void loop() { //循环语句,控制PWM亮度的增加 for (int a=0; a=0;a--) { analogWrite(11,a); delay(10);//当前亮度的维持的时间,单位毫秒 } delay(800);//完成一个循环后等待的时间,单位毫秒 } 五、按键

硬件方面
在这里插入图片描述
图片来源:Arduino电路配件

具体包括如下:

Arduino UNO电路板(1块)
面包板(1块)
10k电阻(1个)
按键开关(1个)
面包线(3根)

软件方面
Arduino官方提供的IDE,和之前一样。
在这里插入图片描述
代码如下

const int buttonPin = 2; const int ledPin = 13; // 定义按键状态变量初始值为0 int buttonState = 0; void setup() { // 设置ledPin端口为输出端口 pinMode(ledPin, OUTPUT); // 设置buttonPin端口为输入端口 pinMode(buttonPin, INPUT); } void loop() { // 读取按键状态 buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { // 点亮LED神灯 digitalWrite(ledPin, HIGH); } else { // 熄灭LED神灯 digitalWrite(ledPin, LOW); } } 六、按键消抖

连线:
在这里插入图片描述

Arduino UNO电路板(1块) 面包板(1块) 10k电阻(1个) 按键开关(1个) 面包线(3根)

代码

// 定义按键输入针脚号常量, // 并初始化为2号针脚。 const int buttonPin = 2; // 定义LED输入针脚号常量, // 并初始化为13号针脚。 // 注:此处我们使用的LED神灯是Arduino UNO电路板自带, // 此神灯对应的针脚号默认为13,此数值不得随意更改, // 所以这里定义的数值13是为了和默认值相对应。 const int ledPin = 13; // 定义记录LED神灯当前状态的变量, // 并初始化状态为HIGH。 int ledState = HIGH; // 定义记录按键当前状态的变量 int buttonState; // 定义记录按键最近一次状态变化的变量, // 并初始化状态为LOW。 int lastButtonState = LOW; // 定义记录最近一次抖动的时间变量, // 并初始化时间为0毫秒。 long lastDebounceTime = 0; // 定义延迟抖动的时间变量, // 并初始化为50毫秒。 long debounceDelay = 50; // 对Arduino电路板或相关状态进行初始化方法 void setup() { // 设置按键的针脚为输入状态 pinMode(buttonPin, INPUT); // 设置电路板上LED神灯的针脚状态为输出状态 pinMode(ledPin, OUTPUT); // 设置电路板上LED神灯的初始状态, // 此处因为变量ledState的初始状态为HIGH, // 所以LED神灯的初始状态为亮。 digitalWrite(ledPin, ledState); } // 系统调用,无限循环方法 void loop() { // 读取按键的状态 int reading = digitalRead(buttonPin); // 判断当前的按键状态是否和之前有所变化 if (reading != lastButtonState) { // 如果按键发生了变化, // 则重新设置最近一次抖动的时间。 lastDebounceTime = millis(); } // 判断按键按下或抬起的状态时间间隔是否大于延迟抖动的时间长度。 // 方法millis()可以获取当前时间,单位统一为毫秒。 if ((millis() - lastDebounceTime) > debounceDelay) { // 判断当前的按键状态是否和之前有所变化 if (reading != buttonState) { // 如果发生了变化, // 则更新按键状态变量。 buttonState = reading; // 判断按键的状态是否为按下, // 只有在按键按下的时候, // 才改变LED神灯的状态。 if (buttonState == HIGH) { // 如果LED神灯当前为亮度, // 则变为灭。如果为灭, // 则变为亮。 ledState = !ledState; } } } // 最终改变电路板上LED神灯的状态 digitalWrite(ledPin, ledState); // 更新按键最近一次状态变化的变量 lastButtonState = reading; } 持续更新中
作者:James Bin



文学 arduino

需要 登录 后方可回复, 如果你还没有账号请 注册新账号