Arduino中的map函数

一、案例

val = analogRead(dyPin);    //读取模拟口的模拟量数值
dyValue=map(val,0,1023,0,500);//这个函数是将电位器调节的模拟量的值按比例转换成对应的电压量

问题,为什么不是0~499呢?

其实也行↓

map(val, 0, 1023, 0, 500)被调用时,假设val的取值范围是0到1023。如果使用0到499作为映射范围,会导致最大值无法被完全映射到目标范围内。考虑到实际应用中可能需要完整映射整个范围,因此选择0到500作为映射范围更为合适,这样可以确保最大值1023能够被映射到500。

因此,为了确保映射的准确性和完整性,选取0到500作为映射范围是更为合理的选择。

通过analog 模拟输入引脚获取 对应的 模拟值 对应为1K阈值。

Serial.println((float)dyValue/100.00);    //串口显示对应的电压值

二、map函数

在Arduino中,map()函数用于将一个数字从一个范围映射到另一个范围。其语法如下:

map(value, fromLow, fromHigh, toLow, toHigh)
  • value:要映射的值。
  • fromLow 和 fromHigh:原始范围的最小值和最大值。
  • toLow 和 toHigh:目标范围的最小值和最大值。

例如,map(val, 0, 1023, 0, 500) 的作用是将 val 这个值从 0 到 1023 的范围映射到 0 到 500 的范围内。这意味着如果 val 的值为 0,映射后的值为 0;如果 val 的值为 1023,映射后的值为 500;如果 val 的值在这个范围内,将按比例线性映射到目标范围内的对应值。

三、请区别与Java语言的Map集合 

在Arduino中,map()函数用于将一个数字从一个范围映射到另一个范围,这是一种数学计算函数,用于对数值进行线性映射转换。

而在Java语言中,Map是一种接口(Interface),它表示映射表,即一种键值对的集合。Java中的Map集合用于存储键值对,并提供了根据键来查找值的功能。常见的实现类包括HashMapTreeMap等,它们提供了不同的实现方式和性能特点。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

YiYi-Web项目介绍

YiYi-Web项目介绍 1. 简介2. 使用2.1 后端开发环境2.2 前端开发环境 3. 测试环境:4. 更新日志5. 打包情况6.项目截图 本项目前端是html、css、js、jQuery基础技术。 后端都是最新的SpringBoot技术,不分离版本, 是最基础的项目开发教程&#x…

yolov5训练并生成rknn模型部署在RK3588开发板上,实现NPU加速推理

简介 RK3588是瑞芯微(Rockchip)公司推出的一款高性能、低功耗的集成电路芯片。它采用了先进的28纳米工艺技术,并配备了八核心的ARM Cortex-A76和Cortex-A55处理器,以及ARM Mali-G76 GPU。该芯片支持多种接口和功能,适…

atoi函数详解

atoi函数使用方法 在c官网中是这样介绍atoi函数的 通俗的讲就是把字符串中的字符数字转换为整形数字,遇到空格就跳过,如果在字符串开始遇到不是有效的整数比如说abc就直接返回0,如果遇到像这种情况123abc345这个就只返回123,这个…

申请Github Education获取免费Copilot权限(2024.3.18实测成功)

起因:旧帐户Copilot权限被封 我已经离开Github Copilot就无法独自耐着性子写代码了(懒惰AI成瘾性),这两天Github Copilot不知道为什么在大规模封号,我不幸也被封号了(禁用掉了Github Copilot权限&#xff…

大数据技术原理与应用 01.大数据概述

不可以垂头丧气,会显矮 —— 24.3.24 参考学习:厦门大学 林子雨老师 大数据技术原理与应用 一、大数据时代 大数据概念、影响、应用、关键技术 大数据与云计算、物联网的关系 ①三次信息化浪潮时代 ②第三次信息化浪潮的技术支撑 1>存储设备容量不断…

微服务(基础篇-003-Nacos)

目录 Nacos注册中心(1) 认识和安装Nacos(1.1) Nacos快速入门(1.2) 服务注册到Nacos(1.2.1) Nacos服务分级存储模型(1.3) 配置集群(1.3.1) 根据集群修改…

[ Linux ] git工具的基本使用(仓库的构建,提交)

1.安装git yum install -y git 2.打开Gitee,创建你的远程仓库,根据提示初始化本地仓库(这里以我的仓库为例) 新建好仓库之后跟着网页的提示初始化便可以了 3.add、commit、push三板斧 git add . //add仓库新增(变…

阿里云倚天云服务器怎么样?如何收费?

阿里云倚天云服务器CPU采用倚天710处理器,租用倚天服务器c8y、g8y和r8y可以享受优惠价格,阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持: 阿里云倚天云服务…

AI预测福彩3D第17弹【2024年3月24日预测--第1套算法重新开始计算第14次测试】

今天周末,家里事情比较多,回来的比较晚,3D预测的结果只能在今天晚上7点半左右发布了。废话不多说了,直接上结果吧~ 最终,经过研判分析,2024年3月24日福彩3D的七码预测结果如下: 百位&#xff1a…

大宇、德国ODI、希亦超声波清洗机值得买吗?精品轻松分辨

长时间佩戴眼镜不清洗的话上面的细菌堪比马桶这么脏!从佩戴眼镜开始就没有人告诉过我手动清洗眼镜会非常容易刮花镜片,是我自己佩戴眼镜这么长时间观察到的,后面了解到超声波清洗机可以很好的保护到眼镜,于是开始做功课挑选超声波…

对话李喆:Martech在中国需要转化成以客户需求为驱动的模式

关于SaaS模式在中国的发展,网上出现多种声音。Marteker近期采访了一些行业专家,围绕SaaS模式以及Martech在中国的发展提出独特观点。赛诺贝斯副总裁李喆认为,SaaS可以分为场景化的SaaS、一体化的SaaS和功能化的SaaS,三者都有一定规…

MultiArch与Ubuntu/Debian 的交叉编译

返回:OpenCV系列文章目录(持续更新中......) 上一篇:基于ARM 的Linux系统的交叉编译 下一篇:MultiArch与Ubuntu/Debian 的交叉编译 警告: 本教程可能包含过时的信息。 什么是“MultiArch” OpenCV 可能…

Java 面试宝典:什么是大 key 问题?如何解决?

大家好,我是大明哥,一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站:https://skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 回答 Redis 大 key 问题是指某个 key 对应的 value 值很大&am…

智慧农业害虫性诱监测专用设备-稻飞虱测报仪

TH-DF122随着科技的飞速发展和智慧农业的兴起,传统农业正在迎来一场革命性的变革。在这场变革中,智慧农业害虫性诱监测专用设备——稻飞虱测报仪,以其独特的魅力和高效的功能,正成为现代农业的得力助手。它不仅提升了农业生产的智…

Vue2(十):全局事件总线、消息订阅与发布、TodoList的编辑功能、$nextTick、动画

一、全局事件总线!! 任意组件间通信 比如a想收到别的组件的数据,那么就在a里面给x绑定一个demo自定义事件,所以a里面就得有一个回调函数吧,然后我要是想让d组件给a穿数据,那就让d去触发x的自定义事件&…

el-tree 使用按钮切换当前选中的节点(上一节点,下一节点)

<!-- 选择树上下切换 --> <template><div><el-tree:data"treeData":props"defaultProps"node-key "id"ref"tree"node-click"handleNodeClick"></el-tree><div><el-button click&qu…

Github Action Auto build docker Auto deploy

简介 整个流程比较清晰&#xff0c;实现的是基于Github 定向的往ECS做发布 探索 自动化打包发布一般流程&#xff1a; 本地环境打镜像 CI/CD 环境打镜像 以上的流程使用于比较大的项目&#xff0c;受限于环境&#xff0c;打算对上面流程做简化&#xff0c;使用github acti…

SpringBoot3+Vue3项目的阿里云部署--将后端以及前端项目打包

一、后端&#xff1a;在服务器上制作成镜像 1.准备Dockerfile文件 # 基础镜像 FROM openjdk:17-jdk-alpine # 作者 MAINTAINER lixuan # 工作目录 WORKDIR /usr/local/lixuan # 同步docker内部的时间 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ…

Path MTU(路径最大传输单元)

目录 前言&#xff1a; IPV6不支持中间设备分片原因&#xff1a; IPV6报文分片使用的扩展报头&#xff08;44&#xff09;所包含的参数 IPv6报文分片过程 源节点分片数据包 前言&#xff1a; 在IPv4网络中&#xff0c;报文如果过大&#xff0c;则需要分片进行发送&#xf…

网络核心知识点 - 网络通信技术 XHR(XMLHttpRequest) 和 Fetch

一、关于 AJAX&#xff08;一种思想和方法&#xff09; 浏览器本身就具备网络通信的能力&#xff0c;但在早期&#xff0c;浏览器并没有把这个能力开放给JS。最早是微软在IE浏览器中把这一能力向JS开放&#xff0c;让JS可以在代码中实现发送请求&#xff0c;并不会刷新页面。Aj…