Doch dann hatte ich eine Idee: Wie wäre es, wenn man einfach einen simplen digitalen Fahrradtacho an den Arduino anschließt und den Magnetschalter des Radsensors "emuliert". Schon hätte man ein stromsparendes LC-Display für wenig Geld und außerdem bräuchte man nur einen einzigen Ausgang. Gesagt, probiert. Das Ergebnis seht ihr in dem eingebundenen Video.
Ein Arduino Mini steuert über einen Pin einen Optokoppler an, dessen sekundären Ausgang ich an das Tachokabel angeschlossen habe. So kann man potentialfrei schalten. Mit ein wenig Mathematik kann man auch die korrekte Periode für das PWM-Signal an diesem Ausgang berechnen.
#include
// set constants
const long circumference = 3600; // circumference of the tire in millimeters set in the bike speedometer
// set global variables
long period = 214000;
int duty = 1;
void setup() {
// put your setup code here, to run once:
Timer1.initialize(period); // initialize timer1, and set a period
Timer1.pwm(10, duty); // setup pwm on pin 9, duty cycle
}
void loop() {
// display numbers from 30 to 60 (approximately :-))
for (int i = 30; i < 60; i++) {
setBeatValue (i);
delay(2000);
}
}
void setBeatValue(int bpm) {
period = circumference * 3600 / bpm - 1150 ; // period in microseconds minus correction factor
Timer1.setPeriod(period);
}
Natürlich muss man am Fahrradtacho noch eine geeignete Radgröße einstellen und die Messungenauigkeit des Tachos sollte man halt in Kauf nehmen. Die Nachkommastelle der Geschwindigkeit ist ja auch eher unerheblich. Für meine Ansprüche reicht es auf jeden Fall.