arduino 舵机接线图_求用5个电位器分别控制舵机的arduino的原码和连线图

按照上图连线,按照如下代码烧程序。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960#define Sin_1 A0    //设置变阻器1路电压采集端口为A0#define Sin_2 A1    //设置变阻器2路电压采集端口为A1#define Sin_3 A2    //设置变阻器3路电压采集端口为A2#define Sin_4 A3    //设置变阻器4路电压采集端口为A3#define Pout_1 2    //设置舵机PWM信号1路输出端口为D2#define Pout_2 3    //设置舵机PWM信号2路输出端口为D3#define Pout_3 4    //设置舵机PWM信号3路输出端口为D4#define Pout_4 5    //设置舵机PWM信号4路输出端口为D5int v1, v2, v3, v4; //定义采集模拟电压的存储变量int p1, p2, p3, p4; //定义PWM输出的脉宽变量unsigned long T_Start;void setup(){  pinMode(Pout_1, OUTPUT);   //设置舵机接口为输出模式  pinMode(Pout_2, OUTPUT);   //设置舵机接口为输出模式  pinMode(Pout_3, OUTPUT);   //设置舵机接口为输出模式  pinMode(Pout_4, OUTPUT);   //设置舵机接口为输出模式  p1 = 1500; p2 = 1500; p3 = 1500; p4 = 1500;    //设置初始舵机输出的位置为中立位置}void loop(){  T_Start = micros();                    //每次循环运行前,先采集当前的时间标志值  PWM_OUT();                             //输出舵机的控制信号  Get_Input();                           //采集模拟电压信号并转换为舵机角度对应的脉宽值  while((micros() - T_Start) <= 20000);    //控制时间,保证每个循环占用20ms,满足驱动舵机的信号周期要求}void PWM_OUT(){  //由于绝大多数Arduino都不具备使用Servo库同时驱动4个舵机的功能  //所以,本函数采用高低电平延时方式,产生驱动4路舵机的功能  digitalWrite(Pout_1, HIGH);  delayMicroseconds(p1);  digitalWrite(Pout_1, LOW);     digitalWrite(Pout_2, HIGH);  delayMicroseconds(p2);  digitalWrite(Pout_2, LOW);     digitalWrite(Pout_3, HIGH);  delayMicroseconds(p3);  digitalWrite(Pout_3, LOW);     digitalWrite(Pout_4, HIGH);  delayMicroseconds(p4);  digitalWrite(Pout_4, LOW);}void Get_Input(){  v1 = analogRead(Sin_1);   //采集变阻器模拟电压  p1 = map(v1,0,1023,500,2500);  //使用map函数,将采集的10位精度的电压的值域(0-1023),转换为舵机的脉宽数值(500-2500)     v2 = analogRead(Sin_2);   //采集变阻器模拟电压  p2 = map(v2,0,1023,500,2500);      v3 = analogRead(Sin_3);   //采集变阻器模拟电压  p3 = map(v3,0,1023,500,2500);      v4 = analogRead(Sin_4);   //采集变阻器模拟电压  p4 = map(v4,0,1023,500,2500); }

追问 : 为什么舵机 出来不是5V,而是6V

追答 : 因为舵机最好用6V供电,其实5V也可以。

但不建议把Arduino和舵机用一个电源供电,当舵机负载较大时,会拉低电压导致重启。

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

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

相关文章

Leetcode 152.乘机最大子序列

乘积最大子序列 给定一个整数数组 nums &#xff0c;找出一个序列中乘积最大的连续子序列&#xff08;该序列至少包含一个数&#xff09;。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2,…

Matlab sumsqr函数

功能&#xff1a;求矩阵所有元素的平方和 调用形式&#xff1a; [s,n] sumsqr(x) 例1 a [1 2 3;1 2 3]; [s,n] sumsqr(a) s 28 n 6 例2 c [1 2 3 4;1 2 3 4]; [m,n] sumsqr(c) A sumsqr(c) m 60 n 8 A 60 可以看出n返回值是矩阵元素个数

Kali linux安装漏洞扫描工具Nessus指南

引子&#xff1a;Nessus是著名信息安全服务公司tenable推出的一款漏洞扫描与分析软件&#xff0c;号称是"世界上最流行的漏洞扫描程序,全世界超过75,000个组织在使用它"。尽管这个扫描程序可以免费下载得到&#xff0c;但是要从Tenable更新到所有最新的威胁信息,每年…

*p++和*(p++)的区别_同是华为顶级旗舰,P系和Mate系谁最值得购买?明白这点很重要!...

近两年&#xff0c;华为手机凭借P系列和Mate系列的优异设计和销量口碑&#xff0c;已经毫无争议地成为了国产品牌高端代表。同时&#xff0c;华为自身也牢牢占据住中国大陆市场份额第一名宝座&#xff0c;在全球名次中以微弱差距排在第三&#xff0c;与第二名的苹果iPhone厮杀激…

Matlab xlim ylim zlim函数

xlim([xl xr]); 用于限定x轴上下限&#xff0c;其中&#xff0c; xl&#xff1a;x轴下限 xr&#xff1a;x轴上限 ylim([yl yr]);zlim([yl yr])同理。 例子 x [1:0.1:10]; y 3*sin(x); subplot(2,1,1); plot(x,y) subplot(2,1,2); plot(x,y)&#xff1b; ylim([-1,1]); …

在Myeclipse buildpath 加server lib (server runtime)

使用Myeclipse&#xff0c;将eclipse下的工程复制过来后&#xff0c;发现提示Tomcat 7.0 unbound。缺少Server Runtime。 解决方法如下&#xff1a; 1,File->New->Other->Server->Server(注意在new时&#xff0c;需要勾上Show All Wizards)&#xff0c;下一步,选择…

Go--4大基本数据类型之布尔类型

一&#xff1a;布尔类的定义 布尔类型只取值true和false,且布尔类型只占一个字节&#xff0c;多用于逻辑判断 二&#xff1a;使用举例 转载于:https://www.cnblogs.com/louis181214/p/10196338.html

Excel中数字、数值和文本的区别

数字包括文本型数字和数值型数字两种形式&#xff0c;数值型数字可以计算&#xff0c;文本型数字不能计算。 例1&#xff1a;文本型数字不能计算 例2&#xff1a;数值型数字可以计算 数值型数字如果输入大于11位数&#xff0c;则会显示为科学计数法。如果输入001&#xff0c;则…

单片机全局有必要封装_MCU-C程序基本编程规范(转)

为了提高源程序的质量和可维护性&#xff0c;从而最终提高软件产品生产力&#xff0c;特编写此规范。本标准规定了程序设计人员进行程序设计时必须遵循的规范。本规范主要针对单片机编程语言和08编译器而言&#xff0c;包括排版、注释、命名、变量使用、代码可测性、程序效率、…

The selected server is enabled,but is not configured pro

The selectedserver is enabled,but is not configured properly.Deployment to itwill not be permitted until the problem is corrected.Pleasenavigate to the server preference pages and verify the field withthe prompt:tomcat jdk name: 翻译&#xff1a;选定的服务器…

懒惰评估

最近&#xff0c;我正在编写log4j附加程序&#xff0c;并希望在自定义附加程序创建过程中使用logger记录一些诊断详细信息&#xff0c;但是log4j初始化仅在创建附加程序实例后才完成&#xff0c;因此该阶段记录的消息将被忽略。 我感到需要在自定义附加程序中进行延迟初始化&a…

python基础_格式化输出(%用法和format用法)

%用法 1、整数的输出 %o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制 >>> print(%o % 20) 24 >>> print(%d % 20) 20 >>> print(%x % 20) 14 2、浮点数输出 2.1 格式化输出 %f ——保留小数点后面六位有效数字  %.3f&#xff0c;保留…

CSV大文件的处理(以ngsim数据为例):分割、导入与合并

逗号分隔值&#xff08;Comma-Separated Values&#xff0c;CSV&#xff0c;有时也称为字符分隔值&#xff0c;因为分隔字符也可以不是逗号&#xff09;&#xff0c;其文件以纯文本形式存储表格数据&#xff08;数字和文本&#xff09;。纯文本意味着该文件是一个字符序列&…

python用scrapy爬虫豆瓣_爬虫教程——用Scrapy爬取豆瓣TOP250

最好的学习方式就是输入之后再输出&#xff0c;分享一个自己学习scrapy框架的小案例&#xff0c;方便快速的掌握使用scrapy的基本方法。本想从零开始写一个用Scrapy爬取教程&#xff0c;但是官方已经有了样例&#xff0c;所以还是不写了&#xff0c;尽量分享在网上不太容易找到…

context-param与init-param的区别与作用

<context-param>的作用:web.xml的配置中<context-param>配置作用1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>2.紧接着,容器创建一个Servl…

如何快速批量修改文件名

文件太多&#xff0c;文件名太乱&#xff0c;希望快速批量修改文件名&#xff0c;以下的两种方法可以帮到你&#xff0c;亲测好用。 方法一 1.选中需要批量修改的文件&#xff0c;如图1 图12.按F2键&#xff0c;输入文件名。如图2. 图23.Enter&#xff0c;效果如图3. 图3方法…

【LUOGU???】WD与积木 NTT

题目大意 把 \(n\) 个有标号物品分到一些有标号的箱子中且不允许为空&#xff0c;问期望箱子的数量。 多组询问。 \(n\leq 100000\) 题解 记 \(f_i\) 为 \(i\) 个有标号物品分到一些有标号的箱子中且不允许为空的箱子的数量之和。 记 \(g_i\) 为 \(i\) 个有标号物品分到一些有标…

7对讲机调频软件_对讲机怎么配对?

有好多朋友买到了新对讲机和老对讲机的频率不一样&#xff0c;从而导致了新旧对讲机无法通联。买到了新对讲机&#xff0c;我们要先知道旧对讲机的频率是多少。要想知道旧对讲机的频率是多少&#xff0c;我们就要需要一定的工具&#xff0c;首先我们要有一台XP系统的电脑&#…

RTK、IMU、RT3000

GPS/RTK 全球卫星定位系统(GPS)的全面建成和发展&#xff0c;导致了导航和测绘行业的一场重大深刻的技术革命。常规的静态GPS测量方法越来越多地应用于高精度控制网的建立&#xff0c;但利用该方法无法在野外对观测数据进行实时检核&#xff0c;从而造成观测结果不合格而需要返…

POJ--3974 Palindrome(回文串,hash)

链接&#xff1a;点击这里 #include<iostream> #include<algorithm> #include<stdio.h> #include<cstring> using namespace std; #define maxn 1000005 #define LL long long #define ull unsigned long long const LL P 131; ull p[maxn10],f[maxn]…