评论
JH,你的板子有伺服输出吗??据我所知,sanguinololu 没有伺服输出.. |
这不是 sanguinololu 真的是其中之一http://www.ukcnc.info/forums/showthread.php?75-New-Sanguino-to-Stepper-Breakout-Version-2-0(广为人知的是 snaguino?) ..不,上面没有伺服连接器..但是有一些未分配的数字输出..并且通过一些焊接可以将伺服连接到它上面 我更喜欢使用 pin D17,但是它在系统中的何处配置?.. 看起来像 servo.h.. 但我对 arduino 环境还很陌生。 伺服库允许使用任何数字引脚……我猜你知道……在我的 ardupilot 中,它们或多或少直接驱动伺服,无论如何这不是一个笨重的好东西,而是一个中等大小的 16 克。 谢谢你快速的回复 问候 JH 发件人:alexborro [ mailto:notifications@github.com ] JH,你的板子有伺服输出吗??据我所知,sanguinololu 没有伺服输出.. — 在此邮件中未发现病毒。 |
@alexborro舵机由 PWM 或位碰撞(坏主意)控制。Sanguinololu 有一个备用 PWM 引脚,它是 D4(PB4 on ave)。 |
搜索“Servo”和/或“Servo.attach”一词。附件将有密码。
|
JH,你应该只用要使用的引脚替换定义的 SERVO0_PIN。 在 pins.h 中,你可以使用这个结构: #ifdef NUM_SERVOS 当然你需要在configuration.h中将NUM_SERVOS设置为1,并将上面的“11”替换为你板子的pin输出。这个pin应该是普通的I/O pin,不知道sanguino可以用哪个。 此致。 亚历克斯。 |
谢谢你……它肯定有帮助…… 发件人:alexborro [ mailto:notifications@github.com ] JH,你应该只用要使用的引脚替换定义的 SERVO0_PIN。 在 pins.h 中,你可以使用这个结构: #ifdef NUM_SERVOS 当然你需要在configuration.h中将NUM_SERVOS设置为1,并将上面的“11”替换为你板子的pin输出。这个pin应该是普通的I/O pin,不知道sanguino可以用哪个。 此致。 亚历克斯。 — 在此邮件中未发现病毒。 |
我正在尝试设置它但没有运气。 我正在使用此板http://reprap.org/wiki/Ultimaker%27s_v1.5.7_PCB,它打开了 PIN 8。 我从 git 中获取最新的 Marlin,将其添加到 pins.h #ifdef NUM_SERVOS 然后取消注释 Configuration.h 中需要的东西 #define NUM_SERVOS 1 然后我刷新了电路板,但是当我创建一个 GCODE 文件并使用以下内容发送它进行打印时,没有任何反应: M280 P0 S{120}; 我希望它在那个时候转动伺服,我在终端中得到这个表明没有错误: 发送:N1 M280 P0 S{70}_26 所以我接下来要做的就是查看 PCB 原理图,确保引脚 8 已打开。是的,但我继续尝试在引脚 12 和引脚 6 上得到相同的结果(引脚 6 实际上是电路板上的伺服输出)。 在这一点上,我想测试硬件,因为这个 UM 板堆叠在 Arduino Mega 上,我只是把它取下来并用一个简单的伺服程序闪存它,该程序使用 Arduino 伺服库在 PIN 8 上来回移动它……它按我的预期工作。然后我在UM板上测试了PIN8路由,是连通的。 有任何想法吗?我可以执行您希望我执行的任何故障排除步骤。 谢谢 |
@andrewhodel要检查的几点:
让我知道结果。 亚历克斯。 |
|
@alexborro这在相同的硬件上工作正常 #include Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created int pos = 0; // variable to store the servo position void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees { // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees { myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } } |
想试试这个,但由于我的知识有限,我不知道如何设置与伺服相关的引脚。您能否指出它的设置位置以及引脚号如何与 Arduino IDE 编号相对应(为避免疑义)。我正在使用基于 sangulino 的板。
谢谢
JH