// Moter-Measure-7-2 2025/12/28 // モータ特性測定の専用シールド用 // HX711.DOUT-PIN D15 // HX711.PD_SCK-PIN D16 #include #define CLR_PIN 10 #define FIN_PIN 11 #define LEDY_PIN 12 #define LEDG_PIN 13 #define START_PIN 2 #define vol_pin 5 #define cur_pin 0 #define volB_pin 4 const int LOADCELL_DOUT_PIN = 15; //ロードセル信号 const int LOADCELL_SCK_PIN = 16; //ロードセル信号 HX711 scale; void setup() { pinMode(CLR_PIN,OUTPUT); pinMode(FIN_PIN,INPUT); pinMode(LEDG_PIN,OUTPUT); pinMode(LEDY_PIN,OUTPUT); pinMode(START_PIN,INPUT); digitalWrite(volB_pin,LOW); scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN); Serial.begin(9600); } //メインループ void loop() { int voltage; int voltageB; int current; unsigned long vol; unsigned long volB; unsigned long cur; unsigned long t1; unsigned long t2; unsigned long tt; long force1; long force2; long force3; long force4; long force5; int n; int start; int fin; //********モータの回転数計測 ***************** //準備 vol = 0; volB = 0; cur = 0; n = 0; digitalWrite(LEDG_PIN, HIGH); digitalWrite(CLR_PIN, LOW); // 回転数計測状態を確認 start = digitalRead(START_PIN); //スタート start = digitalRead(START_PIN); while (start == HIGH) { // スタートボタンを待つ start = digitalRead(START_PIN); } digitalWrite(CLR_PIN, HIGH); digitalWrite(LEDY_PIN, HIGH); delay(500); digitalWrite(CLR_PIN, LOW); //測定開始 t1 = millis(); // 測定開始時刻 fin = digitalRead(FIN_PIN) ; //カウント完了を待つ while (fin == LOW) { // カウント完了を待つ。この間に電圧と電流を測定する voltage = analogRead(vol_pin); delay(2); voltageB = analogRead(volB_pin); delay(2); current = analogRead(cur_pin); vol = vol + voltage; volB = volB + voltageB; cur = cur + current; n = n + 1; fin = digitalRead(FIN_PIN) ; } t2 = millis(); // カウント完了時刻 //ロードセルを読む force1 = scale.read(); delay(20); force2 = scale.read(); delay(20); force3 = scale.read(); delay(20); force4 = scale.read(); delay(20); force5 = scale.read(); delay(20); //出力処理 tt = t2 - t1; String buf = String(vol)+","+String(volB)+","+String(cur)+","+String(n) +","+String(tt)+","+String(force1)+","+String(force2)+","+String(force3) +","+String(force4)+","+String(force5)+",E"; Serial.println(buf); digitalWrite(LEDY_PIN, LOW); delay(500); }