- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 Arduino 和这个论坛的新手,这是我除了教程之外的第一个 Arduino 项目。
我正在尝试使用遥控发射器/接收器和 Arudino 来控制伺服。我使用 Arduino 而不是将伺服器直接连接到 RC 接收器的原因是 RC 只能生成 1000µs 到 2000µs 的 PWM 而我需要 600µs 到 2400µs 的 PWM 来获得我的伺服器的全范围运动.我试图做的是从pulseIn()中读取值,然后将此值映射到0到180度,如下面的代码(利用伺服库)所写。
但是,使用此代码,电机行为很奇怪。当我在其运动范围内移动 radio 发射器控制杆时,电机从 0 度旋转到 45 度,从 45 度旋转到 0、0 到 45 度,然后再次旋转到 0,而不是从 0 度旋转到 180 度。任何人都可以提供一些帮助或建议吗?
非常感谢
#include <Servo.h>
Servo myservo;
int ch1;
int ch2;
int ch3;
int degree;
void setup() {
pinMode(7, INPUT);
myservo.attach(9);
Serial.begin(9600);
}
void loop() {
ch3 = pulseIn(7, HIGH, 25000);
degree = ((ch3-1250)* 180)/700;
Serial.print("Channel 3:");
Serial.println(ch3);
myservo.write(degree);
delay(5); // waits 5ms for the servo to reach the position
}
最佳答案
你是溢出的国际数据类型。有符号值只能是 -32768 到 +32767。见 int docs
你的公式全是国际 's 并且编译器不会猜测您可能需要更大的中间值。乘以 180 是一个危险信号。 (2000-1250)*180 = 135000 = 繁荣
要理解数学,请将公式分解为单独的运算,如下面的测试程序所示。这基本上就是编译器为你做的事情。
运行下面的程序,你会看到失败。输出值刚好达到 45 时,中间值溢出,公式崩溃。
in: 1040 out: 39 t0: -210 t1: 27736 t2: 39
in: 1048 out: 41 t0: -202 t1: 29176 t2: 41
in: 1056 out: 43 t0: -194 t1: 30616 t2: 43
in: 1064 out: 45 t0: -186 t1: 32056 t2: 45
in: 1072 out: -45 t0: -178 t1: -32040 t2: -45
in: 1080 out: -43 t0: -170 t1: -30600 t2: -43
int ch3;
int degree;
void setup() {
ch3 = 1000;
Serial.begin(9600);
}
void loop() {
int t0, t1, t2;
degree = ((ch3-1250)* 180)/700;
t0 = ch3 - 1250;
t1 = t0 * 180;
t2 = t1 / 700;
Serial.print("in: ");
Serial.print(ch3);
Serial.print(" out: ");
Serial.print(degree);
Serial.print(" t0: ");
Serial.print(t0);
Serial.print(" t1: ");
Serial.print(t1);
Serial.print(" t2: ");
Serial.println(t2);
ch3 += 8;
if(ch3 > 2400) {
ch3 = 1000;
}
delay(100);
}
关于Arduino 和 RC 发射器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14807546/
我是 Arduino 和这个论坛的新手,这是我除了教程之外的第一个 Arduino 项目。 我正在尝试使用遥控发射器/接收器和 Arudino 来控制伺服。我使用 Arduino 而不是将伺服器直接连
我喜欢听一个特定的广播,我用 vlc 给自己做了一个小发射器,就像这样: #!/bin/sh vlc http://mp3lg.tdf-cdn.com/fip/all/fiphautdebit.mp3
是否有用于发出 YAML 的 C++ 库?维基百科提到了 libyaml 的 c++ 包装器,但链接已断开。 YAML官方网站只提供yaml-cpp ,这也在 this 中提出所以问题,但 cpp-y
我正在尝试将我的 iPhone 设置为广播 iBeacon 信号以供另一部 iPhone 接收。本应接收信号的 iPhone 可以正常工作,但我无法让另一部 iPhone 广播信号。 我正在学习本教程
我正在编写一个网络应用程序,其中多个监听器(Evcentsource SSE 客户端 JS)将连接到我的服务器。我想做的是 为每个连接的监听器存储 SSE 发射器:可以在内存中或通过为每个客户端分配
我想在后端进行串行工作。我想选择 geo_unit 并做另一项工作并向客户端写入响应。 我读了 http://nodejs.org/docs/v0.4.7/api/events.html#events
我从早期就使用 BIRT,但仍然有关于 PDF 发射器的谜语。 短篇小说 : 我可以配置 fontsConfig.xml 以从相对路径或 jar 加载字体吗? 长话: 我们同时使用 FOP 和 BIR
今天我得到了一些很酷的 radio 接收器和发射器,问题是当我输入我想发送的消息时,它会在另一个 arduino 上吐出乱码。 //transmitter #include void setup()
我有一个使用 html canvas 函数创建的形状(四分之一圆): 移动到 LineTo QuadraticCurveTo 如何将形状爆炸成粒子,然后将它们返回形成一个圆圈? 最佳答案 我不会为您编
我正在实现自定义 Birt 发射器,我需要知道单元格、表格或网格的宽度和高度(以像素或点为单位)。如果未在报表设计器中明确设置度量,则会出现此问题。 我试图通过调用 cellContent.getWi
我将给出我正在尝试做的事情的一个小前提。我有一个游戏概念,需要多个玩家围坐在一张 table 旁,有点像扑克牌。 不同播放器之间的正常交互,通过socket.io结合node js很容易处理。 我很难
我是一名优秀的程序员,十分优秀!