Obrotomierz rowerowy DIY: 5 kroków (ze zdjęciami)
Obrotomierz rowerowy DIY: 5 kroków (ze zdjęciami)
Anonim
Image
Image
Obrotomierz rowerowy DIY
Obrotomierz rowerowy DIY

Pokażę Ci, jak zbudować prędkościomierz rowerowy. Pokazuje Twoją prędkość, średnią prędkość, temperaturę, czas podróży i całkowitą odległość. Możesz to zmienić za pomocą przycisku. Dodatkowo prędkość pokazywana jest na obrotomierzu. Zbudowałem go, bo lubię budować nowe rzeczy, nie znalazłem czegoś takiego w internecie, więc chcę pokazać, jak zbudować dobry prędkościomierz, ponieważ ten na moim rowerze nie jest tak fajny, jak chcę:). Więc zacznijmy.

Krok 1: Części:

Części
Części

To jest lista części, których będziesz potrzebować. Kosztowały mnie około 40 dolarów:

  • Arduino
  • Rower z kontaktronem
  • Wyświetlacz LCD 16x2
  • Serwo
  • Deska do krojenia chleba
  • Termometr DS18B20
  • Rezystor 1,2kΩ, 4,7kΩ
  • Przełącznik
  • Przycisk
  • Potencjometr 10 kΩ
  • Bateria 9V
  • Kable
  • Skrzynka
  • Narzędzia (wiertło, lutownica, nóż, taśma)

Krok 2: Połączenie

Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie
Połączenie

Dodałem zdjęcie z Fritzing i słowny opis jak to połączyć. Na zdjęciu wszystkie czerwone przewody są podłączone do 5V, wszystkie niebieskie kable są podłączone do GND.

Wyświetlacz LCD:

VSS GND Arduino

VDP 5V Arduino

Potencjometr wyjściowy VO (potencjometr VCC -> 5V Arduino, potencjometr GND -> Arduino GND).

pin RS 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

Arduino 5V

K GND Arduino

Serwo:

VCC 5V Arduino

masa GND Arduino

Pin danych 6 Arduino

Termometr:

VCC 5V Arduino

masa GND Arduino

Pin danych 1 Arduino

dane i zasilanie są połączone za pomocą rezystora 4,7 kΩ

Czujnik na kole:

jeden koniec -> 5V Arduino

drugi koniec -> Arduino A0 i rezystor 1,2 kΩ

Drugi koniec rezystora do masy w Arduino

Przycisk:

jeden koniec 5V Arduino

drugi koniec Arduino A1

Krok 3: Prześlij kod:

Poniżej dodałem kod w komentarzach jest wyjaśnienie.

linki do bibliotek pobierania:

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

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

Jeśli masz inną średnicę koła, musisz to zmienić. Możesz to obliczyć za pomocą tego wzoru:

obwód = π*d*2, 54 (d=średnica twojego koła, pomnożyłem to przez 2,54, aby otrzymać wynik w metrach).

/*

################################################## Copyright by Nikodem Bartnik czerwiec 2014 ########################################## ###### */ //biblioteki #include #include #include #include #define ONE_WIRE_BUS 1 OneWire oneWire(ONE_WIRE_BUS); DallasCzujniki temperatury(&oneWire); //Styki wyświetlacza LCD LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //nazwa serwa Servo myservo; //definicja zmiennych od dawna, czasu podróży, czasu, impulsów; prędkościomierz pływakowy, odległość, prędkość; serwo wewnętrzne; int ekran=1; //Jeśli masz inny obwód koła, musisz go zmienić float circuit=2.0; podwójna temperatura; void setup() { lcd.begin(16, 2);

pinMode(A0, WEJŚCIE); pinMode(A1, WEJŚCIE); //definicja serwa i ustawienie obrotomierza na 0 myservo.attach(6); myservo.write(180); lcd.print("Obrotomierz rowerowy"); opóźnienie (1000); lcd.setCursor(5, 1); lcd.print("V 1.0"); opóźnienie (4000); lcd.clear(); opóźnienie (500); lcd.setCursor(0, 0); lcd.print("Odległość:"); } void loop() { //jeśli kręci się koło if(analogRead(A0)>=300){ //liczba obrotów++ impulsy++; //licz czas tur time=(millis()-previous); //liczenie prędkościomierza=(obieg / czas)*3600,0; poprzednia=mili(); Tachometr(); opóźnienie (100); } LCD(); } //wyświetlanie prędkości na obrotomierzu void Tachometer(){ //mapa prędkości 0-180 do serwomechanizmu speedometer=int(speedometer); serwo = mapa(prędkościomierz, 0, 72, 180, 0); //ustaw serwo myservo.write(serwo); } void Lcd(){ //po kliknięciu przycisku if(analogRead(A1)>=1010){ lcd.clear(); ekran++; jeśli(ekran==5){ekran=1; } } if(screen==1){ //wyświetla prędkość lcd.setCursor(0, 1); lcd.print("Prędkość:"); lcd.setCursor(7, 1); lcd.print(prędkościomierz); lcd.print("km/h"); } if(screen==2){ //wyświetlanie temperatury temperatura=czujniki.getTempCByIndex(0); sensory.żądanieTemperatury(); lcd.setCursor(0, 1); lcd.print("Temp:"); lcd.setCursor(7, 1); lcd.print(temperatura); lcd.print("C"); } if(screen==3){ //wyświetla średnią prędkość aspeed=dist/(millis()/1000.0)*3600.0; lcd.setCursor(0, 1); lcd.print("A.prędkość:"); lcd.setCursor(8, 1); lcd.print(szybkość); lcd.print("km/h"); } if(screen== 4){ //wyświetla czas podróży triptime=millis()/60000; lcd.setCursor(0, 1); lcd.print("Czas:"); lcd.setCursor(7, 1); lcd.print(czas podróży); } lcd.setCursor(0, 0); lcd.print("Odległość:"); //obliczenie odległości dyst=impulsy*obwód/1000.00; //wyświetla odległość lcd.setCursor(6, 0); lcd.print(dist); lcd.print("km"); }

Krok 4: Pakowanie

Pakiet
Pakiet
Pakiet
Pakiet
Pakiet
Pakiet

Jako okładkę użyłem plastikowego pudełka, które kupiłem za $1. Wycinam otwory nożem i wiertarką. Serwo i wyświetlacz LCD przykleiłem taśmą, końcówkę zrobiłem z kartonu i pomalowałem farbą. Zrobiłem tarczę w Corel Draw X5 i wydrukowałem ją, dodałem obraz-p.webp

Krok 5: Uruchom to

Uruchom!
Uruchom!
Uruchom!
Uruchom!
Uruchom!
Uruchom!
Uruchom!
Uruchom!

Teraz jest gotowy. Wszystko, co musisz zrobić, to włączyć i jechać. Baw się swoim prędkościomierzem. Jeśli podoba Ci się ten projekt, zagłosuj na mnie.

Zalecana: