Мазмуну:

DIY Bike Tachometer: 5 кадам (Сүрөттөр менен)
DIY Bike Tachometer: 5 кадам (Сүрөттөр менен)

Video: DIY Bike Tachometer: 5 кадам (Сүрөттөр менен)

Video: DIY Bike Tachometer: 5 кадам (Сүрөттөр менен)
Video: 5 КОРКУНУЧТУУ ЛАЙФХАК №2 2024, Ноябрь
Anonim
Image
Image
DIY Bike Tachometer
DIY Bike Tachometer

Мен сизге велосипед спидометрин кантип курууну көрсөтөм. Бул сиздин ылдамдыгыңызды, орточо ылдамдыгыңызды, температураңызды, сапар убактыңызды жана жалпы аралыкты көрсөтөт. Сиз аны баскычты колдонуп өзгөртө аласыз. Мындан тышкары, ылдамдык тахометрде көрсөтүлөт. Мен муну курдум, анткени мен жаңы нерселерди курууну жакшы көрөм, мен интернеттен андай нерсени тапкан жокмун, ошондуктан мен сизге велосипеддеги мен каалагандай салкын болбогондой жакшы спидометрди кантип курууну көрсөткүм келет:). Ошентип, баштайлы.

1 -кадам: Бөлүктөр:

Бөлүктөр
Бөлүктөр

Бул сизге керектүү бөлүктөрдүн тизмеси. Алар мага 40 доллардын тегерегинде чыгышты:

  • Arduino
  • Камыш которгуч менен велосипед
  • ЖК дисплей 16х2
  • Servo
  • Breadboard
  • Термометр DS18B20
  • Резистор 1.2k 4., 4.7k Ω
  • Которуу
  • Button
  • Потенциометр 10 кОм
  • 9В батарея
  • Кабелдер
  • Box
  • Куралдар (бургулоо, ширетүү, бычак, скотч)

2 -кадам: Туташуу

Байланыш
Байланыш
Байланыш
Байланыш
Байланыш
Байланыш
Байланыш
Байланыш

Мен Фритзингден сүрөттү коштум жана аны кантип туташтыруу керектигин оозеки сүрөттөмө. Сүрөттө бардык кызыл зымдар 5Вга, бардык көк кабелдер GNDге туташкан.

ЖК дисплей:

VSS GND Arduino

VDP 5V Arduino

VO чыгаруу потенциометри (потенциометр VCC -> 5V Arduino, потенциометр GND -> Arduino GND).

RS pin 12 Arduino

RW GND Arduino

E pin 11 Arduino

D4 пин 5 Arduino

D5 pin 4 Arduino

D6 pin 3 Arduino

D7 pin 2 Arduino

5V Arduino

K GND Arduino

Кызмат:

VCC 5V Arduino

массалык GND Arduino

Маалымат пин 6 Arduino

Термометр:

VCC 5V Arduino

массалык GND Arduino

Маалымат пин 1 Arduino

маалымат жана күч 4.7 к -резистор аркылуу туташат

Дөңгөлөктөгү сенсор:

бир учу -> 5V Arduino

экинчи учу -> A0 Arduino жана каршылыгы 1, 2 кОм

Резистордун экинчи учу Ардуинодо жерге түшөт

Баскыч:

бир учу 5V Arduino

экинчи учу A1 Arduino

3 -кадам: Кодду жүктөө:

Төмөндө мен комментарийге кодду коштум, түшүндүрмөсү бар.

жүктөө китепканаларына шилтемелер:

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

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

Эгер дөңгөлөктүн диаметри башка болсо, аны алмаштырышыңыз керек. Сиз бул формула менен эсептей аласыз:

схема = π*d*2, 54 (d = дөңгөлөгүңүздүн диаметри, мен жыйынтыкты метрге жеткирүү үчүн аны 2.54кө көбөйттүм).

/*

#################################################### Copyright by Nikodem Bartnik June 2014 ############################################## ###### */// китепканалар #кошуу #кошуу #кошуу #кошуу #аныктоо ONE_WIRE_BUS 1 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature сенсорлору (& oneWire); // ЖК дисплей казыктары LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // servo name Servo myservo; // өзгөрмөлөрдү мурунтан эле аныктоо, уч убактысы, убакыт, импульстар; сүзүүчү ылдамдык көрсөткүчү, дистрибут, умтулган; int servo; int экран = 1; // Эгерде сизде дөңгөлөктүн башка схемасы болсо, аны өзгөртүү керек калкыма схемасы = 2.0; эки эсе температура; void setup () {lcd.begin (16, 2);

pinMode (A0, INPUT); pinMode (A1, INPUT); // servo аныктоо жана тахометрди 0 myservo.attach (6) деп коюу; myservo.write (180); lcd.print ("Велосипед тахометр"); кечигүү (1000); lcd.setCursor (5, 1); lcd.print ("V 1.0"); кечигүү (4000); lcd.clear (); кечигүү (500); lcd.setCursor (0, 0); lcd.print ("Dist:"); } void loop () {// if дөңгөлөк айланса if (analogRead (A0)> = 300) {// бурулуш саны ++ импульс ++; // эсептөө убактысынын убактысы = (миллис ()-мурунку); // ылдамдыкты эсептегич = (схема /убакыт)*3600.0; мурунку = миллис (); Тахометр (); кечиктирүү (100); } Lcd (); } // тахометрде дисплейдин ылдамдыгы жок Тахометр () {// картанын ылдамдыгы 0-180ден servo спидометрге = int (спидометр); servo = карта (спидометр, 0, 72, 180, 0); // servo myservo.write орнотуу (servo); } void Lcd () {// баскычы басылганда, эгер (analogRead (A1)> = 1010) {lcd.clear (); экран ++; if (экран == 5) {экран = 1; }} if (экран == 1) {// ылдамдыгын көрсөтөт lcd.setCursor (0, 1); lcd.print ("Ылдамдык:"); lcd.setCursor (7, 1); lcd.print (спидометр); lcd.print ("км/с"); } if (экран == 2) {// температуранын температурасын көрсөтөт = sensors.getTempCByIndex (0); sensors.requestTemperatures (); lcd.setCursor (0, 1); lcd.print ("Temp:"); lcd.setCursor (7, 1); lcd.print (температура); lcd.print ("C"); } if (screen == 3) {// averagr speed aspeed = dist/(millis ()/1000.0)*3600.0; lcd.setCursor (0, 1); lcd.print ("A. ылдамдык:"); lcd.setCursor (8, 1); lcd.print (aspeed); lcd.print ("км/с"); } if (screen == 4) {// diplays trip time triptime = millis ()/60000; lcd.setCursor (0, 1); lcd.print ("Убакыт:"); lcd.setCursor (7, 1); lcd.print (уч убактысы); } lcd.setCursor (0, 0); lcd.print ("Dist:"); // аралыкты эсептөө = импульстар*схемасы/1000.00; // аралыкты көрсөтөт lcd.setCursor (6, 0); lcd.print (dist); lcd.print ("км"); }

4 -кадам: Пакет

Пак
Пак
Пак
Пак
Пак
Пак

Капкак катары мен 1 долларга сатып алган пластик кутучаны колдондум. Бычак менен бургулоочу тешиктерди кесип алдым. Серво жана ЖК дисплейи мен скотч менен чаптадым, учу мен картон менен жасап, аны боек менен боёп алдым. Мен Corel Draw X5те калкан кылдым, мен аны басып чыгардым,-p.webp

5 -кадам: Аны иштет

Run It!
Run It!
Run It!
Run It!
Run It!
Run It!
Run It!
Run It!

Азыр ал даяр. Болгону аны күйгүзүп, минүү керек. Спидометр менен көңүл ачыңыз. Эгер сизге бул долбоор жакса, мага добуш бериңиз.

Сунушталууда: