9.1.16

Simples Arduino Display

Also da stand ich vor der Aufgabe, eine zweistellige Zahl zwischen ca. 1 und 99 mit einem Arduino anzeigen zu müssen. Wenn man da kein teures Display dranhängen möchte, so bastelt man sich einfach zwei 7-Segment-Anzeigen zusammen, schreibt ein wenig Code und schon kann man das mit nur 14 Ausgängen des Arduino benutzen. Das bedeutet aber auch eine Menge Löterei und für andere Sensoren oder Schalter bleibt auch nicht mehr viel übrig.
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.