Plotclock

本文介绍了如何使用编程技术进行摆臂调试,通过详细的步骤和代码示例,帮助读者理解如何在实践中应用代码进行精密机械部件的调试。
摘要由CSDN通过智能技术生成
     调试程序,运行调试程序,舵机会移动两只悬臂分别停留在一只水平另一只垂直的位置上。如果差距非常大,可拆下悬臂调节,如果比较接近了,就修改程序第3~6行的四个参数 SERVOFAKTORLEFT 左悬臂垂直位置,SERVOFAKTORRIGHT 右悬臂垂直位置,SERVOLEFTNULL 左悬臂180度位置,SERVORIGHTNULL 右悬臂0度位置(右侧为0度,逆时针画圆),参数增加摆臂逆时针转动,一般增幅50,才能看到比较明显的变化。


     调节参数,直到摆臂停在下图的标准位置上为止。


     LIFT0、1、2参数原理相同调试方法略过

    《调试摆臂用代码》


//左右悬臂舵机的90度位置
#define SERVOFAKTORLEFT 550 
#define SERVOFAKTORRIGHT 630  //此参数650是理论中间位置,需要看实际情况调节
 
//左右悬臂舵机的 0或180度位置
#define SERVOLEFTNULL 1750
#define SERVORIGHTNULL 880
 
//三只舵机的接口
#define SERVOPINLIFT  2
#define SERVOPINLEFT  3
#define SERVOPINRIGHT 4
 
//升举舵机的3个角度 
#define LIFT0 1080 // on dr<span style="font-size:12px;">awing surface  写的时候
#define LIFT1 925  // between numbers   字之间
#define LIFT2 725  // going towards sweeper 去笔擦高度</span>
 
// 速度
#define LIFTSPEED 1500
 
// 悬臂的长度,根据图纸测量,无需改变
#define L1 35
#define L2 57.2
#define L3 14.2
 
 
// 左右舵机轴心的位置
#define O1X 23
#define O1Y -25
#define O2X 49
#define O2Y -25
 
 
 
#include <Time.h> // see [url=http://playground.arduino.cc/Code/time]http://playground.arduino.cc/Code/time[/url] 
#include <Servo.h>
 
int servoLift = 1500;
 
Servo servo1;  // Servo 类 声明
Servo servo2;  // 
Servo servo3;  // 
 
volatile double lastX = 75;
volatile double lastY = 47.5;
 
int last_min = 0;
 
void setup() 
{ 
  // Set current time only the first to values, hh,mm are needed
  setTime(19,38,0,0,0,0);
 
  drawTo(38, 24);
  lift(0);
  servo1.attach(SERVOPINLIFT);  //  lifting servo
  servo2.attach(SERVOPINLEFT);  //  left servo
  servo3.attach(SERVOPINRIGHT);  //  right servo
  delay(1000);
 
} 
 
void loop() 
{ 
 
 
 
  // 移动左右悬臂,让两只悬臂分别停留在水平和垂直的位置上。 通过修改 SERVOFAKTORLEFT , SERVOFAKTORRIGHT, SERVOLEFTNULL , SERVORIGHTNULL 四个参数来微调
  drawTo(-3, 29.2);
  delay(500);
  drawTo(74.1, 28);
  delay(500);
 
 
 
} 
 
// Writing numeral with bx by being the bottom left originpoint. Scale 1 equals a 20 mm high font.
// The structure follows this principle: move to first startpoint of the numeral, lift down, draw numeral, lift up
void number(float bx, float by, int num, float scale) {
 
  switch (num) {
 
  case 0:
    drawTo(bx + 12 * scale, by + 6 * scale);
    lift(0);
    bogenGZS(bx + 7 * scale, by + 10 * scale, 10 * scale, -0.8, 6.7, 0.5);
    lift(1);
    break;
  case 1:
 
    drawTo(bx + 3 * scale, by + 15 * scale);
    lift(0);
    drawTo(bx + 10 * scale, by + 20 * scale);
    drawTo(bx + 10 * scale, by + 0 * scale);
    lift(1);
    break;
  case 2:
    drawTo(bx + 2 * scale, by + 12 * scale);
    lift(0);
    bogenUZS(bx + 8 * scale, by + 14 * scale, 6 * scale, 3, -0.8, 1);
    drawTo(bx + 1 * scale, by + 0 * scale);
    drawTo(bx + 12 * scale, by + 0 * scale);
    lift(1);
    break;
  case 3:
    drawTo(bx + 2 * scale, by + 17 * scale);
    lift(0);
    bogenUZS(bx + 5 * scale, by + 15 * scale, 5 * scale, 3, -2, 1);
    bogenUZS(bx + 5 * scale, by + 5 * scale, 5 * scale, 1.57, -3, 1);
    lift(1);
    break;
  case 4:
    drawTo(bx + 10 * scale, by + 0 * scale);
    lift(0);
    drawTo(bx + 10 * scale, by + 20 * scale);
    drawTo(bx + 2 * scale, by + 6 * scale);
    drawTo(bx + 12 * scale, by + 6 * scale);
    lift(1);
    break;
  case 5:
    drawTo(bx + 2 * scale, by + 5 * scale);
    lift(0);
    bogenGZS(bx + 5 * scale, by + 6 * scale, 6 * scale, -2.5, 2,
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值