※日本精機製タコメータが動かない※
電解コンデンサのショート不良可能性あり。基板中央付近の円筒形470μF6.3Vを、
テスタ抵抗レンジで数Ωなら可能性高いので交換してみて。<br /><br />簡易CDIイグニッションパルス発生&入力回路
ホトカプラ:TLP371
ダイオード:1N4148(何でも使えるかと思う)
パルス発生用Arduinoスケッチ
スケッチ例BlinkWithoutDelayを改変しました。
ざっくり説明
ArduinoUNO用
シリアルターミナルからパルス幅設定数値をマイクロ秒単位で入力してEnterまたは送信をクリックすると
シリアルモニタにパルス幅(μS)と回転数(rpm)を表示して、デジタル9にパルスを出力します。
10000(μS)を入力すると3,000(rpm)4285(μS)で≒14,002(rpm)
もちろん誤差あります。
スケッチconst int ledPin = 9 ;
int ledState = LOW;
unsigned long previousMillis = 0;
int sensorValue = 0;
int outputValue = 0;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
void loop() {
if (Serial.available()) {
String Received_value;
Received_value = Serial.readStringUntil('\n');//終端文字'\n'検出まで読み文字列全体を変数へ
outputValue = Received_value.toInt();
Serial.print(outputValue);
Serial.print(" , ");
uint32_t rpm;
rpm = ((60 * 1000000) / outputValue)/2 ;
Serial.println(rpm);
}
unsigned long currentMillis = micros();
if (currentMillis - previousMillis >= (outputValue / 2)) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
if (ledState == HIGH) {
PORTB |= _BV(1);//D9-PB1 D8
} else {
PORTB &= ~_BV(1);//D9-PB1 D8
}
//digitalWrite(ledPin, ledState);
}
}
※コメント投稿者のブログIDはブログ作成者のみに通知されます