目的
秋葉原の秋月電子で売っている。
あの、ベストセラーのアナログジョイスティックで
遊ぶ。(RKJXV122400R)(約300円で硬い安い方)
(アナログジョイスティックで硬いとは、入力時の戻りが...省略)
(あと、入力の制限が...省略)
(ようは、お値段なり)
工夫した点は、半固定抵抗をかませて、中心が1.650Vに
なる様に調整した。(少し基板を切って繋いで改造した)
(改造箇所は、Y側の電源を切り離して、別のピンから出力した)
注意点、配線の都合、XとYが逆でソフト側で対応
(さらに逆でいいかんじ)
結果
プログラム
//ser_analog_joystick_1_stm32h743_1
//インクルド
#include <Arduino.h>
//初期化
void setup() {
//シリアルポートの初期化
Serial.begin(9600);
} //setup
//メインループ
void loop() {
int s; //センサーの値
int Voltage; //電圧
char data[16]; //出力用文字列
//電圧を入力する(3.3Vを4096に分解した値)
analogReadResolution(12); //センサーの分解度4096
s = analogRead(A4); //センサーの値
//電圧に変換 ex 1650
Voltage = (s * 3300) >> 12; // v = s * 3300 / 4096 電圧こと
//文字列に変換する
data[5] = 0; //終端記号
data[4] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[3] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[2] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[1] = '.'; //小数点の区切り
data[0] = '0' + Voltage; //整数1桁目(1の位)
//整数.小数点3桁で表示 ex 1.650
Serial.print(data);
Serial.print(","); //区切り
//電圧を入力する(3.3Vを4096に分解した値)
analogReadResolution(12); //センサーの分解度4096
s = analogRead(A5); //センサーの値
//電圧に変換 ex 1650
Voltage = (s * 3300) >> 12; // s = v * 3300 / 4096 電圧こと
//文字列に変換する
data[5] = 0; //終端記号
data[4] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[3] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[2] = '0' + Voltage % 10; //小数点の値
Voltage = Voltage / 10;
data[1] = '.'; //小数点の区切り
data[0] = '0' + Voltage; //整数1桁目(1の位)
//整数.小数点3桁で表示 ex 1.650
Serial.print(data);
Serial.println(""); //改行
//2msの待ち
delay(2);
} //loop