Воскресенье, 17.01.2021, 23:39

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
«Выделите орфографическую ошибку мышью и нажмите Ctrl+Enter»

  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Модели из бумаги и картона своими руками - Форум » Мастерская » Авиация (М) » Антонов "Ан-30" в традиционном "72м" :) (Электрика на базе Arduino.)
Антонов "Ан-30" в традиционном "72м" :)
FX4000_1Дата: Понедельник, 16.11.2020, 00:59 | Сообщение # 76
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
Привет моделисты.
Заканчиваю работу над консолью крыла. Смонтировал основную подсветку и установил двигатели.
На неделе всё протестирую и покажу на видео))




Прикрепления: 0858275.jpg(102.3 Kb) · 5427480.jpg(104.4 Kb) · 9892891.jpg(115.4 Kb) · 9108502.jpg(121.8 Kb) · 3939948.jpg(120.7 Kb)


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

Долго ли скоро ли наконец закончил консоль крыла. Примерил двигатели. Всё работает идеально. Скоро выложу видео тестирования.
Все косяки и недочёты исправлю в ходе сборки:



Прикрепления: 5045254.jpg(104.6 Kb) · 8275929.jpg(107.1 Kb) · 7274166.jpg(72.2 Kb)


Работает - НЕ ТРОЖЬ
 
FX4000_1Дата: Пятница, 20.11.2020, 17:33 | Сообщение # 78
Группа: Опытные
Сообщений: 331
Репутация: 232
Награды: 0
Статус: Offline
Привет моделисты!
Вот вам ламповый свет в кабинах. Что скажете? Или сделать красноватый оттенок????
Прикрепления: 6819600.jpg(101.1 Kb)


Работает - НЕ ТРОЖЬ
 
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
Привет моделисты!

Итак. Практически полностью дописали скетч для работы всех устройств.
Выкладываю его сюда если вдруг кто захочет сделать подобное smile
Копируйте от слов //РАСПИНОВКА до символа }.

Заливайте в программу 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Ом. ОБЯЗАТЕЛЬНО! Иначе спалите smile
http://арду.рф/product/1277

Примечание. Радиомодуль НЕ рекомендую ставить в консоль крыла, так как вызывает помехи в его работе. Считаю лучшим вариантом - разместить его в хвосте. Осознал на своем опыте, но переделывать уже не буду. Если на следующем проекте smile

УФФФФ. Вроде всё :).

Если будут вопросы, общайтесь постараюсь помочь.


Работает - НЕ ТРОЖЬ
 
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, Ром да пожалста)) Если что обращайся подскажу советом)) Хотя сам на косяках учусь)). Скоро выложу тесты с двигателями так что ждите видос smile

Работает - НЕ ТРОЖЬ
 
Модели из бумаги и картона своими руками - Форум » Мастерская » Авиация (М) » Антонов "Ан-30" в традиционном "72м" :) (Электрика на базе Arduino.)
  • Страница 6 из 6
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
Поиск: