目录
介绍
模拟操纵杆
需要在2-D平面中改变光标位置的视频游戏等应用程序使用模拟操纵杆作为输入设备。
模拟操纵杆产生两个电压; 一个对应于相对于X轴的位置,另一个对应于相对于Y轴的位置。产生的电压取决于操纵杆的位置。
要将模拟操纵杆与MSP-EXP430G2 TI Launchpad连接,我们需要在MSP-EXP430G2 TI Launchpad板的微控制器上使用ADC。
连接图
模拟操纵杆模块与MSP-EXP430G2 TI Launchpad的连接
例
在Energia的串行监视器上显示X和Y方向的模拟操纵杆电压。
在这里,我们将使用MSP-EXP430G2 TI Launchpad的模拟引脚来处理操纵杆的模拟电压。
注意: MSP-EXP430G2 TI Launchpad主板具有512字节的RAM,可轻松上传,尤其是在使用不同库时。有时您需要串行缓冲区足够大以包含所需的数据,并且您必须修改串行库的缓冲区大小。在做这些事情时,我们必须确保代码不会使用超过70%的RAM。这可能导致代码以不稳定的方式工作,有时运行良好并且在其他方面失败。
有些时候RAM使用率可能会超过70%并且代码将完全正常工作,并且即使RAM使用率为65%,代码也无法工作。
在这种情况下,可能需要对缓冲区大小和/或变量进行一些试验和错误。
程序
const int joystick_x_pin = A3;
const int joystick_y_pin = A4;
void setup() {
Serial.begin(9600); /* Define baud rate for serial communication */
}
void loop() {
int x_adc_val, y_adc_val;
float x_volt, y_volt;
x_adc_val = analogRead(joystick_x_pin);
y_adc_val = analogRead(joystick_y_pin);
余下程序:
x_volt = ( ( x_adc_val * 3.3 ) / 1023 ); /*Convert digital value to voltage */
y_volt = ( ( y_adc_val * 3.3 ) / 1023 ); /*Convert digital value to voltage */
Serial.print("X_Voltage = ");
Serial.print(x_volt);
Serial.print("\t");
Serial.print("Y_Voltage = ");
Serial.println(y_volt);
delay(100);
}