【深海王国】小学生都能玩的单片机?零基础入门单片机Arduino带你打开嵌入式的大门!(10)

Hi٩(๑o๑)۶, 各位深海王国的同志们,早上下午晚上凌晨好呀~辛勤工作的你今天也辛苦啦

(o゜▽゜)o☆ 今天大都督继续为大家带来系列——小学生都能玩的单片机!带你一周内快速走进嵌入式的大门,let’s go!

(10)总结:学习Arduino踩过的坑

恭喜大家!来到了本系列最后一节,即将顺利完成本系列的学习,相信大家现在已经对单片机有了一定了解,这节我们要做个总结,大都督分享一下自己当初学Arduino时遇到的诸多问题,帮助大家避坑!

Arduino上传代码的问题:

  1. Arduino是可以直接使用标准串口上传代码的,不一定要使用USB接口。只要将USB转TTL串口模块连接至Arduino的标准串口即可(即0、1引脚)。
  2. 一部分Arduino需要冷启动才能上传代码,比如Arduino Nano、Arduino Pro Mini。也就是说,在上传之前,需要按住Arduino上的reset重置按钮,当Arduino IDE提示正在上传的时候,松开重置按钮,才能完成上传。
  3. 没有安装CH340驱动。(详见(4)CH340驱动安装与Arduino程序下载)
  4. 没有共地。(详见初识Arduino与基本单片机电路知识)

蓝牙串口模块问题:

  1. 熟悉大都督的小伙伴们都知道,大都督经常用的是BLE低功耗蓝牙HC-08,为什么呢。其中一个原因就是因为蓝牙功耗问题,传统蓝牙例如HC-05或HC-06模块的工作电压是3.3V,但是,用3.3V供电很可能会让蓝牙模块功率不足,甚至频繁断开连接的问题,而用低功耗蓝牙就不存在这个问题。

  2. 虽然蓝牙模块一般都是3.3V供电,但实际上用Arduino开发板上的5V引脚供电也是可以的,虽然理论上说这样有烧坏芯片的风险,但大都督本人亲身实验,用5V供电一段时间是没问题的,还可以解决传统蓝牙功率不足的问题,如下:用5V供电灯会更亮一点,哈哈。
    在这里插入图片描述

  3. 使用蓝牙模块连接手机APP不仅要打开蓝牙功能,还要打开手机定位,并且记得给权限。

  4. 当同一场所中蓝牙模块过多,会影响通讯和连接,尤其是低功耗蓝牙在这方面很不行,如果你要使用蓝牙的场景在人很多的场合,比如大学比赛,最好直接用传统蓝牙。

Arduino开发板供电问题:

  1. 在刚开始介绍单片机的时候,大都督就说过,嵌入式系统就是管家。虽然Arduino UNO开发板上有5V供电引脚,但是这并不意味着你真的可以用Arduino供电,怎么能让管家干下人的活呢?供电就要由专门的供电模块来。(详见(1)单片机的介绍与嵌入式基本知识)

  2. 如果需要连接的模块功率不高,或者模块不多,是可以用Arduino供电的,但是由于Arduino的供电归根到底是来自于USB转TTL模块的功率,所以,像传统蓝牙模块、Wi-Fi模块,并不一定能带得动,如果你连接的多了,更带不动,所以最好还是找个电源专门给它们供电吧。

  3. 如果你想给Arduino开发板供电,有四种方式:

    • 使用USB/Type-c下载接口供电:电压5v,最快捷简单的供电方法,找个充电宝就可以。

    • 使用5V引脚供电:Arduino开发板电源引脚中的5V引脚不仅可以为外部电子元件提供+5V电源,也可以用于为Arduino开发板自身供电,在PCB设计中常用的供电方式。

    • 使用电源接口供电:可以通过直流电源通过Arduino开发板的电源接口为其供电,直流电源电压为9V~12V,就是Arduino开发板上那个黑色圆头头,学名DC电源头5.5*2.1MM,可用12V锂电池供电。

    • 使用Vin引脚供电:直流电源电压必须为7V~12V。如果是电池模组供电可以考虑用,但还是比较不常用。

软串口问题:

  1. SoftwareSerial库只能提供一个额外的软串口!((8)软串口与SoftwareSerial库使用)
  2. 波特率越高越容易出现数据传输错误。
  3. 如果你需要很多串口,建议直接选Arduino Mega2560,它有四个硬件串口。

Arduino UNO内存问题:

Arduino uno开发板的主控是叫ATmega328P一个8位的单片机,Arduino Nano和Arduino Pro Mini也用的这个主控。资源很有限,它的ROM有32K,RAM只有2k,在开发时RAM真的很紧张,简单来说就是它的内存不太行。内存快满的时候就会像下面这样:

在这里插入图片描述

即使没到达满的状态也可能会导致Arduino uno 运行时重置或者卡死现象,如果你想做大项目,建议直接选Arduino Mega2560。

char与String,’ '与" ",字符与字符串:

刚学Arduino,肯定会因为字符和字符串问题犯迷糊,比如我们上一节的实战代码(详见(9)实战:使用软串口与蓝牙APP串口通讯)。大都督现在就给大家详细解释一下这两者的区别:

  • char:

    1. char是基础数据类型之一,用于存储单个字符。比如,char myChar = ‘A’;这里myChar变量存储了字符A。
    2. Arduino(C/C++语言)中,字符是以其ASCII码形式存储的,char类型的变量占用1个字节的内存(-128到127或0到255),可以存储一个ASCII码字符。
    3. char类型可以用来创建字符数组,通过这种方式可以用来表示字符串。例如:char myChars[] = “Hello”;这里myChars是一个字符数组,以\0(空字符)结尾,实际存储了Hello\0。
    4. 单引号' '用来包裹单个字符,与char类型搭配使用。例如:char a = 'A';
    5. 在进行串口通信时经常需要通过char()函数将ASCII转化为字符类型。
  • String:

    1. String类型是Arduino语言中的一个高级结构,用于存储和操作动态字符串。例如:String myString = “Hello World”;。

    2. String对象背后是动态分配的内存,可以在运行时增减其大小。这意味着可以随时向String对象中添加更多字符。

    3. String提供了丰富的方法来执行如拼接、比较、搜索、提取等操作。

    4. 双引号" "用来创建字符串字面量,可以包含零个或多个字符。与char数组或String对象搭配使用。

    5. 使用双引号创建的字符串,实质上是一个以NULL(\0)字符结尾的char数组。例如:char myString[] = “Hello”;实际上存储了H e l l o \0

Arduino常用的数据类型:

既然都说到了Arduino的char和String,那就顺便把Arduino常用的数据类型总总结一下吧:

  • int: 存储整数,通常占用2个字节(-32,768到32,767)。
  • unsigned int: 存储无符号整数,也通常占用2个字节(0到65,535)。
  • byte (或 uint8_t): 存储一个字节的无符号数,占用1个字节(0到255)。
  • long: 存储较大的整数,占用4个字节(-2,147,483,648到2,147,483,647)。
  • unsigned long (或 uint32_t): 存储较大的无符号整数,占用4个字节(0到4,294,967,295)。
  • short: 通常为16位的整数,占用2个字节。
  • float: 存储单精度浮点数,占用4个字节。用于存储有小数点的数值。
  • double: 在某些Arduino板上,如Arduino Due,double提供了更高的精确度,占用8个字节。但在许多其他Arduino板上(如UNO、Mega2560),double的实际精度和float相同,即占用4个字节。
  • bool: 存储真(true)或假(false)值。

经过本系列的学习,相信大家已经对单片机学习颇有信心了,哈哈,是不是没想象中那么难?加油,大都督看好你!之后大都督还会推出其他关于单片机的系列文章,大家可以继续关注哦!
最后感谢大家对本系列的支持!深海王国没你不行!

学到这里的你,今天也辛苦啦!需要的相关材料链接我都放在公众号「深海大都督」里了,回复「Arduino」就能获得啦~

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

火绒被骂惨,良心居然也翻车?剩下3款软件还被误认为外国人开发

万万没想到&#xff0c;公认的国产良心软件“火绒”&#xff0c;居然也翻车&#xff0c;很多网友对其大失所望&#xff0c;甚至忍不住吐槽让他不要砸了自己的招牌。 事情的起因是这样的&#xff0c;火绒推出应用商店&#xff0c;并于正式公测&#xff0c;这是要逐渐走向全家桶的…

flex属性中的flex-grow、flex-shrink、flex-basis

flex-grow 属性 flex-grow 属性用于设置或检索弹性盒子的扩展比率。 默认值为0&#xff0c;表示不伸展。 flex-grow属性值为0时&#xff0c;不伸展&#xff1a; <!doctype html> <html lang"en"><head><style>.d-flex {display: flex;width…

Sora:探索AI视频模型的无限可能

随着人工智能技术的飞速发展&#xff0c;AI在视频处理和生成领域的应用正变得越来越广泛。Sora&#xff0c;作为新一代AI视频模型&#xff0c;展示了前所未有的潜力和创新能力。本文将深入探讨Sora的功能、应用场景以及它所带来的革命性变化。 一、Sora的核心功能 1.1 视频生…

【JPCS独立出版】2024计算建模与应用数学国际学术会议暨中俄微分方程及其应用学术会议(CMAM 2024 DEA,8月2-4)

2024计算建模与应用数学国际学术会议暨中俄微分方程及其应用学术会议&#xff08;CMAM 2024 & DEA&#xff09;由大连海事大学理学院主办&#xff0c;上海海关学院、俄罗斯科学院科学城数学中心、辽宁省数学学会、大连市数学学会协办&#xff0c;AEIC学术交流中心承办。会议…

django 和 pyecharts实现可视化大屏(完整代码)

1.配置settings文件 &#xff08;1&#xff09;注意&#xff1a;需要先创建app(djnago-admin startapp app名称) &#xff08;2&#xff09;配置模板文件 DIRS: [os.path.join(BASE_DIR, templates)], &#xff08;3&#xff09;配置静态文件(这里我由于存放清洗好的需要进行可…

电脑屏幕花屏怎么办?5个方法解决问题!

“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑&#xff0c;我应该怎么解决这个问题呢&#xff1f;求帮助。” 在这个数字时代的浪潮中&#xff0c;电脑早已成为我们生活中不可或缺的一部分。然而&#xff0c;当你正沉浸在紧张的游戏对战中&#xff0c;或是…

【ARM】Ulink不同的系列对于芯片的支持和可以支持keil软件

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 了解不同版本的ULINK可以支持的芯片架构&#xff0c;和ULINK可以和哪个系列的keil软件进行在线调试 2、 问题场景 用于了解不同ULINK仿真器对于芯片的支持是不一样的&#xff0c;并不是ULINK可以支持所有的keil软件…

基于Python的求职招聘管理系统【附源码】

摘 要 随着互联网技术的不断发展&#xff0c;人类的生活已经逐渐离不开网络了&#xff0c;在未来的社会中&#xff0c;人类的生活与工作都离不开数字化、网络化、电子化与虚拟化的数字技术。从互联网的发展历史、当前的应用现状和发展趋势来看&#xff0c;我们完全可以肯定&…

Linux命令之文件操作

文件拷贝&#xff1a;cp命令 概述 该命令的形式如下&#xff0c;其将源文件复制到指定目的地下。当有多个源文件时&#xff0c;目的地为目录文件 登录后复制 cp [option] source dest cp [option] source ... dest_directory 1.2. 常见可选参数option如下&#xff1a; -r: 递归…

免费分享:中国1:250万地质图(附下载方法)

中国1&#xff1a;250万地质图反映了中国区域地质构造面貌和基本特征&#xff0c;表示了中国区域地质的特色&#xff0c;地质编图的标准化程度较高&#xff0c;地质图的编制过程中充分采用了信息技术&#xff0c;反映了地质调查与科研的若干新进展与认识。 数据简介 本数据为空…

多业态、多品牌企业,如何实现积分通积通兑?(附大会员方案)

2021年&#xff0c;龙湖升级珑珠为全业态通用积分&#xff0c;招商荟深度接入招商蛇口大会员体系建设&#xff1b;2022年&#xff0c;华润置地大会员“万象星”正式上线&#xff1b;2023年&#xff0c;“蒙牛生活家会员中心”全新上线…… 越来越多地产、零售等行业的集团品牌…

Day34:LeedCode 56. 合并区间 738.单调递增的数字 968.监控二叉树

56. 合并区间 以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。 示例 1&#xff1a; 输入&#xff1a;int…

使用matlab开发stm32总结,stm32-matlab常见的问题处理以及报错合集

1&#xff0c; 问题&#xff1a;本来是好的&#xff0c;突然编译运行报错&#xff0c;说是确少包&#xff0c; 解决方案&#xff1a;重启以后好了 2&#xff0c;有完美的马鞍波&#xff0c;为什么不能够转动呢&#xff1f; 原因是我这里模型的问题&#xff0c;我计算出来的是占…

windows 10 安装tcping 使用教程

1 官网下载:tcping下载 2 复制tcping 到win10系统目录C:\Windows\System32 3 tcping 网址测试,可以指定端口 4 tcping 测试端口联通 5 tcping http模式

【权威主办|检索稳定】2024年法律、教育与社会发展国际会议 (LESD 2024)

2024年法律、教育与社会发展国际会议 (LESD 2024) International Conference on Law, Education and Social Development in 2024 【重要信息】 大会地点&#xff1a;成都 官网地址&#xff1a;http://www.iclesd.com 投稿邮箱&#xff1a;iclesdsub-conf.com 【注意&#xff1…

抖音外卖服务商入驻流程及费用有哪几种?申请不通过怎么办?

随着多家互联网大厂布局的不断深入&#xff0c;本地生活的市场前景和收益潜力逐渐展现了在人们眼前&#xff0c;连带着其重点板块之一的外卖市场也成为了众多资本和创业者的重点关注对象。在此背景下&#xff0c;抖音外卖的正式开放&#xff0c;更是将本就火热的本地生活和外卖…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS semaphore作为锁

CMSIS 2.0 接口中的 Semaphore&#xff08;信号量&#xff09;是用于嵌入式系统中多线程或中断服务例程&#xff08;ISR&#xff09;之间同步和共享资源保护的重要机制。Semaphore 是一种用于控制对多个共享资源访问的同步机制。它可以被看作是一个计数器&#xff0c;用于跟踪可…

26.4 Django 视图层

1. 视图函数 视图函数是Django框架中用于处理Web请求并返回Web响应的重要组件. 以下是对Django视图函数的详细解释: * 1. 视图函数与URL的映射.为了让Django能够知道哪个URL对应哪个视图函数, 需要在应用的urls.py文件中定义URL模式.使用path或re_path函数来定义URL模式, 并将…

线稿一键转真人,comfyui工作流分享!

大家好&#xff01;我是极客菌 在数字艺术和图像处理的新时代&#xff0c;技术的进步不断拓宽着创意的边界。ComfyUI 提供了一套高效、易用的工作流&#xff0c;通过简单的节点操作即可实现从线稿到真人图像的转换。 这一技术不仅简化了创作流程&#xff0c;还极大地提升了图像…

深入解读一下 `com.google.android.material.appbar.CollapsingToolbarLayout`

简介 在现代 Android 应用中&#xff0c;提供流畅且美观的用户体验是非常重要的。CollapsingToolbarLayout 是 AndroidX库中 Material Components 的一部分&#xff0c;它提供了一种易于实现的可折叠工具栏效果&#xff0c;常用于提供视觉吸引力的标题栏和动画效果。 本文将详…