FX4000_1 | Дата: Понедельник, 16.11.2020, 00:59 | Сообщение # 76 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| Привет моделисты. Заканчиваю работу над консолью крыла. Смонтировал основную подсветку и установил двигатели. На неделе всё протестирую и покажу на видео))




Работает - НЕ ТРОЖЬ
|
|
|
|
FX4000_1 | Дата: Понедельник, 16.11.2020, 17:21 | Сообщение # 77 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| Привет моделисты!
Долго ли скоро ли наконец закончил консоль крыла. Примерил двигатели. Всё работает идеально. Скоро выложу видео тестирования. Все косяки и недочёты исправлю в ходе сборки:


Работает - НЕ ТРОЖЬ
|
|
|
|
FX4000_1 | Дата: Пятница, 20.11.2020, 17:33 | Сообщение # 78 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| Привет моделисты! Вот вам ламповый свет в кабинах. Что скажете? Или сделать красноватый оттенок????
Работает - НЕ ТРОЖЬ
|
|
|
|
FX4000_1 | Дата: Воскресенье, 22.11.2020, 07:38 | Сообщение # 79 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| Привет моделисты!
Наконец-то довели мы до ума подсветку самолёта. Это не окончательный вариант. Работа над самолётом кипит.
Ознакомьтесь с видео жду предложений как лучше можно сделать: https://youtu.be/N_KU8gQk_bU
Напоминаю, что программа управляется на базе микрокомпьютера Arduino.
Работает - НЕ ТРОЖЬ
Сообщение отредактировал FX4000_1 - Воскресенье, 22.11.2020, 07:46 |
|
|
|
FX4000_1 | Дата: Вторник, 24.11.2020, 14:46 | Сообщение # 80 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| Привет моделисты!
Итак. Практически полностью дописали скетч для работы всех устройств. Выкладываю его сюда если вдруг кто захочет сделать подобное  Копируйте от слов //РАСПИНОВКА до символа }.
Заливайте в программу Arduino IDE: https://www.arduino.cc/en/software
Драйвер для микросхем Arduino: https://iarduino.ru/file/230.html
// РАСПИНОВКА ВЫВОДОВ АРДУИНО:
// пояснения: { номер цифровой ноги, время свечения, время выключенного, время начала отсчёта, включена ли сейчас } int posad[] = { 4, 1000, 0, 0, 0 ,0 }; int dnische[] = { 2, 450, 1500, 0, 0 ,0 }; int hvost[] = { 11, 100, 900, 0, 0 ,0 }; long krilya[] = { A0, 10000, 0, 0, 0 ,0 }; // пояснения: { номер цифровой ноги, время свечения, время выключенного, время начала отсчёта, горит ли при включении }
// пояснения: номер ноги кнопки номер режима при включении служебное число int knopka1[] = { 7 , 1, 0 }; int knopka2[] = { 8 , 1, 0 }; int knopka3[] = { 9 , 1, 0 }; int knopka4[] = { 10, 1, 0 };
// АДРЕСНЫЕ СВЕТОДИОДЫ: #define led_pin 13
// пояснения номер ноги скорость float motor_a[] = { 5, 0 }; float motor_b[] = { 6, 0 };
// ОКОНЧАНИЕ РАСПИНОВКИ
#include "FastLED.h" // библиотека для работы с адресной лентой
#define LED_COUNT 3 // число светодиодов в ленте #define SkorostRaskrutki 0.3
int max_bright = 32; // максимальная яркость (0 - 255) int new_bright; struct CRGB leds[LED_COUNT]; int i;
int MotorMode = 0 ; int AdresMode = 0 ; int LightMode = 0 ;
void setup() { Serial.begin(9600); pinMode( posad[0] , OUTPUT); pinMode( dnische[0], OUTPUT); pinMode( hvost[0], OUTPUT); pinMode( krilya[0], OUTPUT);
pinMode( knopka1[0] , INPUT); pinMode( knopka2[0], INPUT); pinMode( knopka3[0] , INPUT); pinMode( knopka4[0], INPUT);
pinMode( motor_a[0], OUTPUT); pinMode( motor_b[0], OUTPUT);
LEDS.addLeds<WS2811, led_pin, GRB>(leds, LED_COUNT); // настрйоки для нашей ленты (ленты на WS2811, WS2812, WS2812B) LEDS.setBrightness(max_bright); // ограничить максимальную яркость LEDS.show(); // отослать команду
}
void loop() {
Serial.println();
// Переключение кабин: if (digitalRead(knopka1[0])==1) { while (digitalRead(knopka1[0])==1) {delay(1);}; AdresMode++; };
if (AdresMode>3) {AdresMode=0;};
if ((AdresMode==1) or (AdresMode==2)) { leds[0] = CRGB(255,0,15); } else { leds[0] = CRGB(0,0,0); };
if ((AdresMode==2) or (AdresMode==3)) { leds[1] = CRGB(255,0,15); } else { leds[1] = CRGB(0,0,0); };
LEDS.show(); // отослать команду
// Переключение Освещения : if (digitalRead(knopka2[0])==1) { while (digitalRead(knopka2[0])==1) {delay(10);}; LightMode++; }; if (LightMode>2) {LightMode=0;}; if (LightMode==0) // Всё отключено { posad[4] = 0; dnische[4] = 0; hvost[4] = 0; krilya[4] = 0; }
if (LightMode==1) // Включены только посадочные { posad[4] = 1; dnische[4] = 0; hvost[4] = 0; krilya[4] = 0; }
if (LightMode==2) // Включено всё { posad[4] = 1; dnische[4] = 1; hvost[4] = 1; krilya[4] = 1; }
if (posad[4]>0) { digitalWrite( posad[0] , HIGH); // включаем светодиод } else { digitalWrite( posad[0] , LOW); // выключаем светодиод };
// Кнопка 3 - управление раскруткой моторов
if ((digitalRead(knopka3[0])==1 ) and (MotorMode==0) ) { MotorMode=1; };
if ( (MotorMode==1) and (motor_a[1]<52) ) { motor_a[1]=motor_a[1]+SkorostRaskrutki; if (motor_a[1]>35) {MotorMode=2;}; };
if ( (MotorMode==2) and (motor_b[1]<52) ) { motor_b[1]=motor_b[1]+SkorostRaskrutki; if (motor_b[1]>35) {MotorMode=3;}; };
analogWrite(motor_a[0], round(motor_a[1]) ); analogWrite(motor_b[0], round(motor_b[1]) );
// Кнопка 4 - ОСТАНОВИТЬ ВСЁ if (digitalRead(knopka4[0])==1 ) { MotorMode=0; AdresMode=0; LightMode=0;
motor_a[1]=0; motor_b[1]=0; };
Serial.print("Кнопки: "); Serial.print(digitalRead(knopka1[0])); Serial.print(digitalRead(knopka2[0])); Serial.print(digitalRead(knopka3[0])); Serial.print(digitalRead(knopka4[0])); Serial.print("; Моторы: "); Serial.print(motor_a[1]); Serial.print(", "); Serial.print(motor_b[1]); Serial.print("; "); Serial.print("Режимы: Каб:"); Serial.print(AdresMode); Serial.print(", Осв:"); Serial.print(LightMode); Serial.print(", Мот:"); Serial.print(MotorMode);
Serial.print(", D4:"); Serial.print( posad[0] ); Serial.print("; ");
DigitalFlash( dnische ); DigitalFlash( hvost ); AnalogFlash( krilya );
} // конец части LOOP
// подпрограмма мигания на ЦИФРОВОЙ ноге int DigitalFlash ( int InputLamp[4] ) { if ((InputLamp[5]==0) and (millis()>InputLamp[3]+InputLamp[2]) and (InputLamp[4]>0)) { // если светодиод НЕ горит и интервал превысил заданный digitalWrite( InputLamp[0] , HIGH); // включаем светодиод InputLamp[3]=millis(); InputLamp[5]=1; }; if (((InputLamp[5]==1) and (millis()>InputLamp[3]+InputLamp[1])) or (InputLamp[4]<1)) { // если светодиод горит и интервал превысил заданный digitalWrite( InputLamp[0] , LOW); // выключаем светодиод InputLamp[3]=millis(); InputLamp[5]=0; }; return InputLamp; }
// подпрограмма мигания на АНАЛОГОВОЙ ноге, с ненулевым затуханием int AnalogFlash ( long InputLamp[5] ) { if (InputLamp[4]>0) { if ((InputLamp[5]==0) and (millis()>InputLamp[3]+InputLamp[2])) { // если светодиод НЕ горит и интервал превысил заданный analogWrite( InputLamp[0] , 1023); // включаем светодиод InputLamp[3]=millis(); InputLamp[5]=1; }; if ((InputLamp[5]==1) and (millis()>InputLamp[3]+InputLamp[1])) { // если светодиод горит и интервал превысил заданный analogWrite( InputLamp[0] , 100); // светодиод переводим на слабую яркость InputLamp[3]=millis(); InputLamp[5]=0; }; } else { analogWrite( InputLamp[0] , 0); // светодиод переводим на слабую яркость } }
Что понадобится для монтажа:
Данные компоненты можно заказать в Китае.
Собственно сама Ardina: http://арду.рф/product/1745
Радиомодуль на 4 канала. http://арду.рф/product/1100
Электродвигатели: http://арду.рф/product/1593
Драйвер: http://арду.рф/product/1932
Адресная лента в кабину штурмана и пилотов: http://арду.рф/product/1736 Рекомендую использовать 60 светодиодов на кв.м.
Обычные светодиоды на ваш выбор: http://арду.рф/shop/536
Резисторы для светодиодов. Рекомендую на 220Ом. ОБЯЗАТЕЛЬНО! Иначе спалите  http://арду.рф/product/1277
Примечание. Радиомодуль НЕ рекомендую ставить в консоль крыла, так как вызывает помехи в его работе. Считаю лучшим вариантом - разместить его в хвосте. Осознал на своем опыте, но переделывать уже не буду. Если на следующем проекте 
УФФФФ. Вроде всё :).
Если будут вопросы, общайтесь постараюсь помочь.
Работает - НЕ ТРОЖЬ
|
|
|
|
romsas | Дата: Вторник, 24.11.2020, 17:59 | Сообщение # 81 |
Группа: Опытные
Сообщений: 940
Репутация: 70
Награды: 0
Статус: Offline
| FX4000_1, вот это круть! Спасибо дорогой товарищ))) Надеюсь когда то запилим борт с мигалками!
|
|
|
|
FX4000_1 | Дата: Вторник, 24.11.2020, 18:12 | Сообщение # 82 |
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
| romsas, Ром да пожалста)) Если что обращайся подскажу советом)) Хотя сам на косяках учусь)). Скоро выложу тесты с двигателями так что ждите видос
Работает - НЕ ТРОЖЬ
|
|
|
|