Arduino Fahrrad-Geschwindigkeitsmesser

16 Schritt:Schritt 1: Schematische Schritt 2: Protoboard Schritt 3: Reed-Schalter Schritt 4: Mount Reed-Schalter am Rad Schritt 5: Testen wechseln Schritt 6: LCD Schritt 7: Installieren Parallax LCD-Bibliothek Schritt 8: Parallax LCD Schritt 9: Test LCD Schritt 10: Gegenlichtschalter Schritt 11: Schluss Speedometer-Code Schritt 12: Batterie Schritt 13: Enclosure Schritt 14: Installieren Sie Komponenten im Gehäuse Schritt 15: Bringen Sie zum Bike Schritt 16: Nehmen Sie es heraus auf der Straße

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Überwachen Sie Ihre Fahrgeschwindigkeit mit dem Arduino. Dieses Projekt verwendet einen Magnetschalter (auch als Reed-Schalter), um die Geschwindigkeit von einem der Räder des Motorrads zu messen. Das Arduino berechnet den mph, und senden Sie diese Informationen aus, um den LCD-Bildschirm auf dem Lenker, wie Sie fahren. Es ist mit jeder Art von Fahrrad / Rad-kompatibel ist, geben Sie einfach den Radius des Rades in der Firmware, um das Gerät für Ihr Setup zu kalibrieren.



Liste der Einzelteile:

(1x) Arduino Uno REV 3 Radioshack 276-128
(1x) Schalter-Magnet Reed Radioshack 55050593
(1x) 10K Ohm 1/4 Watt-Carbon Film Resistor Radioshack # 271-1335
(1x) 9V Alkaline Batterie Radioshack # 23-866
(1x) Heavy-Duty-9V Schnappverbindungen Radioshack # 270-324
(1x) PC-Board mit Copper Radioshack # 276-147
(1x) Parallax 27977-RT Serien Backlit LCD Radioshack 276-120
(X2) SPST PC-Montage Subminiatur Kippschalter Radioshack # 275-645
(2x) Stiftleiste Pins Jameco 103.393
(1x) Female Pin Sockets Jameco 308.567

Weitere Materialien:
22-Gauge-Kabel Radioshack # 278-1224
Solder Radioshack # 64-013
Sandpapier
Sperrholz
Holzleim
Heißkleber
Schrauben
Kabelbinder
Sugru

Laden Sie Arduino IDE

Schritt 1: Schematische



Arduino Fahrrad-Geschwindigkeitsmesser
Die schematische für dieses Projekt ist oben dargestellt.

Es besteht aus drei Schaltern:
-on auf eine 9-V-Stromversorgung angeschlossen
-on um die Hintergrundbeleuchtung des LCD ein- und auszuschalten
-a Magnetschalter (als Reed-Schalter), die jedes Mal schließt das Rad vervollständigt eine volle Umdrehung.

Die Parallex LCD ist so konzipiert, auf das Arduino verbinden mit nur drei Pins (ignorieren Sie die Etiketten und die anderen Stifte int seine schematisch). Ein bis 5V, eine Masse und eine dritte zur Serien out (TX) - auf dem Arduino, Serien out ist digital Pin 1.

10kOhm Widerstände zu den Reed-Schaltern und Hintergrundbeleuchtung, um überschüssigen Strom zwischen 5 V und Boden zu verhindern (man sollte nie direkt an 5V und Masse auf der Arduino!) Schritt 2: Protoboard

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Löten Sie drei Reihen von Header-Pins auf der Lochrasterplatinen, so dass der Arduino springt es auf, wie in den Bildern above.Step 3 gezeigt: Reed-Schalter

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Alle 8 Artikel anzeigen
Der Reedschalter ist aus zwei Teilen, einem Schalter und einem Magneten besteht. Der Switch verfügt über zwei Drähte, die sich von ihm aus, wenn ein Magnet in die Nähe der Schalter es eine kleine mechanische Stück zu bewegen, und schließen Sie den Schalter kurzzeitig bewirkt.

Löten Sie einen 10kOhm (Strombegrenzung) Widerstand zwischen A0 und Boden auf der Lochrasterplatinen. Schließen langen Stücken der Litze bis A0 und 5V- diese Drähte wird rund um die Rad wickeln und heften sich an den Reed switch.Step 4: Mount Reed-Schalter am Rad

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Sichern Sie sowohl die Magnet und Reed-Schalter, um Ihr Fahrrad-Rad mit Isolierband (entweder Rad ist in Ordnung). Wie oben in den Bildern gezeigt, verbindet sich der Magnet an einer der Speichen und Reifen der Reed-Schalter eine Verbindung mit dem Rahmen des Fahrrads. Auf diese Weise wird jedes Mal das Rad Rad dreht sich der Magnet bewegt sich über den Schalter. Schließen Sie die Leitungen bilden die Reed-Schalter, um die langen Drähte von Ihrem protoboard (Ausrichtung spielt keine Rolle hier- es ist nur ein Schalter)

Verwenden Sie den Code unten an deine Reedschalter zu testen. Wenn der Magnet auf dem Rad vorbei bewegt den Schalter sollte der arduino drucken ~ 1023, sonst wird es ~ 0 zu drucken. Öffnen Sie die serielle Monitor (Tools >> Serial Monitor) in Arduino IDE, die für Ihr eigenes Setup zu testen. Wenn der Magnet nicht scheint, werden die die Reed-Schalter, versuchen Sie es Neupositionierung oder sogar das Hinzufügen einer stärkeren Magneten, wenn Sie eine haben.

  // Arduino Fahrradtachometer w Serial.print ()
 // Von Amanda Ghassaei 2012
 //http://www.instructables.com/id/Arduino-Bike-Speedometer/

 / *
  * Dieses Programm ist freie Software;  es darf weitergegeben und / oder zu modifizieren
  * Es unter den Bedingungen der GNU General Public License, wie von veröffentlicht
  * Die Free Software Foundation;  entweder gemäß Version 3 der Lizenz oder
  * (Nach Ihrer Option) jeder späteren Version.
  *
 * /

 #define reed A0 // Stift verbunden ist, um den Schalter zu lesen

 // Speichervariable
 int reedVal;

 Leere setup () {
   Serial.begin (9600);
 }


 Leere Schleife () {
   reedVal = analogRead (reed); // val von A0 erhalten
   Serial.println (reedVal);
   Verzögerung (10);
 }


Schritt 5: Testen wechseln

Arduino Fahrrad-Geschwindigkeitsmesser
Laden Sie den Code unten auf die Arduino. Schalten Sie den seriellen Monitor. Es sollte Ausgang 0.00. Starten Drehen des Fahrrad-Rad, sollten Sie einen Ausdruck der aktuellen mph jede Sekunde sehen.

  // Arduino Fahrradtachometer w Serial.print ()
 // Von Amanda Ghassaei 2012
 //http://www.instructables.com/id/Arduino-Bike-Speedometer/

 / *
  * Dieses Programm ist freie Software;  es darf weitergegeben und / oder zu modifizieren
  * Es unter den Bedingungen der GNU General Public License, wie von veröffentlicht
  * Die Free Software Foundation;  entweder gemäß Version 3 der Lizenz oder
  * (Nach Ihrer Option) jeder späteren Version.
  *
 * /

 // Berechnungen
 // Reifenradius ~ 13,5 Zoll
 // Umfang = pi * 2 * r = ~ 85 Zoll
 // Max Geschwindigkeit von 35 Stundenmeilen = ~ 616inches / Sekunde
 // Max rps = ~ 7.25

 #define reed A0 // Stift verbunden ist, um den Schalter zu lesen

 // Speichergrößen
 int reedVal;
 Langzeitgebers; // Zeit zwischen einer vollen Umdrehung (in ms)
 schweben mph;
 float radius = 13,5; // Reifenradius (in Zoll)
 schweben Umfang;

 int maxReedCounter = 100; // min Zeit (in ms) von einer Umdrehung (für die Entprellung)
 int reedCounter;


 Leere setup () {
  
   reedCounter = maxReedCounter;
   Umfang = 2 * 3,14 * Radius;
   pinMode (Schilf, INPUT);
  
   // TIMER SETUP- der Timer-Interrupt erlaubt eine präzise Zeitmessung des Reed-Schalters
   // Für weitere Informationen über Konfiguration arduino Timer siehe http://arduino.cc/playground/Code/Timer1
   cli (); // Stop-Interrupts

   // Setze timer1 bei 1 kHz zu unterbrechen
   TCCR1A = 0; // gesetzt gesamten TCCR1A Register auf 0
   TCCR1B = 0; // gleiche für TCCR1B
   TCNT1 = 0;
   // Setze Zeitgeberzählwert für 1 kHz-Schritten
   OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1
   // Auf CTC-Modus schalten
   TCCR1B | = (1 << WGM12);
   // Set CS11-Bit für 8 Vorteiler
   TCCR1B | = (1 << CS11);   
   // Timer aktivieren vergleichen zu unterbrechen
   TIMSK1 | = (1 << OCIE1A);
  
   sei (); // ermöglichen Interrupts
   // END Timer Setup
  
   Serial.begin (9600);
 }


 ISR (TIMER1_COMPA_vect) {// Interrupt bei freq von 1 kHz bis Reedschalter zu messen
   reedVal = digitalRead (reed); // val von A0 erhalten
   if (reedVal) {// wenn Reed-Schalter geschlossen
     if (reedCounter == 0) {// min Zeit zwischen den Impulsen vergangen
       mph = (56,8 * float (Umfang)) / float (Timer); // Meilen pro Stunde berechnet
       Timer = 0; // Timer zurücksetzen
       reedCounter = maxReedCounter; // reedCounter zurücksetzen
     }
     else {
       if (reedCounter> 0) {// Lassen Sie sich nicht gehen reedCounter negativen
         reedCounter - = 1; // Dekrement reedCounter
       }
     }
   }
   else {// Wenn Reedschalter ist geöffnet
     if (reedCounter> 0) {// Lassen Sie sich nicht gehen reedCounter negativen
       reedCounter - = 1; // Dekrement reedCounter
     }
   }
   if (Timer> 2000) {
     mph = 0; // wenn keine neuen Impulse von Reed-Schalt Reifen ist immer noch, setzen mph auf 0
   }
   else {
     Timer + = 1; // Schritt Timer
   } 
 }

 Leere displayMPH () {
   Serial.println (mph);
 }

 Leere Schleife () {
   // Print mph einmal pro Sekunde
   displayMPH ();
   Verzögerung (1000);
 }


Schritt 6: LCD

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Löten Sie eine Reihe von weiblichen Kopfbuchsen auf der Kupferseite des protoboard- drei von ihnen werden verwendet, um den LCD-Bildschirm angeschlossen werden. Installieren Sie Parallax LCD Library: Die LCD sollte schön auf dem protoboard.Step 7 passen

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Schließen Sie 5V Arduino, Ground, und TX (Arduino digitale Pin 1) an den LCD-Buchse. Lesen Sie die Etiketten auf den LCD Pins sicherstellen, dass Sie alles, was orientierte correctly.Step 8 haben: Parallax LCD

Arduino Fahrrad-Geschwindigkeitsmesser
Die Unterseite des Parallax LCD besteht aus zwei Schaltern und einem Potentiometer. Der Topf steuert den Kontrast der Display- können Sie uns das, was Ihnen gefällt, um einzustellen. Die Schalter müssen eingestellt werden, wie sie im Bild oben für die richtige functioning.Step 9 gezeigt: Test LCD

Arduino Fahrrad-Geschwindigkeitsmesser
Prüfen Sie den folgenden Code ein. Aus irgendeinem Grund beginnt mein LCD Lärm und Anzeigen von zufälligen Zeichen, wenn ich zum ersten Mal laden, aber funktioniert gut, wenn ich ziehen Sie und schließen Sie die USB-Verbindung. Ich denke, das kann etwas Willen Störungen aus dem Arduino, die mit dem Computer über digitale Stift 1 (TX) beim Upload zu tun haben.

Die LCD sollte "Hallo Welt" an, wenn es eingeschaltet ist.
  // Test der Parallaxe 2x16 LCD-
 // Von Amanda Ghassaei 2012
 //http://www.instructables.com/id/Arduino-Bike-Speedometer/

 / *
  * Dieses Programm ist freie Software;  es darf weitergegeben und / oder zu modifizieren
  * Es unter den Bedingungen der GNU General Public License, wie von veröffentlicht
  * Die Free Software Foundation;  entweder gemäß Version 3 der Lizenz oder
  * (Nach Ihrer Option) jeder späteren Version.
  *
 * /

 // Dieser Code sollte auf der LCD-Hintergrundbeleuchtung und der Umstellung auf digitale Stift verbunden zu drucken "Hallo Welt" 2 funktionieren sollte


 //Serial.write(13);//start Einer neuen Zeile

 Leere setup () {
   Serial.begin (9600);
   pinMode (1, OUTPUT); // tx
  
   Serial.write (12); // clear
   Serial.write ("Hallo Welt");
 }

 Leere Schleife () {
 }  

Schritt 10: Gegenlichtschalter

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Draht einen Schalter, wie oben in der Abbildung dargestellt. Schließen Sie einen 10kOhm Widerstand und einen grünen Draht an einer Leitung, und eine rote Kabel an den anderen.

Schließen Sie das rote Kabel an Arduino 5 V, die andere Seite des Widerstands an Masse, und das grüne Kabel an D2.Step 11: Schluss Speedometer-Code

Arduino Fahrrad-Geschwindigkeitsmesser
Laden Sie den folgenden Code auf das Arduino. Test, um sicherzustellen, dass die Hintergrundbeleuchtung Schalter funktioniert und die Geschwindigkeit richtig angezeigt. (Auch hier müssen Sie die Platine nach dem Laden der Firmware ziehen und stecken Sie es wieder ein, um es richtig funktioniert.)

Messen Sie den Radius des Reifenrades (in Zoll) und legen Sie sie in der Linie: float radius = '' '' ';
  // Fahrrad-Geschwindigkeitsmesser
 // Von Amanda Ghassaei 2012
 //http://www.instructables.com/id/Arduino-Bike-Speedometer/

 / *
  * Dieses Programm ist freie Software;  es darf weitergegeben und / oder zu modifizieren
  * Es unter den Bedingungen der GNU General Public License, wie von veröffentlicht
  * Die Free Software Foundation;  entweder gemäß Version 3 der Lizenz oder
  * (Nach Ihrer Option) jeder späteren Version.
  *
 * /

 // Ausgabe Geschwindigkeit Fahrrad LCD

 // Berechnungen
 // Reifenradius ~ 13,5 Zoll
 // Umfang = pi * 2 * r = ~ 85 Zoll
 // Max Geschwindigkeit von 35 Stundenmeilen = ~ 616inches / Sekunde
 // Max rps = ~ 7.25

 #define reed A0 // Stift verbunden ist, um den Schalter zu lesen

 // Speichergrößen
 float radius = 13,5; // Reifenradius (in Zoll) - Ändern Sie diese für Ihr eigenes Fahrrad

 int reedVal;
 Langzeitgeber = 0; // Zeit zwischen einer vollen Umdrehung (in ms)
 schweben mph = 0.00;
 schweben Umfang;
 boolean-Hintergrundbeleuchtung;

 int maxReedCounter = 100; // min Zeit (in ms) von einer Umdrehung (für die Entprellung)
 int reedCounter;


 Leere setup () {
  
   reedCounter = maxReedCounter;
   Umfang = 2 * 3,14 * Radius;
   pinMode (1, OUTPUT); // tx
   pinMode (2, OUTPUT); // Hintergrundbeleuchtung Schalter
   pinMode (Schilf, INPUT);
  
   checkBacklight ();
  
   Serial.write (12); // clear
  
   // TIMER SETUP- der Timer-Interrupt können preceise timed Messungen des Reed-Schalters
   // Für mor Daten zu Konfiguration arduino Timer siehe http://arduino.cc/playground/Code/Timer1
   cli (); // Stop-Interrupts

   // Setze timer1 bei 1 kHz zu unterbrechen
   TCCR1A = 0; // gesetzt gesamten TCCR1A Register auf 0
   TCCR1B = 0; // gleiche für TCCR1B
   TCNT1 = 0;
   // Setze Zeitgeberzählwert für 1 kHz-Schritten
   OCR1A = 1999; // = (1/1000) / ((1 / (16 * 10 ^ 6)) * 8) - 1
   // Auf CTC-Modus schalten
   TCCR1B | = (1 << WGM12);
   // Set CS11-Bit für 8 Vorteiler
   TCCR1B | = (1 << CS11);   
   // Timer aktivieren vergleichen zu unterbrechen
   TIMSK1 | = (1 << OCIE1A);
  
   sei (); // ermöglichen Interrupts
   // END Timer Setup
  
   Serial.begin (9600);
 }

 Leere checkBacklight () {
   Hintergrundbeleuchtung = digitalRead (2);
   if (Hintergrundbeleuchtung) {
     Serial.write (17); // Hintergrundbeleuchtung einzuschalten
   }
   else {
     Serial.write (18); // Ausschalten der Hintergrundbeleuchtung
   }
 }

 ISR (TIMER1_COMPA_vect) {// Interrupt bei freq von 1 kHz bis Reedschalter zu messen
   reedVal = digitalRead (reed); // val von A0 erhalten
   if (reedVal) {// wenn Reed-Schalter geschlossen
     if (reedCounter == 0) {// min Zeit zwischen den Impulsen vergangen
       mph = (56,8 * float (Umfang)) / float (Timer); // Meilen pro Stunde berechnet
       Timer = 0; // Timer zurücksetzen
       reedCounter = maxReedCounter; // reedCounter zurücksetzen
     }
     else {
       if (reedCounter> 0) {// Lassen Sie sich nicht gehen reedCounter negativen
         reedCounter - = 1; // Dekrement reedCounter
       }
     }
   }
   else {// Wenn Reedschalter ist geöffnet
     if (reedCounter> 0) {// Lassen Sie sich nicht gehen reedCounter negativen
       reedCounter - = 1; // Dekrement reedCounter
     }
   }
   if (Timer> 2000) {
     mph = 0; // wenn keine neuen Impulse von Reed-Schalt Reifen ist immer noch, setzen mph auf 0
   }
   else {
     Timer + = 1; // Schritt Timer
   } 
 }

 Leere displayMPH () {
   Serial.write (12); // clear
   Serial.write ("Speed ​​=");
   Serial.write (13); // eine neue Zeile beginnen
   Serial.print (mph);
   Serial.write ("MPH");
   //Serial.write("0.00 MPH ");
 }

 Leere Schleife () {
   // Print mph einmal pro Sekunde
   displayMPH ();
   Verzögerung (1000);
   checkBacklight ();
 }




Ich benutzte Timer-Interrupts in diesem Teil des Codes, um die Variable "Timer" Inkrementieren bei 1 kHz zu halten. Mehr Infos über Interrupts und eine Erklärung, wie ich es einrichten kann hier gefunden werden.
Schritt 12: Batterie

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Verbinden Sie den Batterieanschluss und Schalter in Reihe, wie oben in der ersten Abbildung dargestellt. Schließen Sie das Lesekabel vom Schalter auf Arduino Vin und das schwarze Kabel von der Batterie-Anschluss an Arduino ground.Step 13: Gehäuse

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Ich mein Projekt Gehäuse geschnitten von 1/4 "Lage auf einem Epilog 120Watt Laserschneider. Die Abmessungen der Gehäuse sind 3,5" x4 "x2". I modelliert die Box in AutoCAD und erzeugt die Laser-Cut-Dateien (mit Fingergelenke) in Autodesk 123D Stellen. Dann habe ich zwei Löcher für die Schalter und eine rechteckige Öffnung für den LCD-Bildschirm. Ich habe auch einige Löcher auf der Unterseite des Gehäuses, damit Sie es an dem Rad leichter.

Ich klebte das Projekt Gehäuse zusammen mit Holzleim und geschliffen, die Kanten nach unten. Ich beendete das Gehäuse mit einigen klaren polycrylic.Step 14: Installieren von Komponenten im Gehäuse

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Sichern Sie sich die Schalter auf dem Gehäuse mit Nüssen. Kleben oder schrauben Sie den LCD an der Unterseite der Frontplatte.
Montieren Sie die Arduino und Protoboard als auch die Batterie in das Gehäuse einsetzen und mit Flausch oder Klebstoff.
Schrauben oder befestigen Sie das Gehäuse shut.Step 15: Befestigen Sie Bike

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Arduino Fahrrad-Geschwindigkeitsmesser

Wickeln Sie die Reed-Schalter Drähte rund um den Fahrradrahmen, von allen sich bewegenden Fahrradteile. Ich habe Sugru und einige Kabelbinder um den Tacho auf den Griff bars.Step 16 befestigen: Nehmen Sie es heraus auf der Straße

Arduino Fahrrad-Geschwindigkeitsmesser
Sie sollten bereit sein, die Straße zu schlagen sein. Lassen Sie sich nicht die awesomeness von Ihrem neuen Fahrrad Tacho ablenken von Gefahren im Straßenverkehr!