“Joystick控制直流电机”的版本间的差异
(Created page with "{{Language| Joystick控制直流电机}} {| style="width: 800px;" |- | ==目的== 通过Joystick摇杆来控制直流电机的转动。 ==原理== 通过检测Joystick摇杆...") |
(→设备) |
||
第14行: | 第14行: | ||
|模块||数量||功能 | |模块||数量||功能 | ||
|- | |- | ||
− | |[[ | + | |[[mCookie-CoreUSB/zh]]||1||核心板 |
|- | |- | ||
− | |[[ | + | |[[mCookie-Hub/zh]]||1||传感器转接板 |
|- | |- | ||
− | | [[ | + | |[[mCookie-Motor/zh]]||1||电机驱动 |
|- | |- | ||
− | | [[ | + | |[[mCookie-BM/zh]]||1||电池管理 |
|- | |- | ||
− | | [[ | + | |[[mCookie-BM shield/zh]]||1||电池管理扩展 |
|- | |- | ||
− | | [[ | + | |[[Microduino-Joystick/zh]]||1||摇杆传感器 |
|} | |} | ||
− | + | *其他设备 | |
+ | **N20直流减速电机 | ||
+ | **2节电池 | ||
+ | **USB数据线 | ||
+ | **传感器连接线*1 | ||
+ | |||
+ | [[File:_Joystick_motor.jpg|600px|center|thumb]] | ||
==搭建硬件== | ==搭建硬件== |
2015年11月24日 (二) 03:22的版本
Language | English |
---|
目的通过Joystick摇杆来控制直流电机的转动。 原理通过检测Joystick摇杆在X,Y轴两个方向上的模拟量来控制直流电机转动的转速和方向。 设备
搭建硬件
软件调试
#define PI 3.1415926
#define JoystickX_PIN A1 //Joystick的X轴输出
#define JoystickY_PIN A0 //Joystick的Y轴输出
#define PIN_MOTORA 5 //电机输出引脚A
#define PIN_MOTORB 6 //电机输出引脚B
valueX = (float)(analogRead(JoystickX_PIN)-512);
valueY = (float)(analogRead(JoystickY_PIN)-512);
valueL = sqrt(sq(valueX)+sq(valueY));
angle = asin(valueX/valueL)*180/PI; //通过反三角函数计算摇杆的角度
motorSpeed = (int)(angle*255/180); //根据角度计算电机的转速
if(motorSpeed > 0) //角度为正,电机正转
{
digitalWrite(PIN_MOTORA, LOW);
analogWrite(PIN_MOTORB, motorSpeed);
}
else if(motorSpeed < 0) //角度为负,电机反转
{
digitalWrite(PIN_MOTORB, LOW);
analogWrite(PIN_MOTORA, abs(motorSpeed));
}
else //角度为零,电机停止
{
digitalWrite(PIN_MOTORA, LOW);
digitalWrite(PIN_MOTORB, LOW);
}
delay(500);
程序结果将Joystick的摇杆推到不同的角度,可以看到电机的转速及方向也会跟着变化。 视频 |