ARMYMEN
-
Постов
181 -
Зарегистрирован
-
Посещение
-
Победитель дней
2
Тип контента
Профили
Форумы
События
Сообщения, опубликованные 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, к которому подключена кнопка SETconst uint8_t PIN_button_UP = 3; // указываем номер вывода arduino, к которому подключена кнопка UPconst uint8_t PIN_button_DOWN = 4; // указываем номер вывода arduino, к которому подключена кнопка DOWNuint8_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, строка 0lcd.print("DELICA t"); // выводим текст "iArduino.ru"lcd.setCursor(0, 1); // устанавливаем курсор в позицию: столбец 0, строка 1if(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 sensorbyte 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 chipswitch (addr[0]) {case 0x10:Serial.println(" Chip = DS18S20"); // or old DS1820type_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 enddelay(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 ScratchpadSerial.print(" Data = ");Serial.print(present,HEX);Serial.print(" ");for ( i = 0; i < 9; i++) { // we need 9 bytesdata = 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 temperatureunsigned int raw = (data[1] << 8) | data[0];if (type_s) {raw = raw << 3; // 9 bit resolution defaultif (data[7] == 0x10) {// count remain gives full 12 bit resolutionraw = (raw & 0xFFF0) + 12 - data[6];}} else {byte cfg = (data[4] & 0x60);if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 mselse if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 mselse 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){// Если нажата кнопка UPif(digitalRead(PIN_button_UP )){while(digitalRead(PIN_button_UP)){delay(50);} // ждём пока мы не отпустим кнопку UPswitch (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;}}// Если нажата кнопка DOWNif(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;}}// Если нажата кнопка SETif(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{// Если нажата кнопка SETif(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;} // если установлен режим вывода даты, то устанавливаемый параметр - день}}}}
-
-
кнопкой SET переключение между датой и временем
основной код взять отсюда, там же видео о работе таких часов, подключение и состав модулей, единственное что я добавил это температуру
http://lesson.iarduino.ru/page/urok-17-podklyuchenie-rtc-chasy-realnogo-vremeni-s-knopkami/
-
-
Спасибо за информацию) Будет время тоже займусь) только экран хочу слева от руля, где часы в панели должны быть.
не за что, это там часы где типа квадратик недовыдавленный? я хочу туды компас вкрячить
-
Это что за фотка? Что-бы ни кто не догадался?
странно
MEMS датчик давления чип пакет 20KPa пневматическое давление купить на AliExpress -
нашел вариант более дешевого датчика давления турбины стоимость в р не 500 руб
-
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, в сети очень много примеров и объяснений что и куда
-
-
всем здрасте, в продолжении темы о доработке наших кубоходов, решил добавить немного в панель приборов а именно вольтметр и датчик давления турбины(сам датчик пока не куплен но выведен да дисплей) данная схема собрана на базе arduino nano v3, регулятор напряжения на LM 317 (обеспечивает питание платы от борт сети) и модуля напряжения для ардуино все это можно купить на али.
ардуино=150 руб
регулятор=60 руб
модуль напряжения = 60 руб
OLED дисплей = 180 руб
пожалуй самый дорогой в этой конструкции будет датчик турбины его стоимость около 900 руб
- 1
-
кажется меня не поняли, у меня износ в этой части рулевой, оригинал дорогой вот размышляю о колхозе.сошки заменить, износ в бронзовой части кронштейна.
в общем, так, ни у кого варианта посмотреть воочию данную зап часть нет, значить придется покупать вслепую. А по поводу точить, это конечно можно, но я сейчас живу в такой местности где токаря днем с огнем не найдешь, а в отпуске вряд ли найдется время на это. так что придется быть первоокрывтелем. я попутно заказал еще пару запчастей.
555 SD-7260,
CAR-DEX CAH801
кароч по ним тоже промах, хотя я 555 просто переварил наконечник в другую с торону и проехал более 2000 тыс, полет нормальный, купил тяги рулевые от галлопера в сборе встали как родненкие
у нас есть ремкомплекты чтобы редуктор рулевой перетрусить?
-
кубоход теперь живет в Астраханской области! сам проехал 1300км, из поломок трубка тнвд 4я лопнула, поставил в дороге от опеля, и 3 раза лопнул шланг(шланги) охолождайки! первые 300 км - 70км\ч, больше - грелась, потом больше, больше.. с Волгограда шел почти 110 - темература была 104градуса! расход 10 литров стабильно! пока не чего не собирал и не делал... с инетом тут туго, но постараюсь отправлять!
кароч такая же беда с трубкой,4 на..... оторвалась пришлось 300 км ехать на 3 через 3 горных перевала
-
как вам новый кубик,
???правда на филипинах
осталось добыть каталог с запчастями и заказывать.......заказывать)))))
-
Всем здарова! Есть тут одна мысля, оборудовать наши машинки борт компьютером, устроить его на базе Arduino и тому подобное, вывести индикацию на дисплей 4 строчный LCD или OLED дисплей, снимать показания буста турбины , показания заряда, показания темпрературы ож, давления масла например, если кто-то работал в этой среде и знает язык C++ или просто эта тема оч интересна пишите в личку или если хотите создадим тему отдельно, данное борт устройство подойдет для всех
-
спасибо, оч пригодится
-
в общем, так, ни у кого варианта посмотреть воочию данную зап часть нет, значить придется покупать вслепую. А по поводу точить, это конечно можно, но я сейчас живу в такой местности где токаря днем с огнем не найдешь, а в отпуске вряд ли найдется время на это. так что придется быть первоокрывтелем. я попутно заказал еще пару запчастей.
555 SD-7260,
CAR-DEX CAH801
-
дык я про то что вал как раз по диаметру надеюсь такой же, просто взять вал старый свой и воткнуть в новую VTR
-
кажется меня не поняли, у меня износ в этой части рулевой, оригинал дорогой вот размышляю о колхозе.сошки заменить, износ в бронзовой части кронштейна.
-
всем привет, есть мысль, а что если приобристи вот это VTR
воткнуть вал с нашей рулевой?уж ооочень похожа ,
-
да нерасстрайвайся так, прям уж и осела))) зеленая как в сказке про царевну лягушку)))
-
добро, я ее кажется в авито видел.
-
Сегодня по трассе разогнал до 115км.ч кубика на 5-й передаче по ровной дороге... маловато для 2л движка.. хз мож парусность не дает.. кто сколько по ровной дороге едет на бензине? Кстати сделал первую вылазку 600км общей протяженностью.. все отлично на трассе идет уверено не кидает.. иногда небольшая раскачка но без напряга мне даже нравится как на рейсовом автобусе)
а меня вот раскачка ооооочень напрегала, после 1000км ходишь как после поезда 3-х суточного, отсюда возникает вопрос как с ней бороться потому что по дорогам крыма это было очень выражено+ боковой ветер, у тебя задний стабилизатор стоит? какие аммо ?у меня exel-g KYB говорят мягкие.
КУБОХОД по Астрахански)))с белгородскими дырами.
в Delica L030 - L038
Опубликовано · Изменено пользователем ARMYMEN
управление производится с помощью платы NODEmcu и подключенному к нему блоку из 4 реле, ну обязательно понижайка с 12в до 5в, еще нужно придумать как и куда установить серводвигатель для управлением тросом газа для поднятия оборотов до прогретого состояния
ссылка на код для ардуино https://drive.google.com/open?id=0B33mmVhClN4pbGhCSDZTaEFZSFk