Arduino Uno 使用电位器控制舵机角度 – 凌顺实验室 您所在的位置:网站首页 电位器控制电机转速接线图解 Arduino Uno 使用电位器控制舵机角度 – 凌顺实验室

Arduino Uno 使用电位器控制舵机角度 – 凌顺实验室

2024-06-29 11:41| 来源: 网络整理| 查看: 265

目录

在本实例中,使用到2个元件包括电位器和舵机,之前都有写文章分享如何使用。这次就介绍怎么合并两个元件写程序。

实验效果

通过转动电位器控制舵机的角度转动

元件说明

舵机 https://lingshunlab.com/book/arduino/arduino-uno-drive-servo

电位器 https://lingshunlab.com/book/arduino/arduino-use-potentiometer

如果没有单独使用过以上元件,建议先分别实现一次。

BOM表 名称 数量 Arduino Uno x1 舵机 x1 电位器 x1 面包板 x1 跳线(杜邦线) 若干 接线方式 Arduino Uno 引脚 电位器 引脚 5V VCC GND GND A0 OUT Arduino Uno 引脚 舵机引脚 5V VCC(红色) GND GND(黑色或褐色) 9 信号线(橙色)

程序提点

程序逻辑是先获取电位器的数值,使用map()函数进行等比映射0 ~ 180之间的数值,并以此数值为舵机的角度,进行舵机的控制。

程序中还输出了电位器的数值和映射的角度,方便观察。

map() 等比映射

这次用到map函数 主要是将一个数字从一个范围重新映射到另一个范围。也就是说,fromLow的值会被映射到Low,fromHigh的值会被映射到High,中间的值会被映射到中间的值,等等。

语法: map(value, fromLow, fromHigh, toLow, toHigh)

参数: value:要映射的数字。 fromLow:数值当前范围的下限。 fromHigh:数值当前范围的上界。 toLow:数值目标范围的下限。 toHigh:目标范围的上界。

返回: 等比映射后的数值

Serial.print() 不换行输出

Serial.print()函数和Serial.println()函数的不同之处,就是在串口输出中是否换行。前者Serial.print()函数是不换行,后者Serial.println()函数是换行。

程序实现 // lingshunlab.com // 加载舵机库 #include ; Servo myservo; // 创建一个名为 myservo 的伺服电机实例(名称可随你喜欢命名) int potpin = 0; // 定义 potpin 变量,用于定义模拟引脚口编号,0则为主板上A0的引脚 int val; // 定义 val 变量, 用于存储电位器的数值 int angle; // 定义 angle 变量, 用于储存角度值 // 初始化 void setup() { myservo.attach(9); // 配置myservo实例的引脚为9 Serial.begin(9600); //设置波特率,这是串口应用中很重要的数字 } // 主程序 void loop() { val = analogRead(potpin); // 通过analogRead函数,获取指定模拟口的数值 angle = map(val, 0, 1023, 0, 179); //map()是等比映射函数,把val的数值等比映射为0-180度 myservo.write(angle); // 控制舵机转动到相应的角度位置。 Serial.print("val: "); // 从串口中输出以下数据,方便观察 Serial.print(val); Serial.print(" | "); Serial.print("angle: "); Serial.println(angle); delay(15); // 等待15毫秒,给舵机移动到指定位置 } 相关连接

Arduino使用舵机的第一篇,演示接线 使用 Arduino Uno 驱动舵机

Arduino Uno 使用串口 控制舵机角度

Arduino Uno 使用电位器控制舵机角度

Arduino Uno 同时控制多路舵机



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有