Arduino学习总结

Arduino学习总结

kagula

2021-4-16

前言

Arduino是最常用的单片机之一,作为一个多年的程序员,但是没有实践过模电、数电操作的IT人来说,还是值得花两天学习下的。

我把这几天断断续续的学习成果,在这里做下总结。

内容概要

 本文是学习Arduino的指引,向广大没有实践过下位机的专业程序员介绍哪里去寻找相应的入门资料,也记录下我的学习心得。

不建议看视频学习,对我们已经完成数字电路和模拟电路课程、计算机程序语言课程学习的同学,会觉得罗里吧嗦,是种折磨。

对于不知道什么叫频率,数字信号,频宽,串口通讯原理等基础知识的读者,不建议你阅读本文。

正文

准备工作

首先你得准备实验用器材

  • Arduino Uno R3 兼容板(原版更好)
  • 面包板及用于面包板的线
  • 若干电阻
  • 可变电阻
  • 若干二极管
  • 温度传感器
  • OLED显示屏

建议在taobao买个Arduino Uno R3学习套餐,一百块钱不到, 还送一堆学习资料可以用来参考。

在你的计算机中安装开发环境

  1. 首先安装Arduino IDE, 下载地址:https://downloads.arduino.cc/arduino-1.8.13-windows.exe
  2. 如果你用的是Arduino Uno R3兼容版, 还需要安装串口驱动; 下载地址:   http://www.wch.cn/downloads/file/65.html?time=2021-04-01%2018:28:07&code=bVmIL8vv0ZVH2sSRefJFgM2c8xDrYMn3YcMFgnQW

有一个Arduino开发的概念

首先需要拿起开发板,观察开发板的各个引脚,开发板的物理和电气特性查看下面的资料

https://www.w3cschool.cn/arduino/arduino_board_description.html

现在,我们来做两个简单的project,第一个project可以是下面这个实验

第一个实验,LED闪烁实验

https://www.w3cschool.cn/arduino/arduino_blinking_led.html

第二个实验,读取模拟电压

https://www.w3cschool.cn/arduino/arduino_reading_analog_voltage.html

做完这两个实验我们再来看看什么是Arduino

Arduino学习总结
图一 Arduino的IO函数

 

参考图一,使用输入输出函数之前我们一般需要先在setup函数里设置pin的模式,然后我们在loop函数里使用这些pin。

Arduino芯片对外部的交流归根结底都是有图一的四个I/O函数来实现,但是我们要改变脉冲宽度,频率,收发异步或同步数据,使用这几个函数加上delay函数用来延时,很不方便。

比如说要通过串口通讯和上位机(计算机)交互,这时候可以通过一些现成的封装库来实现。Serial对象是其中最重要的,通过Serial对象可以从Serial Monitor中读取控制信息,也可以在Serial Monitor中看到Arduino的反馈信息。

Serial对象,使用示例

Serial.begin(9600)//在setup函数里设置Serial的波特率
//下面的代码在loop函数里执行
val=Serial.read();//读取串行端口的值
Serial.print(val, DEC);//往串口打印数据,通过Arduino IDE中的Main Menu->Tools->Serial Monitor 可以看到上行到计算机中的数据
Serial.println("This is a string");//打印字符串示例。

串口用到了0和1数字pin,所以你在使用Serial对象和主机通讯时,建议不要使用这两个pin。

IIC通讯协议,也是被经常使用到的

通过下面的连接完成OLED显示屏的显示,会让你对如何使用IIC协议的封装库有个概念。

《Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解》

https://blog.csdn.net/qq_44343584/article/details/105667492

可以向你OLED屏幕的卖家索要资料,里面也有大量的示例代码。

OLED屏也可以使用SPI接口,懒得试了。

为了加深Arduino libraries的封装,我们可以做个步进电机实验来加深Arduino开发印象。

 《Arduino步进电机》

https://www.w3cschool.cn/arduino/arduino_stepper_motor.html

这里要注意的是, 某些封装规定了必须得固定使用一些pin,还有一些pin是共享单片机同一个内部引脚的。

后言

Arduino是不是超级无敌简单, 了解了Arduino我们可以做很多有趣的事情,比如说检测到土壤缺水,我们可以自动控制电机进行浇灌,也可以用来控制机械臂。

  

上一篇:Oracle锁机制


下一篇:Serial Box for Mac(软件序列号查询软件)