www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 19 Юни 2019, 05:00

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 5 мнения ] 
Автор Съобщение
 Заглавие: Ардуино Мега
МнениеПубликувано на: 06 Сеп 2017, 11:45 
Offline

Регистриран на: 07 Апр 2009, 19:08
Мнения: 72
Местоположение: Шумен,Шипка
Прикачени файлове:
Въпрос.jpg
Въпрос.jpg [ 400.55 KiB | Прегледано 1382 пъти ]
Привет.При първоначално подаване на захранване към ардуиното започва да си конфигурира пиновете като изхоти ( поне така предполагам ) .Транзисторите остават Силно отпушени.
Схемата която правя е за управление на 8 бр. магнет вентили с два бутона. Трябва да работят в комбинация по три едновременнно.Комбинациите са общо 18+0.Имам заложен LED дисплей.Всичко идва на местото си ,но когато подам напрежение към контролера и от бутоните UP,DOWN премина през цялата програма-което е пречка.Вариянта с по-късно подаване на захранване на към транзисторите не се получи. :?
Питанката ми е следната. Как мога да удуша този неприятен ефек?

Не мога да кача Скеча , нито като Нотапейски фаил , нито като оригинал Оффф :smt005


Върнете се в началото
 Профил  
 
 Заглавие: Re: Ардуино Мега
МнениеПубликувано на: 06 Сеп 2017, 14:39 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 924
Местоположение: Силистра
ramzes написа:
... Не мога да кача Скеча , нито като Нотапейски фаил , нито като оригинал ...

Пробвай да прикачиш файлове в .zip архив. Максималният размер е 10 MB.
---
Точно не мога да разбера в какво се изразява проблема, но ако тръгнеш от структурата на програмите (в ардуино):

В началното установяване (setup):
- установи си изводите като входове/изходи;
- приведи ги в начално, неактивно състояние;
- ако трябва изчакай някакво време за преходни процеси и др.;
- запусни PWM-а.

В loop след това си върши проверки, управления от бутони, превкл. на състояния и др, според логиката на устройството ти.

При бегъл поглед върху схемата:
Бих свързал резистор гейт-земя на полевите транзистори: при липса на сигнал ще са твърдо в установено неутрално (изкючено) състояние.
Виждам като вариант и 2-входови ЛЕ лог. И вместо 4066. Няма да има нужда от резистор за неопределеното състояние на транзисторите.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Ардуино Мега
МнениеПубликувано на: 08 Сеп 2017, 13:55 
Offline

Регистриран на: 07 Апр 2009, 19:08
Мнения: 72
Местоположение: Шумен,Шипка
Ами за момента си реших проблема като забих резистори от 39к от гейта към маса.Тръгна си всичко , но се получава нещо много интересно при натискане на бутона UP / DOWN спира да работи ШИМ-а.


Прикачени файлове:
Скеч.rar [1.51 KiB]
113 пъти
Върнете се в началото
 Профил  
 
 Заглавие: Re: Ардуино Мега
МнениеПубликувано на: 08 Сеп 2017, 14:37 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 924
Местоположение: Силистра
Като се задейства бутон, последващото delay и цикълът на микроконтролера спира, почиваме си и чакаме да изтече времето delay(250); След това продължаваме да циклим.

Може да замениш delay с примерно нещо такова:
Код за потвърждение:
vreme1 = millis();
---
if ((vreme1 + 250) > millis())
прави нещо си ...

---
Защо е така изкуствено създаден генератора на импулси (1 -> 0 -> 1 през 3 милисекунди ... в loop) с последващо управление от бутоните към изходите?

Може да използваш PWM в Arduino (https://www.arduino.cc/en/Reference/AnalogWrite). Пусни го с коеф на запълване 50/50 на един извод и в loop.
---
Бих заменил 18-те повторенията в кода на състоянията на 18-те релета с една процедура, а състоянието да задавам с някаква променлива/и, съответстваща/и на логиката на устройството.

напр. задействани релета от А до AB да са с единици:
Код за потвърждение:
releta_a_b_c_d_e_f_g_ab = 0b11111111;

и изпълнителната верига:
Код за потвърждение:
...
digitalWrite(А,  releta_a_b_c_d_e_f_g_ab & 0b00000001);
digitalWrite(B,  releta_a_b_c_d_e_f_g_ab & 0b00000010);
digitalWrite(C,  releta_a_b_c_d_e_f_g_ab & 0b00000100);
digitalWrite(D,  releta_a_b_c_d_e_f_g_ab & 0b00001000);
digitalWrite(E,  releta_a_b_c_d_e_f_g_ab & 0b00010000);
digitalWrite(F,  releta_a_b_c_d_e_f_g_ab & 0b00100000);
digitalWrite(G,  releta_a_b_c_d_e_f_g_ab & 0b01000000);
digitalWrite(AB, releta_a_b_c_d_e_f_g_ab & 0b10000000);
...

Като промениш променливата releta_a_b_c_d_e_f_g_ab = друго число, състоянията на релетата ще повтарят единиците в променливата.
Затова, че са 18 релета, променливите може да комбинираш примерно 3 променливи по 8 бита.


Върнете се в началото
 Профил  
 
 Заглавие: Re: Ардуино Мега
МнениеПубликувано на: 08 Сеп 2017, 15:05 
Offline

Регистриран на: 07 Апр 2009, 19:08
Мнения: 72
Местоположение: Шумен,Шипка
Прикачени файлове:
IMG00011.jpg
IMG00011.jpg [ 426.86 KiB | Прегледано 1353 пъти ]

Идеята ми е да управлявам скоростана кутия Типтроник на трактро ФОРД 8830 . оригиналният компютър след намеса на _Ижинери_ от селки тип стигна до смърта без време, поовече не можах да го възтановя .Трактора е много лимитирана серия с две думи много рядък модел дори в света. Магнет вентилите се управляват с ШИМ . При постоянен ток консумацията е 7-8 ампера .С ШИМ-а стигнах до 1.5 А.С така направената постановка тествах и работи. В момента правя опити за чертаене на платката с 4066 , дисплея , крайните транзистори . Но ми се ще да направя и разработа в която да заменя крайните транзистори с BTS модули.Има такива които са за индуктивен товар.


Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 5 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com