Перейти к контенту
ARMYMEN

КУБОХОД по Астрахански)))с белгородскими дырами.

Рекомендованный пост

хорошо буду терзать)))

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

и так , здравствуйте, деяние сие назвать я решил "здравствуй Корея"))))) потому как установил себе турбину от hundai starex от двигателя d4bh и так что пришлось переделать, для начала выл приобретен флянец 28280-42842 выхлопной на 5 болтах, причем флянец корейский пришлось немного доработать а именно сделать воронку длля выхлопной трубы на фрезерном станке, шпильки и растояние между ними одинаковое по этому шпильки просто прекинул. после установки турбины немного мешали трубки маслянного радиатора (просто подогнул как надо) и кулисные рычаги которые крепяться на КПП (тут я просто мнял лишний металл на рычажек и поставил проставку(гаийку 1см) между нижней частью крепления кулисного кронштейна и КПП.позже выложу еще фотографии.

e73ded53ef3c.jpg

418264364a95.jpg

a3ef88dd6b2f.jpg

 

и чуть не забыл пришлось укоротить трубу глушителя на 3см)))

Изменено пользователем ARMYMEN

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

всем здрасте, в продолжении темы о доработке наших кубоходов, решил добавить немного в панель приборов а именно вольтметр и датчик давления турбины(сам датчик пока не куплен но выведен да дисплей) данная схема собрана на базе arduino nano v3, регулятор напряжения на LM 317 (обеспечивает питание платы от борт сети) и модуля напряжения для ардуино все это можно купить на али.

ардуино=150 руб

регулятор=60 руб

модуль напряжения = 60 руб

OLED дисплей = 180 руб

пожалуй самый дорогой в этой конструкции будет датчик турбины его стоимость около 900 руб

 

d0d46f4f4909.jpg
 
390c57f31e15.jpg
  • Like 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

если кого то заинтересует могу скинуть скетч для ардуино IDE (програматор), в дальнейшем собираюсь разместить температуру за бортом, компас, и часы на базе дисплея

d761fffda3b8.jpg
 
установить все это вместо штатных часиков
 

 

Изменено пользователем ARMYMEN

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

интересно) если не сложно, можешь написать название модулей или ссылки на али. И подскажи как программировал ардуино?

 

Было бы не плохо сделать мини бортовой компьютер. Чтоб за температурой двигателя следил и мерзко пищал если она ползет к максимуму. Исходя из скорости и оборотов показывал бы расход топлива. Может даже связь со сматфоном на андроиде. 

Изменено пользователем Alexey24rus

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

интересно) если не сложно, можешь написать название модулей или ссылки на али. И подскажи как программировал ардуино?

 

Было бы не плохо сделать мини бортовой компьютер. Чтоб за температурой двигателя следил и мерзко пищал если она ползет к максимуму. Исходя из скорости и оборотов показывал бы расход топлива. Может даже связь со сматфоном на андроиде. 

1. На пальцах не пояснить )) Проще спеца или любителя найти.

2. Температуры контроль легко на термостате сделать, ничего сложного.  Примерно как я управление электровентилем делал.

3. С расходом нереал, слишком мало данных.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

интересно) если не сложно, можешь написать название модулей или ссылки на али. И подскажи как программировал ардуино?

 

Было бы не плохо сделать мини бортовой компьютер. Чтоб за температурой двигателя следил и мерзко пищал если она ползет к максимуму. Исходя из скорости и оборотов показывал бы расход топлива. Может даже связь со сматфоном на андроиде. 

 I2C IIC Серийный 128X64 OLED LCD LED Дисплей Модуль  LM317 DC-DC преобразователь постоянного тока - в роли понижающего с 12в на 5 в

     модуль напряжения для ардуино https://www.aliexpress.com/item-img/Voltage-detection-module-Voltage-sensor-Electronic-blocks-For-arduino/32764626535.html?spm=2114.10010208.1000017.2.Q3VjoY

#include <OLED_I2C.h>
OLED  myOLED(SDA, SCL, 8);
extern uint8_t RusFont[];
extern uint8_t TinyFont[];
const float R1 = 30020;
const float R2 = 7501;
const float Uref = 4.75;//вот с этим числом нужно поиграться для установки более точных показаний
 
int sensorPin = 0;
float sensorValue = 0;
float outputValue = 0;
 
float Uin = Uref * ((R1+R2)/R2);
 
void setup()
{
  myOLED.begin();
  myOLED.setFont(TinyFont);  
  Serial.begin(9600);
}
void loop()
{
  sensorValue = analogRead(sensorPin);
  outputValue = (sensorValue * Uin) / 1024.00;
  myOLED.clrScr();
  myOLED.print(String(outputValue), CENTER,20);
  myOLED.setFont(RusFont);
  myOLED.print("LTKBRF RE,BR", CENTER, 0);  
  myOLED.print("<JHNJDJT YFGHZ:TYBT =", LEFT,10);
  myOLED.print("NEH<BYF =", LEFT,30);  
  myOLED.update();
  delay (500);
  }

открываете arduino ide копируете скетч и подключаете все к arduino nano, в сети очень много примеров и объяснений что и куда

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

нашел вариант более дешевого датчика давления турбины стоимость в р не 500 руб

https://ae01.alicdn.com/kf/HTB1qyHUOpXXXXXtXFXXq6xXFXXXu/MEMS-pressure-sensor-chip-package-20KPa-pneumatic-pressure.jpg_50x50.jpg

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

нашел вариант более дешевого датчика давления турбины стоимость в р не 500 руб

https://ae01.alicdn.com/kf/HTB1qyHUOpXXXXXtXFXXq6xXFXXXu/MEMS-pressure-sensor-chip-package-20KPa-pneumatic-pressure.jpg_50x50.jpg

Это что за фотка? Что-бы ни кто не догадался?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за информацию) Будет время тоже займусь) только экран хочу слева от руля, где часы в панели должны быть.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за информацию) Будет время тоже займусь) только экран хочу слева от руля, где часы в панели должны быть.

не за что, это там часы где типа квадратик недовыдавленный? я хочу туды компас вкрячить

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

И снова всем здрасте в продолжении темы, закончил работу с часами для кубоходика

-индикация даты

-индикация времени

-индикация температуры за бортом(или еще где нибудь, смотря куда установите датчик)

2d4a91597b51.jpg

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Следим за вашими успехами!

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

кнопкой SET переключение между датой и временем

основной код взять отсюда, там же видео о работе таких часов, подключение и состав модулей, единственное что я добавил это температуру

http://lesson.iarduino.ru/page/urok-17-podklyuchenie-rtc-chasy-realnogo-vremeni-s-knopkami/

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

c84480093bfd.jpg

вот так выглядит датчик температуры
Изменено пользователем ARMYMEN

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

// Подключаем библиотеки:

#include <OneWire.h>

#include <Wire.h>;                            // подключаем библиотеку для работы с шиной I2C

#include <LiquidCrystal_I2C.h>;               // подключаем библиотеку для работы с LCD дисплеем

#include <iarduino_RTC.h>;                  // подключаем библиотеку для работы с RTC модулем

LiquidCrystal_I2C lcd(0x3F,16,2);            // объявляем  переменную для работы с LCD дисплеем, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2)

iarduino_RTC time(RTC_DS1307);               // объявляем  переменную для работы с RTC модулем,  указывая название модуля

 

OneWire  ds(10);  // on pin 10

 

// Объявляем переменные и константы:

const uint8_t PIN_button_SET  = 2;           // указываем номер вывода arduino, к которому подключена кнопка SET

const uint8_t PIN_button_UP   = 3;           // указываем номер вывода arduino, к которому подключена кнопка UP

const uint8_t PIN_button_DOWN = 4;           // указываем номер вывода arduino, к которому подключена кнопка DOWN

      uint8_t VAR_mode_SHOW   = 1;           // режим вывода: 1-время 2-дата

      uint8_t VAR_mode_SET    = 0;           // режим установки времени: 0-нет 1-сек 2-мин 3-час 4-день 5-мес 6-год 7-день_недели

void setup() {

  pinMode(PIN_button_SET,  INPUT);           // устанавливаем режим работы вывода кнопки, как "вход"

  pinMode(PIN_button_UP,   INPUT);           // устанавливаем режим работы вывода кнопки, как "вход"

  pinMode(PIN_button_DOWN, INPUT);           // устанавливаем режим работы вывода кнопки, как "вход"

  delay(300);                                // ждем 300мс

  time.begin();                              // инициируем RTC модуль

  lcd.init();                                // инициируем LCD дисплей

  lcd.backlight();                           // включаем подсветку LCD дисплея

  Serial.begin(9600);

}

void loop(){

  if(millis()%1000==0){                      // если прошла 1 секунда

      lcd.setCursor(0, 0);                   // устанавливаем курсор в позицию: столбец 0, строка 0

      lcd.print("DELICA  t");              // выводим текст "iArduino.ru"

      lcd.setCursor(0, 1);                   // устанавливаем курсор в позицию: столбец 0, строка 1

    if(VAR_mode_SHOW==1){                    // если установлен режим вывода времени

      lcd.print(time.gettime("H:i:s"));      // выводим время

    }

    if(VAR_mode_SHOW==2){                    // если установлен режим вывода даты

      lcd.print(time.gettime("d-m-Y   D"));  // выводим дату

    }

    delay(1);                                // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс

 // temperature sensor

  

  byte i;

  byte present = 0;

  byte type_s;

  byte data[12];

  byte addr[8];

  float celsius, fahrenheit;

  

  if ( !ds.search(addr)) {

    Serial.println("No more addresses.");

    Serial.println();

    ds.reset_search();

    delay(250);

    return;

  }

  

  Serial.print("ROM =");

  for( i = 0; i < 8; i++) {

    Serial.write(' ');

    Serial.print(addr, HEX);

  }

 

  if (OneWire::crc8(addr, 7) != addr[7]) {

      Serial.println("CRC is not valid!");

      return;

  }

  Serial.println();

 

  // the first ROM byte indicates which chip

  switch (addr[0]) {

    case 0x10:

      Serial.println("  Chip = DS18S20");  // or old DS1820

      type_s = 1;

      break;

    case 0x28:

      Serial.println("  Chip = DS18B20");

      type_s = 0;

      break;

    case 0x22:

      Serial.println("  Chip = DS1822");

      type_s = 0;

      break;

    default:

      Serial.println("Device is not a DS18x20 family device.");

      return;

  } 

 

  ds.reset();

  ds.select(addr);

  ds.write(0x44,1);         // start conversion, with parasite power on at the end

  

  delay(1000);     // maybe 750ms is enough, maybe not

  // we might do a ds.depower() here, but the reset will take care of it.

  

  present = ds.reset();

  ds.select(addr);    

  ds.write(0xBE);         // Read Scratchpad

 

  Serial.print("  Data = ");

  Serial.print(present,HEX);

  Serial.print(" ");

  for ( i = 0; i < 9; i++) {           // we need 9 bytes

    data = ds.read();

    Serial.print(data, HEX);

    Serial.print(" ");

  }

  Serial.print(" CRC=");

  Serial.print(OneWire::crc8(data, 8), HEX);

  Serial.println();

 

  // convert the data to actual temperature

 

  unsigned int raw = (data[1] << 8) | data[0];

  if (type_s) {

    raw = raw << 3; // 9 bit resolution default

    if (data[7] == 0x10) {

      // count remain gives full 12 bit resolution

      raw = (raw & 0xFFF0) + 12 - data[6];

    }

  } else {

    byte cfg = (data[4] & 0x60);

    if (cfg == 0x00) raw = raw << 3;  // 9 bit resolution, 93.75 ms

    else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms

    else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms

    // default is 12 bit resolution, 750 ms conversion time

  }

  celsius = (float)raw / 16.0;

  fahrenheit = celsius * 1.8 + 32.0;

  //Serial.print("  Temperature = ");

  //Serial.print(celsius);

  //Serial.print(" Celsius, ");

  //lcd.init();                      // initialize the lcd 

 // lcd.init();

  // Print a message to the LCD.

 // lcd.backlight();

  lcd.setCursor(10,0);

  lcd.print(celsius);

 

  }

  

  

  

  Func_buttons_control();                    // передаём управление кнопкам

}

// Функция управления кнопками:

void Func_buttons_control(){

  uint8_t i=0;

  time.blinktime(VAR_mode_SET);                                  // мигаем устанавливаемым параметром (если VAR_mode_SET больше 0)

//Если часы находятся в режиме установки даты/времени

  if(VAR_mode_SET){

//  Если нажата кнопка UP

    if(digitalRead(PIN_button_UP  )){

      while(digitalRead(PIN_button_UP)){delay(50);}              // ждём пока мы не отпустим кнопку UP

      switch (VAR_mode_SET){                                     // инкремент (увеличение) устанавливаемого значения

      /* сек */ case 1: time.settime(0,                                   -1, -1, -1, -1, -1, -1); break;

      /* мин */ case 2: time.settime(-1, (time.minutes==59?0:time.minutes+1), -1, -1, -1, -1, -1); break;

      /* час */ case 3: time.settime(-1, -1, (time.Hours==23?0:time.Hours+1),     -1, -1, -1, -1); break;

      /* дни */ case 4: time.settime(-1, -1, -1, (time.day==31?1:time.day+1),         -1, -1, -1); break;

      /* мес */ case 5: time.settime(-1, -1, -1, -1, (time.month==12?1:time.month+1),     -1, -1); break;

      /* год */ case 6: time.settime(-1, -1, -1, -1, -1, (time.year==99?0:time.year+1),       -1); break;

      /* д.н.*/ case 7: time.settime(-1, -1, -1, -1, -1, -1, (time.weekday==6?0:time.weekday+1) ); break;

      }

    }

//  Если нажата кнопка DOWN

    if(digitalRead(PIN_button_DOWN)){

      while(digitalRead(PIN_button_DOWN)){delay(50);}            // ждём пока мы её не отпустим

      switch (VAR_mode_SET){                                     // декремент (уменьшение) устанавливаемого значения

      /* сек */ case 1: time.settime(0,                                   -1, -1, -1, -1, -1, -1); break;

      /* мин */ case 2: time.settime(-1, (time.minutes==0?59:time.minutes-1), -1, -1, -1, -1, -1); break;

      /* час */ case 3: time.settime(-1, -1, (time.Hours==0?23:time.Hours-1),     -1, -1, -1, -1); break;

      /* дни */ case 4: time.settime(-1, -1, -1, (time.day==1?31:time.day-1),         -1, -1, -1); break;

      /* мес */ case 5: time.settime(-1, -1, -1, -1, (time.month==1?12:time.month-1),     -1, -1); break;

      /* год */ case 6: time.settime(-1, -1, -1, -1, -1, (time.year==0?99:time.year-1),       -1); break;

      /* д.н.*/ case 7: time.settime(-1, -1, -1, -1, -1, -1, (time.weekday==0?6:time.weekday-1) ); break;

      }

    }

//  Если нажата кнопка SET

    if(digitalRead(PIN_button_SET)){

      while(digitalRead(PIN_button_SET)){                        // ждём пока мы её не отпустим

        delay(10);

        if(i<200){i++;}else{lcd.clear();}                        // фиксируем, как долго удерживается кнопка SET, если дольше 2 секунд, то стираем экран

      }

      if(i<200){                                                 // если кнопка SET удерживалась меньше 2 секунд

        VAR_mode_SET++;                                          // переходим к следующему устанавливаемому параметру

        if(VAR_mode_SHOW==1 && VAR_mode_SET>3){VAR_mode_SET=1;}  // возвращаемся к первому устанавливаемому параметру

        if(VAR_mode_SHOW==2 && VAR_mode_SET>7){VAR_mode_SET=4;}  // возвращаемся к первому устанавливаемому параметру

      }else{                                                     // если кнопка SET удерживалась дольше 2 секунд, то требуется выйти из режима установки даты/времени

        VAR_mode_SET=0;                                          // выходим из режима установки даты/времени

      }

    }

//Если часы находятся в режиме вывода даты/времени

  }else{

//  Если нажата кнопка SET

    if(digitalRead(PIN_button_SET)){

      while(digitalRead(PIN_button_SET)){delay(10);              // ждём пока мы её не отпустим

        if(i<200){i++;}else{lcd.clear();}                        // фиксируем, как долго удерживается кнопка SET, если дольше 2 секунд, то стираем экран

      }

      if(i<200){                                                 // если кнопка SET удерживалась меньше 2 секунд

        lcd.clear();                                             // стираем экран

        VAR_mode_SHOW=VAR_mode_SHOW==1?2:1;                      // меняем режим вывода: дата/время

      }else{                                                     // если 

        if(VAR_mode_SHOW==1){VAR_mode_SET=1;}                    // если установлен режим вывода времени, то устанавливаемый параметр - секунды

        if(VAR_mode_SHOW==2){VAR_mode_SET=4;}                    // если установлен режим вывода даты,    то устанавливаемый параметр - день

      }

    }

  }

}

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну что же, с часами закончил теперь осталось установить их и блок реле для управлением запуском автомобиля через WIFI с помощью ANDROID приложения483f7e1b0b86.jpg

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

управление производится с помощью платы NODEmcu и подключенному к нему блоку из 4 реле, ну обязательно понижайка с 12в до 5в, еще нужно придумать как и куда установить серводвигатель для управлением тросом газа для поднятия оборотов до прогретого состояния

8df0f7e33f1bt.jpg

 

 

ссылка на код для ардуино https://drive.google.com/open?id=0B33mmVhClN4pbGhCSDZTaEFZSFk

Изменено пользователем ARMYMEN
  • Like 1

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

×