Cuprins:

Tahometru pentru biciclete DIY: 5 pași (cu imagini)
Tahometru pentru biciclete DIY: 5 pași (cu imagini)

Video: Tahometru pentru biciclete DIY: 5 pași (cu imagini)

Video: Tahometru pentru biciclete DIY: 5 pași (cu imagini)
Video: Costeo biju ‼️luat la palme de interlopi‼️#bucuresti #emipian #florinsalam #dans #interlopi 2024, Noiembrie
Anonim
Image
Image
Tahometru pentru biciclete DIY
Tahometru pentru biciclete DIY

Vă voi arăta cum să construiți un vitezometru pentru bicicletă. Vă arată viteza, viteza medie, temperatura, timpul de călătorie și distanța totală. Puteți să-l modificați folosind butonul. În plus, viteza este afișată pe un tahometru. L-am construit pentru că îmi place să construiesc lucruri noi, nu am găsit așa ceva pe internet, așa că vreau să vă arăt cum să construiți un vitezometru bun, deoarece cel de pe bicicletă nu este atât de mișto pe cât îmi doresc:). Deci sa începem.

Pasul 1: Piese:

Părți
Părți

Aceasta este o listă de piese de care veți avea nevoie. M-au costat aproximativ 40 $:

  • Arduino
  • Bicicletă cu comutator stuf
  • Afișaj LCD 16x2
  • Servo
  • Pană de pâine
  • Termometru DS18B20
  • Rezistor 1.2k Ω, 4.7k Ω
  • Intrerupator
  • Buton
  • Potențiometru 10 kΩ
  • Baterie de 9V
  • Cabluri
  • Cutie
  • Unelte (burghiu, lipit, cuțit, bandă)

Pasul 2: Conexiune

Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune
Conexiune

Am adăugat o imagine de la Fritzing și o descriere verbală a modului de conectare. În imagine, toate firele roșii sunt conectate la 5V, toate cablurile albastre sunt conectate la GND.

Ecran LCD:

VSS GND Arduino

VDP 5V Arduino

Potențiometru de ieșire VO (potențiometru VCC -> 5V Arduino, potențiometru GND -> Arduino GND).

RS pin 12 Arduino

RW GND Arduino

E pin 11 Arduino

D4 pin 5 Arduino

D5 pin 4 Arduino

D6 pin 3 Arduino

D7 pin 2 Arduino

Un Arduino de 5V

K GND Arduino

Servo:

VCC 5V Arduino

masă GND Arduino

Pinul de date 6 Arduino

Termometru:

VCC 5V Arduino

masă GND Arduino

Pinul de date 1 Arduino

datele și puterea sunt conectate printr-un rezistor de 4,7 kΩ

Senzor pe roată:

un capăt -> 5V Arduino

al doilea capăt -> A0 Arduino și rezistorul 1, 2 kΩ

Celălalt capăt al rezistorului la sol în Arduino

Buton:

un capăt 5V Arduino

al doilea capăt A1 Arduino

Pasul 3: Încărcați codul:

Mai jos am adăugat codul în comentarii, există o explicație.

linkuri către bibliotecile de descărcare:

www.pjrc.com/teensy/arduino_libraries/OneWire.zip

github.com/milesburton/Arduino-Temperature-Control-Library

Dacă aveți un diametru diferit al roții, trebuie să îl schimbați. O puteți calcula cu această formulă:

circuit = π * d * 2, 54 (d = diametrul roții tale, l-am înmulțit cu 2,54 pentru a obține rezultatul în metri).

/*

####################################################### Drepturi de autor de Nikodem Bartnik iunie 2014 ################################################ ###### * / // biblioteci #include #include #include #include #define ONE_WIRE_BUS 1 OneWire oneWire (ONE_WIRE_BUS); Senzori de temperatură Dallas (& oneWire); // Pinii LCD LCD LiquidCrystal (12, 11, 5, 4, 3, 2); // nume servo Servo myservo; // definirea variabilelor cu mult timp anterior, triptime, timp, impulsuri; vitezometru plutitor, dist, aspeed; int servo; ecran int = 1; // Dacă aveți alt circuit de roată, trebuie să-l schimbați circuit plutitor = 2.0; temperatura dubla; void setup () {lcd.begin (16, 2);

pinMode (A0, INPUT); pinMode (A1, INPUT); // servodefinirea și setarea turometrului la 0 myservo.attach (6); myservo.write (180); lcd.print ("Tahometru pentru biciclete"); întârziere (1000); lcd.setCursor (5, 1); lcd.print ("V 1.0"); întârziere (4000); lcd.clear (); întârziere (500); lcd.setCursor (0, 0); lcd.print ("Dist:"); } void loop () {// dacă roata se învârte dacă (analogRead (A0)> = 300) {// numărul de spire ++ impulsuri ++; // count time turn time = (milis () - precedent); // contor viteza vitezometrului = (circuit / timp) * 3600.0; precedent = millis (); Tahometru (); întârziere (100); } Lcd (); } // afișează viteza pe tahometru void Tahometru () {// harta viteză 0-180 la servo vitezometru = int (vitezometru); servo = hartă (vitezometru, 0, 72, 180, 0); // setup servo myservo.write (servo); } void Lcd () {// când se face clic pe butonul if (analogRead (A1)> = 1010) {lcd.clear (); ecran ++; if (ecran == 5) {ecran = 1; }} if (ecran == 1) {// afișează viteza lcd.setCursor (0, 1); lcd.print ("Viteză:"); lcd.setCursor (7, 1); lcd.print (vitezometru); lcd.print ("km / h"); } if (ecran == 2) {// afișează temperatura temperaturii = sensors.getTempCByIndex (0); sensors.requestTemperatures (); lcd.setCursor (0, 1); lcd.print ("Temp:"); lcd.setCursor (7, 1); lcd.print (temperatura); lcd.print ("C"); } if (ecran == 3) {// afișează viteza medie aspeed = dist / (milis () / 1000.0) * 3600.0; lcd.setCursor (0, 1); lcd.print ("A.speed:"); lcd.setCursor (8, 1); lcd.print (aspeed); lcd.print ("km / h"); } if (ecran == 4) {// diplays time trip triptime = millis () / 60000; lcd.setCursor (0, 1); lcd.print ("Ora:"); lcd.setCursor (7, 1); lcd.print (triptime); } lcd.setCursor (0, 0); lcd.print ("Dist:"); // calculul distanței dist = impulsuri * circuit / 1000,00; // afișează distanța lcd.setCursor (6, 0); lcd.print (dist); lcd.print („km”); }

Pasul 4: împachetați

Ambalaj
Ambalaj
Ambalaj
Ambalaj
Ambalaj
Ambalaj

Ca acoperire am folosit o cutie de plastic pe care am cumpărat-o cu 1 dolar. Am tăiat găuri folosind un cuțit și un burghiu. Servo și afișaj LCD le-am lipit cu o bandă, vârful pe care l-am făcut cu cutie și l-am pictat cu vopsea. Am făcut scut în Corel Draw X5 și l-am imprimat, am adăugat o imagine-p.webp

Pasul 5: Rulați-l

Rulați-l!
Rulați-l!
Rulați-l!
Rulați-l!
Rulați-l!
Rulați-l!
Rulați-l!
Rulați-l!

Acum este gata. Tot ce trebuie să faceți este să îl porniți și să mergeți. Distrează-te cu vitezometrul. Dacă îți place acest proiect, te rog să mă votezi.

Recomandat: