проблема с индуктивной наводкой на входах pic16f84a
|
|
tesla88 |
Дата: Чт, 20.01.2011, 11:15 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
Добрый день уважаемые колеги, у меня такая проблема- я собрал блок управления двигателями на pic16f84a , принцеп такой: контролер подаёт сигнал на оптопару, а она на симистор, а симистор управляет пускателем и запускается двигатель, на нём есть магнит который в свою очередь замыкает геркон , а геркон подаёт сигнал на контролер и тот переходит к другому двигателю, всё работает прекрастно до тех пор пока не подключен двигатель , после подключения контролер сбрасывается в начяло. я выяснил что это происходит из за помех от наводки двигателя, подскажите как этого избежать ? заранее благодарен. вот сама программа:- init: TRISA = %00011111 PORTA = %00000000 PORTB = %00000000 TRISB = %00000000 DTK VAR PORTA.1 'КНОПКА ДВИЖЕНИЯ В ЛЕВО DTL VAR PORTA.2 'ДАТЧИК ЛЕВЫЙ ДЕЛИТЕЛЯ DTP VAR PORTA.3 'ДАТЧИК ПРАВЫЙ ДЕЛИТЕЛЯ DTR var PORTA.4 'ДАТЧИК РАСТОЙКИ {ЗВЁЗДОЧКА) DTG VAR PORTA.0 'ДАТЧИК ГОЛОВКИ symbol MT1 = PORTB.0 'МОТОР В ЛЕВО symbol MT2 = PORTB.1 'МОТОР В ПРАВО SYMBOL LED = PORTB.7 'СИГНАЛЬНАЯ ЛАМПА symbol MT3 = PORTB.2 ' МОТОР ГОЛОВКИ SYMBOL LED1 = PORTB.4 'СИГНАЛ ЛЕВЫЙ SYMBOL LED2 = PORTB.5 ' CИГНАЛ ПРАВЫЙ SYMBOL LED3 = PORTB.3 ' СИГНАЛ ГОЛОВКИ MAIN: led = 1 'КНОПКА НАЧАЛЬНОЙ УСТАНОВКИ if dtk = 0 then main1 ' если кнопка дтк нажата перейти к к установке на начало goto main ' если нет то начять сначала main1: led = 0 LED1 = 1 HIGH MT1 ' движение к начальной точке if dtl = 0 then main2 ' если кнопка дтл не нажата то перейти к опросу датчика дтр goto main1 ' начать с мэин1 main2: ' LOW mt1 ' остановка на начальной точке LED1 = 0 if dtr = 0 then main3 ' если датчик дтр сработал то перейти к движению вправо goto main2 ' если нет то в начало мэин2 main3: ' mt2 = 1 LED2 = 1 LED3 = 1 ' движение вправо MT3 = 1 ' РАБОТА ГОЛОВКИ IF DTG = 0 THEN MAINA GOTO MAIN3 MAINA: MT2 = 1 LED2 = 1 pause 500 LED3 = 0 MT3 = 0 IF DTP = 0 THEN MAIN4 GOTO MAINA main4: mt2 = 0 ' остановка в правой половине LED2 = 0 if dtr = 0 then main5 ' если датчик дтр сработал перейти к движению влева goto main4 ' если нет то ждать main5: mt1 = 1 ' движение влево LED1 = 1 LED3 = 1 MT3 = 1 ' РАБОТА ГОЛОВКИ if dtG = 0 then mainB ' если дтл сработал то перейти к начальной точке goto main5 ' если нет то продолжить MAINB: MT1 = 1 LED1 = 1 pause 500 LED3 = 0 MT3 = 0 IF DTL = 0 THEN MAIN2 GOTO MAINB end
|
|
|
|
retas |
Дата: Чт, 20.01.2011, 11:48 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Подобная проблема обсуждалась сдесь и была решена http://picbasic.ru/forum/16-513-1
|
|
|
|
terrarus |
Дата: Чт, 20.01.2011, 12:26 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Советую запитывать микроконтроллер через DC/DC преобразователь. Получите и высококачественную фильтрацию ВЧ помех по питанию и гальваническую развязку от другой части схемы. Инфа о DC/DC преобразователях на http://catalog.compel.ru/ps_dcdc/list
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
tesla88 |
Дата: Чт, 20.01.2011, 15:26 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
dc-dc это конечно хорошо, но проблема в том ,что даже если поставить двигатель на провода от датчиков(геркон) мк сбрасывается , хотя двигатель всего 30 ват, а наводка идёт по проводам и прямо на входа мк, но всё равно спасибо за совет.
|
|
|
|
retas |
Дата: Пт, 21.01.2011, 00:09 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Что то не вижу в вашей прогре борьбы с дребезгом.
|
|
|
|
tesla88 |
Дата: Пт, 21.01.2011, 06:56 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
114
Замечания:
±
На сайте с 20.11.2010
Статус:
Offline
|
поставил я детали как на схеме и диод по питанию поставил (http://picbasic.ru/forum/16-513-1) , а контролер всё равно сбрасывается, стоит лишь поднести двигатель поближе к проводам герконов, что делать ума не приложу? Помогите
|
|
|
|
terrarus |
Дата: Пт, 21.01.2011, 09:02 | Сообщение # 7 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
451
Замечания:
±
На сайте с 21.08.2008
Статус:
Offline
|
Я для себя давно эту пробему решил, и пользуюсь таким схемным решением (смотрите приложенный рисунок), особенно в цеху где очень много электродвигателей от 10 до 250 кВт работающих под управлением частотных преобразователей.
Если у в Вас что-то не получается, подумай, не стоит ли прочитать инструкцию...!
|
|
|
|
retas |
Дата: Пт, 21.01.2011, 09:46 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Помогаю всем
Сообщений:
445
Замечания:
±
На сайте с 10.09.2007
Статус:
Offline
|
Ну и где же ваши старания в борьбе с дребезгом или вы этого не проходили? k1, k2 - копилки (байтовые либо word) k1=0 : k2=0 If PORTX=0..................................................вроде бы сработал порт ...For k1=1 To 3000......................................теперь много раз под ряд будем его проверять ...If PORTX=0 Then Inc k2 ...Next : k1=0 ...If k2 > 2000 Then делаем что нужно............если 2/3 проверок подошли. Удачи.
Сообщение отредактировал
retas - Пт, 21.01.2011, 09:47
|
|
|
|
onesmalk |
Дата: Пт, 28.05.2021, 17:17 | Сообщение # 9 |
Группа:
Заблокированные
Ранг:
Новенький
Сообщений:
10
Замечания:
±
На сайте с 28.05.2021
Статус:
Offline
|
[url=https://onenews24.ru/] новости рынка зерна в россии[/url] https://onenews24.ru/
выход на пенсию мужчин
|
|
|
|