一步步入门机器人【Arduino基础】

文章目录


碎碎念

博主C语言基础内容学习完后,平时的学业任务也比较重,所以没有坚持写博客,最近这段时间我会总结我这段时间学到的知识与成果与大家分享。因为我也是初学者,对于所学知识的总结难免会有漏洞,欢迎大家批评指正。


一、什么是Arduino

Arduino 是一个能够用来 感应 和 控制 现实物理世界的一套工具。

Arduino 是一个基于单片机并且 开放 源码的硬件平台,和一套为 Arduino 板编写程序的开发

环境( 免费 )组成。

Arduino 简化 了单片机工作的流程,同其它系

统相比, Arduino 在很多地方更具有优越性,

特别适合老师,学生和一些业余爱好者们使用

篇外:Arduino名称由来

意大利北部一个如诗如画的小镇「Ivrea」,横跨过蓝绿色Dora Baltea河,它最著名的事迹是关于一位受压迫的国王。公元1002年,国王Arduin成为国家的统治者,不幸的是两年后即被德国亨利二世国王给废掉了。今日,在这位无法成为新国王的出生地,

cobblestone街上有家叫「di Re Arduino」的酒吧纪念了这位国王。Massimo Banzi经常光临这家酒吧,而他将这个电子产品计划命名为Arduino以纪念这个地方。

二、单片机&嵌入式系统&微控制器

名词解释

代码如下(示例):

单片机 :直接理解为微控制器
微控制器(MCU) :基本计算机(为什么是计算机?因为 MCU 中使用的基本组件:CPU、系统时钟、内存,所有这些都是计算机使用的。什么样的计算机?完成单一功能的计算机)
嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统(说人话:计算机技术"嵌入"到各种设备中,让这些设备变得更智能、更强大)

How dose it work?

这里只简单介绍单片机的原理而不细究,因为应用时我们主要关注单片机上的程序怎么写。

冯诺依曼结构的灵魂

回顾历史:早期的计算机程序是硬件化的,程序和数据是俩个截然不同的概念,数据放在存储器中,而程序作为控制器的一部分

冯诺依曼的横空出世,将最初的硬件化程序变为可编程、可存储编码,放在存储器中,随意使用。将程序编码为数据,然后与数据一同存放在存储器中,无论什么程序,最终都是会转换为数据的形式存储在存储器中,要执行相应的程序只需要从存储器中依次取出指令、执行(譬如exe文件就是二进制编码的文件,可以直接运行)这种设计思想导致了硬件和软件的分离,即硬件设计和程序设计可以分开执行

How to use it?

硬件

Arduino Uno:基础款,适合入门的同学学习使用

Arduino Mega-2560:提供丰富的输入输出端口

Arduino LilyPad:可穿戴的电路板,适合开发可穿戴创意设备Arduino Nano:微型电路板
软件

ArduinoIDE

二、认识硬件

三、数字和模拟

模拟(analog)信号 :在自然界中,我们可以感知的,在时间和幅值上都是连续的物理量称为模拟信号。
数字(digital)信号 :数字信号是指在取值上是离散的、不连续的信号,只有有限个特定的电压值,表现为瞬时跳变直方形


从模拟到数字

在电学中,用传感器将这样的物理量转变成为电信号,通常用连续变化的电压值或电流值表示。

采样:将时间上连续、幅度上也连续的模拟信号变换成时间上离散、但幅度上仍连续的已采样信号,采样完成模拟信号在时间上的离散化。

量化:用预先规定好了的有限个电平值来表示模拟抽样值,量化完成模拟信号在幅度上的离散化

编码:通常采用二进制编码,即用N 位二进制代码来表示量化值。

四、认识Arduino IDE




五、PWM波与呼吸灯

Pulse Width Manipulate------脉宽调制

可以通过改变高电压在整个周期内的比重(也叫占空比)产生近似于连续变化的有效值。

可以用于连续调节(亮度、转速等)

控制LED亮度

回顾之前讲到的模拟信号和数字信号

Q:如何用digital_write控制输出亮度(电压)?A:使用PWM波

Q:如何输出不同的亮度?

A:改变PWM的占空比

呼吸灯

相关推荐
weiabc1 小时前
MessageBox的用法,在Delphi与vs中的区别
学习
物联网牛七七1 小时前
2、stm32f407学习笔记-存储器和寄存器以及映射
笔记·stm32·学习
源文雨1 小时前
批量递归转换 mp4 为 flac/m4a 的 bash 脚本
开发语言·ffmpeg·bash·转码·mp4·m4a·flac
不绝1911 小时前
C#进阶:协程与事件
开发语言·c#
feifeigo1231 小时前
斜激波参数计算MATLAB程序
开发语言·matlab
小小前端--可笑可笑1 小时前
【Three.js + MediaPipe】视频粒子特效:实时运动检测与人物分割技术详解
开发语言·前端·javascript·音视频·粒子特效
奔跑的web.1 小时前
JavaScript 对象属性遍历Object.entries Object.keys:6 种常用方法详解与对比
开发语言·前端·javascript·vue.js
古城小栈2 小时前
Rust 模式匹配 大合集
开发语言·后端·rust
王解2 小时前
game1
学习·ctf