伺服舵机带参方向控制

/*******************************
功能:小车四个方向(带参数)打包
说明:P1_0接左电机,P1_1接右电机,速度值在0~200之间
时间:2012.12.10
作者:荆轩道
附录:脉冲数量:3/0.023=130个(3S)
************************************************************/
#include<BoeBot.h>
#include<uart.h>

void Forward(int PulseNo,int Velocity)  //前进:传入脉冲数量和速度
{
  int i;
  for(i=1;i<=PulseNo;i++)
 {
     P1_1=1;
  delay_nus(1500+Velocity);
  P1_1=0;

     P1_0=1;
  delay_nus(1500-Velocity);
  P1_0=0;
  delay_nms(20);
 }
}

void Lift(int PulseNo,int Velocity)  //左转:传入脉冲数量和速度
{
  int i;
  for(i=1;i<=PulseNo;i++)
 {
     P1_1=1;
  delay_nus(1500-Velocity);
  P1_1=0;

     P1_0=1;
  delay_nus(1500-Velocity);
  P1_0=0;
  delay_nms(20);
 }
}

void Right(int PulseNo,int Velocity)  //右转:传入脉冲数量和速度
{
  int i;
  for(i=1;i<=PulseNo;i++)
 {
     P1_1=1;
  delay_nus(1500+Velocity);
  P1_1=0;

     P1_0=1;
  delay_nus(1500+Velocity);
  P1_0=0;
  delay_nms(20);
 }
}

void Back(int PulseNo,int Velocity)  //后退:传入脉冲数量和速度
{
  int i;
  for(i=1;i<=PulseNo;i++)
 {
     P1_1=1;
  delay_nus(1500-Velocity);
  P1_1=0;

     P1_0=1;
  delay_nus(1500+Velocity);
  P1_0=0;
  delay_nms(20);
 }
}

void main()
{
  uart_Init();
  printf("Program is Running!!");

  while(1)
  {
    int i;
  //200代表全速,130代表运行3秒,65代表1.5秒,26为旋转90度 
   Forward(65,200);    
   Lift(26,200);  
   Back(65,200); 
   Right(26,200); 
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个基于Arduino和红外接收模块的控制伺服舵机的示例代码: ```c++ #include <IRremote.h> // 导入红外遥控库 #include <Servo.h> // 导入伺服舵机库 #define IR_PIN 11 // 红外接收器的接收引脚 #define SERVO_PIN 9 // 伺服舵机控制引脚 IRrecv irrecv(IR_PIN); // 创建红外接收器对象 decode_results results; // 创建红外解码结果对象 Servo servo; // 创建伺服舵机对象 void setup() { Serial.begin(9600); // 初始化串口 irrecv.enableIRIn(); // 启用红外接收器 servo.attach(SERVO_PIN); // 将伺服舵机连接到控制引脚 servo.write(90); // 将伺服舵机初始化到中心位置 } void loop() { if (irrecv.decode(&results)) { // 检测是否接收到红外信号 switch (results.value) { case 0xFF6897: // 红外遥控器按钮1对应的编码 servo.write(0); // 控制伺服舵机旋转到0° break; case 0xFF9867: // 红外遥控器按钮2对应的编码 servo.write(90); // 控制伺服舵机旋转到90° break; case 0xFFB04F: // 红外遥控器按钮3对应的编码 servo.write(180); // 控制伺服舵机旋转到180° break; default: break; } irrecv.resume(); // 继续接收下一个红外信号 } } ``` 在这个示例代码中,我们使用了红外遥控器的三个按钮来控制伺服舵机旋转到不同的角度。您可以根据自己的需要修改这些按钮的编码和控制的角度。同时,您需要将伺服舵机控制引脚连接到Arduino的相应引脚上,例如示例代码中使用的是9号引脚。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值