Перейти к содержанию

ARMYMEN

Members
  • Постов

    181
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

ARMYMEN стал победителем дня 21 октября 2013

ARMYMEN имел наиболее популярный контент!

4 Подписчика

Старые поля

  • Автомобиль
    DELICA кубик
  • Место жительства
    Астрахань

Посетители профиля

3 638 просмотров профиля

Достижения ARMYMEN

Newbie

Newbie (1/14)

7

Репутация

  1. управление производится с помощью платы NODEmcu и подключенному к нему блоку из 4 реле, ну обязательно понижайка с 12в до 5в, еще нужно придумать как и куда установить серводвигатель для управлением тросом газа для поднятия оборотов до прогретого состояния ссылка на код для ардуино https://drive.google.com/open?id=0B33mmVhClN4pbGhCSDZTaEFZSFk
  2. ну что же, с часами закончил теперь осталось установить их и блок реле для управлением запуском автомобиля через WIFI с помощью ANDROID приложения
  3. // Подключаем библиотеки: #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;} // если установлен режим вывода даты, то устанавливаемый параметр - день } } } }
  4. кнопкой SET переключение между датой и временем основной код взять отсюда, там же видео о работе таких часов, подключение и состав модулей, единственное что я добавил это температуру http://lesson.iarduino.ru/page/urok-17-podklyuchenie-rtc-chasy-realnogo-vremeni-s-knopkami/
  5. И снова всем здрасте в продолжении темы, закончил работу с часами для кубоходика -индикация даты -индикация времени -индикация температуры за бортом(или еще где нибудь, смотря куда установите датчик)
  6. не за что, это там часы где типа квадратик недовыдавленный? я хочу туды компас вкрячить
  7. странно MEMS датчик давления чип пакет 20KPa пневматическое давление купить на AliExpress https://ru.aliexpress.com/item/MEMS-pressure-sensor-chip-package-20KPa-pneumatic-pressure/32420250773.html?spm=2114.30010708.3.229.IxF119&ws_ab_test=searchweb0_0,searchweb201602_1_10065_10068_10501_10000074_10503_10000032_119_10000025_10000029_10000028_10060_10000067_10062_10056_10055_10000062_10054_10059_10099_10000022_10000013_10103_10102_10000016_10096_10000019_10000056_10000059_10052_10053_10107_10050_10106_10051_10000053_10000007_10000050_10117_10084_10083_10000047_10080_10082_10081_10110_10111_10112_10113_10114_10115_10000041_10000044_10078_10079_10000038_10073_10000035_10122_10121-10503_10501,searchweb201603_1,afswitch_3_afChannel,single_sort_2_default&btsid=8dd13014-c9ad-44f2-a97d-6a88a6bf28ff
  8. нашел вариант более дешевого датчика давления турбины стоимость в р не 500 руб https://ae01.alicdn.com/kf/HTB1qyHUOpXXXXXtXFXXq6xXFXXXu/MEMS-pressure-sensor-chip-package-20KPa-pneumatic-pressure.jpg_50x50.jpg
  9. 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, в сети очень много примеров и объяснений что и куда
  10. если кого то заинтересует могу скинуть скетч для ардуино IDE (програматор), в дальнейшем собираюсь разместить температуру за бортом, компас, и часы на базе дисплея установить все это вместо штатных часиков
  11. всем здрасте, в продолжении темы о доработке наших кубоходов, решил добавить немного в панель приборов а именно вольтметр и датчик давления турбины(сам датчик пока не куплен но выведен да дисплей) данная схема собрана на базе arduino nano v3, регулятор напряжения на LM 317 (обеспечивает питание платы от борт сети) и модуля напряжения для ардуино все это можно купить на али. ардуино=150 руб регулятор=60 руб модуль напряжения = 60 руб OLED дисплей = 180 руб пожалуй самый дорогой в этой конструкции будет датчик турбины его стоимость около 900 руб
  12. кароч по ним тоже промах, хотя я 555 просто переварил наконечник в другую с торону и проехал более 2000 тыс, полет нормальный, купил тяги рулевые от галлопера в сборе встали как родненкие у нас есть ремкомплекты чтобы редуктор рулевой перетрусить?
  13. кароч такая же беда с трубкой,4 на..... оторвалась пришлось 300 км ехать на 3 через 3 горных перевала
×
×
  • Создать...