【深海王国】初中生也能画的电路板?番外1:Arduino其他家族成员的拓展板开发(1)

news2025/1/28 11:25:04

Hi~ (o^^o)♪, 各位深海王国的同志们,早上下午晚上凌晨好呀~ 辛苦工作的你今天也辛苦啦(/≧ω)

今天大都督为大家带来电路板的番外系列——初中生也能画的电路板?番外1:Arduino其他家族成员的拓展板开发,带你给其他Arduino家族成员如Pro Mini、Mega2560等,进行拓展版DIY开发,let’s go!

(1)拓展板介绍与Pro Mini拓展板初步设计

ps:此番外系列需要有一定PCB设计基础,建议大家在学习完系列文章
【深海王国】初中生也能画的电路板?手把手教你制作第一个PCB电路板,后再进行学习。

拓展板介绍:

在我们打开某宝,搜索Arduino 拓展板这两个字后,会搜到各式各样的拓展板,大多数都是以Arduino UNO为主,一般都是可以直接插在UNO上的。
而这些拓展板,很大一部分都不是店家自己开发的,大部分来源于GitHub上的开源项目。

PS:GitHub是一个面向开源及私有软件项目的托管平台,因其基于Git进行版本控制而得名。它提供了代码托管、版本管理、协作开发等功能,使开发者能够方便地共享代码和协同工作。是一个非常有知名度的开源平台。

比如比较有名的Simple FOC,无刷电机驱动板:
在这里插入图片描述

还有一些常见的TFT显示屏模块,也是可以直接插在Arduino UNO上的:
在这里插入图片描述

这些都是技术含量蛮高的拓展板,我们初学者可能做不来。
但是像这种某宝上遍地都是的舵机拓展板:
在这里插入图片描述

甚至是A4988步进电机驱动拓展板,其实难度都不大,我们将来完全可以自己画,比如这个就是大都督以前自己画的四路步进电机驱动板:
在这里插入图片描述

为什么要使用拓展板:

给Arduino这种单片机开发板进行拓展板(或称扩展板、Shield)的开发有以下几个主要原因:

  1. 增加功能:Arduino本身的引脚和功能是有限的,有时在项目中需要额外的功能(如无线通信、传感器接口、电机驱动等),通过拓展板可以方便地添加这些功能。
  2. 简化电路设计:通过使用现成的拓展板,可以避免重复设计复杂电路,减少出错几率,加快开发速度。
  3. 保护主板:某些特殊用途(如高功率电机驱动、大电流负载等)可能对Arduino主板本身造成损害,通过拓展板能够有效保护主板(比如在电路中加入一根可更换保险丝),当然了设计的不好也可能直接把主板烧了,比如大都督曾经设计的A4988驱动电路,就把Arduino主板烧了,后面只要是大功率电路,大都督都必加保险丝。
    (lll¬ω¬)
  4. 省时省力,清爽美观:使用现成的拓展板可以大大减少焊接和布线的工作量,特别是对于新手和业余爱好者来说,这会使软硬件集成变得更加简单,整个嵌入式系统也更加简洁美观。

通过设计和使用拓展板,不仅能够满足项目的特定需求,还能带来更好的用户体验和开发效率,是很多Arduino开发者和爱好者常用的一种开发方式。

Arduino Pro Mini拓展板设计:

虽然市面上的Arduino UNO和Nano拓展板很多,但与其同类型同芯片的Arduino Pro Mini拓展板基本没有,所以我们不妨自己来设计一个Pro Mini拓展板。

1. 熟悉开发板的引脚功能

每次在设计拓展板之前,我们都要先熟悉开发板的引脚功能,然后设想一下我们大概需要什么功能,而对应功能所使用的引脚有哪些。
在这里插入图片描述

Arduino Pro Mini的引脚功能图可以参考这篇文章:
(2)Arduino Pro Mini介绍与程序下载失败问题
也可以查看官方的参考文档:
arduino-pro-mini

Pro Mini除了两个多出的A6、A7引脚,剩下的引脚资源都跟Arduino一样,其中常规的引脚功能如下:

功能对应引脚常用模块、传感器
普通数字I/O引脚D0~D13读取高低电平,控制继电器
模拟输入引脚或普通数字I/O引脚A0~A5光敏、距离等各种模拟传感器
仅能作为模拟输入引脚A6、A7各种模拟传感器

这里简单说一下,标号为D的就是数字引脚,可以作为数字输入和输出。标号为A的就是模拟引脚,可以作为模拟输入。
那么可能就有人会问了,那A系列引脚能作为模拟输出吗?答案是不行
其实模拟输出这个描述并不准确,但前期大家可以简单把PWM理解为模拟输出,模拟输出≈PWM。而可以作为PWM的引脚,后面给大家列出来啦。

然后关于什么是数字、什么是模拟什么是PWM可以参考这篇文章:(2)初识Arduino与基本单片机电路知识

2.明确特殊的功能引脚

其中比较特殊的一些功能引脚如下:

特殊功能对应引脚常用模块、传感器
SPID10(SS)、D11(MOSI)、D12(MISO)、D13(SCK)SD卡、显示屏等
I2CA4(SDA)、A5(SCL)激光测距模块、温湿度传感器
外部中断D2(INT0\外部中断0)、D3(INT1\外部中断1)编码器、急停按钮
PWMD3、D5、D6、D9、D10、D11电机、舵机、蜂鸣器等
UART 串口D0(RX\接受)、D1 (TX\发送)下载程序、串口通信
软串口D2~D13(所有数字引脚)串口通信、有一定局限性
板载LED灯D13 `内置LED指示灯控制引脚

关于什么是SPI、I2C还有PWM等等硬件知识,建议大家参考大都督的单片机系列,里面讲的非常简单详细,这里就不多讲啦:
【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!

这里再多提一嘴,软串口局限性方面也可以参考大都督的这篇文章:(8)软串口与SoftwareSerial库使用
和官方文档:软串口库

3.引脚资源分配

在熟悉我们所用开发板的引脚功能后,我们就可以开始分配引脚资源啦。

  1. 在分配引脚资源的过程中,我们首先要考虑特殊引脚,比如软串口使用在Arduino上时,RX在数字引脚13上不工作,同时13引脚也是板载LED引脚,所以我们能不用尽量不用。
  2. 然后考虑像SPI引脚和I2C功能都有固定功能的引脚号。
  3. 在考虑完这些特殊引脚之后,我们就要考虑常规引脚比如PWM引脚是否跟这些特殊引脚有冲突。

大概就是怎么个流程,这里再碎碎念一下,Arduino的引脚虽然不多,看起来做这些工作很多余,但大都督希望大家能通过这个简单的开发板举一反三,触类旁通,将来去开发更难的项目。

掌握方法,有时候比结果更重要。

通过上面的方法,就可以列出我们拓展板的引脚功能分配表啦,引脚号按顺序排,在接下来进行PCB设计时会更轻松:

引脚号功能
D0、D1硬件串口
D2、D3中断引脚
D4普通的数字I/O引脚
D5、D6PWM
D7、D8软串口
D9PWM
D10~D13SPI
A0~A3模拟输入引脚
A4、A5I2C
A6、A7模拟输入引脚

接下来我们照着这个引脚功能表,去画原理图和PCB就方便多了。

今天的学习到这里就差不多啦,下节我们就开始进行Arduino Pro Mini拓展板的原理图和PCB绘制,看到这里的你今天也辛苦啦,加油٩(ˊᗜˋ)و✧

哈哈,让焦虑不再蔓延,信息不再高壁,如果你觉得这篇文章对你有帮助,就来个免费的点赞吧!

(◍˃̶ᗜ˂̶◍)✩我深海大都督正式授予你深海王国公民的身份~

(・ω< )★ 加入深海大家庭,快乐摆烂每一天!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1972453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据库漫游记:表、视图、函数、存储过程及触发器之跨平台兼容性分析(上)

先言之 &#x1f31f;余撰此文&#xff0c;乃为导引初窥数据库之学人&#xff0c;俾其明了表、视图、函数、存储过程及触发器之义理&#xff0c;及其于诸般平台之上创建、修改与废弃之法式。盖初学之人&#xff0c;常陷于迷雾之中&#xff0c;难辨东西&#xff0c;故须详述而明…

lombok使用@slf4j 运行时提示找不到符号log(Missing POM for org.projectors:lombok:jar)

1.问题表现 原本是之前搭建好的工程&#xff0c;只是换了个开发环境重新启动就不行了。一直编译不通过&#xff01; 可以看到IDEA其实是引入了依赖的 都没有出现红色波浪线 <mapstruct.version>1.5.5.Final</mapstruct.version> <lombok.version>1.18.30<…

鸿蒙(API 12 Beta2版)NDK开发【JSVM-API使用规范】

JSVM-API使用规范 生命周期管理 【规则】 合理使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope管理JSVM_Value的生命周期&#xff0c;做到生命周期最小化&#xff0c;避免发生内存泄漏问题。 每个JSVM_Value属于特定的HandleScope&#xff0c;HandleScope通过OH_JSV…

【Python实战因果推断】71_图因果模型6

目录 Positivity Assumption An Identification Example with Data Confounding Bias Positivity Assumption 调整公式同样强调了正则性&#xff08;positivity&#xff09;的重要性。因为你正在对治疗和结果之间的差异在X的条件下求平均&#xff0c;你必须确保对于所有X的…

【32单片机篇】项目:WIFI天气预报

一、项目需求 使用 ESP8266 通过 HTTP 获取天气数据&#xff08;心知天气&#xff09;&#xff0c;并显示在 OLED 屏幕上。 按键 1 &#xff1a;循环切换今天/明天/后天天气数据&#xff1b; 按键 2 &#xff1a;更新天气 二、项目框图 三、硬件部分 四、项目源码及实现 1.项…

MySQL是怎样运行的——第1章 初识MySQL

文章目录 1. 1 MySQL的客户端/服务器架构1.2 安装MySQL&#xff08;略&#xff09;1.3 启动MySQL服务器程序1.4 启动MySQL客户端程序1.5 客户端与服务器连接的过程1.6 服务器处理客户端请求 1. 1 MySQL的客户端/服务器架构 MySQL的运行过程就是C/S架构。多个客户端程序连接到服…

洛谷 P1868 饥饿的奶牛

原题 题目描述 有一条奶牛冲出了围栏&#xff0c;来到了一处圣地&#xff08;对于奶牛来说&#xff09;&#xff0c;上面用牛语写着一段文字。 现用汉语翻译为&#xff1a; 有 N 个区间&#xff0c;每个区间x,y 表示提供的x∼y 共y−x1 堆优质牧草。你可以选择任意区间但不…

dockerfile定制镜像 docker-compose编排容器

1 dockerfile dockerfile本质上是利用了Linux系统的挂载&#xff08;UnionFS&#xff09;&#xff0c;将多个目录挂载到同一目录下&#xff0c;实现镜像的层叠式结构&#xff0c;从而实现功能聚合。 1.1 一个最简单的程序 package mainimport "fmt"func main() {f…

【leetcode详解】覆盖所有点的最少矩形数目(C++思路详解)

思路详解&#xff1a; 0. 题目情境并未限制矩形高度&#xff0c;故矩形数目的判断只和点的横坐标有关 1. 为了不重不漏地考虑到所有点&#xff0c;故笔者选择首先将二维数组中的点按横坐标的大小排序 //说明&#xff1a;本来笔者以为需要自定义sort排序&#xff0c;后来发现…

智慧水务项目(三)django(drf)+angular 18 创建系统管理的用户、角色、部门、权限管理等model

一、说明 添加各model 添加requirement.txt中的库 添加env.py中的动态配置 二、env.py全文 import os from smartwater.settings import BASE_DIR# # # ************** mysql数据库 配置 ************** # # # # 数据库地址 DATABASE_ENGINE "django.db.backends.…

SQL查询注意事项

判断字符串长度要用函数CHAR_LENGTH(str)&#xff0c;他会返回字符串的长度&#xff0c;如果使用length(str)函数&#xff0c;在对中文字符或特殊字符时&#xff0c;返回的是在当前编码下该字符的字节数。如在mysql中的utf-8编码情况下&#xff0c;length(&#xffe5;)返回结果…

ASUS/华硕幻14 2021 GA401Q系列 原厂win10系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows10 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-62 - 判断元素是否可操作

软件测试微信群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 有些页面元素的生命周期如同流星一闪&#xff0c;昙花一现。我们也不知道这个元素在没在页面中出现过&#xff0c;为了捕获这一美好瞬间&#xff0c;让其成为永恒。我们就来判…

HiFi桌搭的新选择,更符合发烧友使用习惯的飞傲K19

飞傲的便携设备很多人都用过&#xff0c;性价比很高&#xff0c;设计也很精致&#xff0c;并且功能上针对不同的需求也有丰富的选择&#xff0c;而在针对耳机的台式设备方面&#xff0c;飞傲同样非常有实力&#xff0c;我最近用了一款飞傲K19&#xff0c;这台设备不仅功能完备&…

ZYNQ SDK/Vitis undefined reference to `sin‘ wave.c

问题 ZYNQ SDK或者VItis在使用到sin函数时编译报错&#xff1a; undefined reference to sin wave.c问题解决&#xff1a; 右键点开C/C Build Settings 选项 在Settings 选项的Libraries 添加 m&#xff0c;点击OK

用Java手写jvm之模拟运行时数据区的虚拟机栈,局部变量表,操作数栈等

写在前面 下图是jvm的运行时数据区内存图&#xff1a; &#xff0c;本文要模拟的是虚拟机栈的相关内存结构的交互过程。 1&#xff1a;正文 因为我们这里模拟的是线程执行方法调用的过程&#xff0c;所以这里先来定义一个线程对象&#xff1a; public class Thread {// 程…

卸载Windows软件的正确姿势,你做对了吗?

前言 今天有小伙伴突然问我&#xff1a;她把软件都卸载了&#xff0c;但是怎么软件都还在运行&#xff1f; 这个问题估计很多小伙伴都是遇到过的&#xff0c;对于电脑小白来说&#xff0c;卸载Windows软件真的真的真的是一件很难的事情。所以&#xff0c;今天咱们就来讲讲&am…

springboot贫困生认定和资助管理系统-计算机毕业设计源码71367

摘要 本文介绍了一个基于Java的贫困生认定和资助管理系统的设计与实现。该系统旨在通过自动化、智能化的管理方式&#xff0c;提高贫困生认定和资助工作的效率与准确性。系统采用Java作为主要开发语言&#xff0c;结合了数据库技术和Web开发技术&#xff0c;实现了贫困生信息的…

运维之路----计算机基础

目录 ​编辑 一&#xff0c;计算机的组成 1&#xff0c;硬件 2&#xff0c;软件 二&#xff0c;计算机中的一些概念 冯诺依曼体系 二进制 摩尔定律 计算机的分类 1&#xff0c;按照规模分 2&#xff0c;按照功能分 拓扑 存储器的层次结构 并行与并发 缓存 操作系…