Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Atmega8+IR2110+ss49E управление коллекторником, проблемы с ШИМ


Atmega8+IR2110+ss49E управление коллекторником, проблемы с ШИМ

Сообщений 1 страница 15 из 15

1

На 1 пин обычно ставится r-c цепочка для ресета МК при подаче питания. Обязательно ли это делать?
В чем проблема, при подаче питания на плату происходит кратковременный  перевод всех выходов в высокий лог уровень, что не есть безопасно (в случае управления эл двигателем). Видимо, это происходит из-за ресета в момент включения, я правильно понимаю? вопрос может и банальный, но как избежать это? обязательно ли ставить эту цепочку на 1 пин? спасибо.

Отредактировано Evgenij86 (2017-01-26 22:38:41)

0

2

схему покажите! явно реле неверно запитаны

0

3

Evgenij86 написал(а):

при подаче питания на плату происходит кратковременный  перевод всех выходов в высокий лог уровень

При подаче питания все выводы настроены как входы, а не выходы, поэтому никакого логического уровня не будет, разве что из-за ошибки в программе.

0

4

На самом деле, схема примитив. управление Коллекторником 500w 12V.
на 15 выход на ir2110, на 1 rc- цепочка, кондер на минус-керамика 1 мФ, 6,8 кОм на плюс (так и не понял из ответов, обязательна ли она?). без силовой части, мк ведет себя так же.

Реле нет. на др пинах то же светодиоды припаивал, при подачи питания вспыхивают кратковременно.
раньше в других конструкциях не обращал на этот факт внимания, но когда коллекторник стартует при подачи питания- это не есть гуд.

код.

Код:
  $regfile = "m8def.dat"
$crystal = 11059200
Rem $hwstack = 32
Rem $swstack = 32
Rem $framesize = 32
Rem $baud = 115200


Dim I As Word


Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
Config Portb.1 = Output

'конфигурируем АЦП
Config Adc = Single , Prescaler = 128 , Reference = Internal


Portb.1 = 0


I = 0

Start Adc


 Do
I = Getadc(0)

 Waitms 20

 Pwm1a = I                                                  'плавно увеличиваем значение регистра сравнения OCR1A

Waitms 20                                                   'добавим задержку

Loop

 End

Отредактировано Evgenij86 (2017-01-27 21:04:45)

0

5

Измените направление шим   Compare A Pwm = Clear Up или поставьте Pwm1a = 255 после Compare A Pwm = Clear Down и будет норм.

0

6

Измените направление шим   Compare A Pwm = Clear Up или поставьте Pwm1a = 255 после Compare A Pwm = Clear Down и будет норм.


пробывал-не помагает. кто то с таким сталкивался?

Код:
$regfile = "m8def.dat"
$crystal = 11059200
Rem $hwstack = 32
Rem $swstack = 32
Rem $framesize = 32
Rem $baud = 115200


Dim I As Word                                               'ïåðåìåííàÿ i â êîòîðóþ áóäåì çàïèñûâàòü ïîêàçàíèÿ ñ ÀÖÏ
Config Portb.1 = Output
Config Portd.1 = Output


Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , , Prescale = 8


'êîíôèãóðèðóåì ÀÖÏ
Config Adc = Single , Prescaler = 128 , Reference = Internal



Portb.1 = 0
Portd.1 = 0
Pwm1a = 0
I = 0

Start Adc


 Do

I = Getadc(4)

 Waitms 20

 Pwm1a = I                                                  



 Waitms 20

                                                      

Loop

0

7

Вообще-то появление питания на МК практически равноценно Reset, даже чуть больше.
Если уж так критично наличие "0" после запуска МК, то добавьте после
Config Portb.1 = Output
Config Portd.1 = Output

еще две строки

PORTB.1 = 0
PORTD.1 = 0

Обработается за микродоли секунды, двигатель ваш даже мявкнуть не успеет... ;)
Достаточно, правда, банальный выход из положения... ;)

Отредактировано Nord (2017-01-28 22:35:28)

0

8

схему покажите...

0

9

схема, примитив. http://sg.uploads.ru/t/3ulH6.jpg

еще две строки
PORTB.1 = 0
PORTD.1 = 0


они есть в коде

Отредактировано Evgenij86 (2017-01-29 13:33:51)

0

10

А зачем мегу то кормите 12 вольтами? И не проще полевик с логическим уровнем поставить типа IRF4905 и избавиться от ненужного обвеса.

Evgenij86 написал(а):

пробывал-не помагает.


Попробовал на макетке никаких изменений в уровне не обнаружил.

Отредактировано Yuriy.pv (2017-01-29 14:00:33)

0

11

конечно же +5в, опечатка. от 12 уже бы пшик был. по поводу полевиков с логическим уровнем, спор открывать не будем. все это уже довно пережевывалась на др сайтах по силовой электронике, по поводу греющихся транзюков и не долгой их службы. проверилось все на себе. и этот вариант с драйвером-считаю самым лучшим и работоспособным.

а вот с мегой проблемы остались. если убрать из кода все, что связано с шимом, и написать в проге простую мигалочку выходом-проблем с включением нет. светодиод не зажигается при подаче питания. а с шимом вспыхивает-и все тут.

0

12

Yuriy.pv написал(а):

Измените направление шим   Compare A Pwm = Clear Up или поставьте Pwm1a = 255 после Compare A Pwm = Clear Down и будет норм.


У меня это убирает импульс.

Если есть свободные ноги управляйте активацией драйвера..

0

13

Yuriy.pv Спасибо.

Если есть свободные ноги управляйте активацией драйвера.

отличный совет, если будут грабли, заморочусь с этим.

поставил

Код:
  $regfile = "m8def.dat"
$crystal = 11059200
Rem $hwstack = 32
Rem $swstack = 32
Rem $framesize = 32
Rem $baud = 115200


Dim I As Word                                               'переменная i в которую будем записывать показания с АЦП
Config Portb.1 = Output
Config Portd.1 = Output


Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , , Prescale = 1


'конфигурируем АЦП
Config Adc = Single , Prescaler = 128 , Reference = Internal



Portb.1 = 0
Portd.1 = 0
Pwm1a = 0
I = 0

Start Adc


 Do

I = Getadc(4)

 Waitms 20

 Pwm1a = I                                                  'плавно увеличиваем значение регистра сравнения OCR1A

Rem If I > 10 Then Portd.1 = 1


 Waitms 20

 If Getadc(4) >= 10 Then
Portd.1 = 1
Else
Portd.1 = 0
End If                                                      'добавим задержку

Loop

 End

вроде ушло.

как переименовать тему?, вопрос вкорне не верный. Для новичков, типа меня, удобней будет искать как "Atmega8+IR2110 управление коллекторником, проблемы с ШИМ"

есть идея заменить переменник аналоговым датчиком холла, типа SS49E, но вот проблемма, диапазон изменения  выходного напряжения от 0,9В до 4,2В. т.е. при подключении с данным кодом, не вся шкала шим используется.

0

14

пока решил вот так, но переход со средних оборотов значение 759 в полную мощность 1023 сильно чувствуется.

Код:
 $regfile = "m8def.dat"
$crystal = 11059200
Rem $hwstack = 32
Rem $swstack = 32
Rem $framesize = 32
Rem $baud = 115200


Dim I As Word                                               'ïåðåìåííàÿ i â êîòîðóþ áóäåì çàïèñûâàòü ïîêàçàíèÿ ñ ÀÖÏ
Config Portb.1 = Output
Config Portd.1 = Output


Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , , Prescale = 1


'êîíôèãóðèðóåì ÀÖÏ
Config Adc = Single , Prescaler = Auto , Reference = Avcc



Portb.1 = 0
Portd.1 = 0
Pwm1a = 0
I = 0

Start Adc


 Do

I = Getadc(4)

If Getadc(4) <= 242 Then
Pwm1a = 0
End If

If Getadc(4) > 242 And Getadc(4) < 759 Then
Pwm1a = I
End If

Waitms 20



If Getadc(4) >= 759 Then
Pwm1a = 1023
End If

Waitms 20


 If Getadc(4) >= 242 Then
Portd.1 = 1
Else
Portd.1 = 0
End If                                                      'äîáàâèì çàäåðæêó

Loop

 End

Отредактировано Evgenij86 (2017-01-29 19:42:31)

0

15

Evgenij86 написал(а):

есть идея заменить переменник аналоговым датчиком холла, типа SS49E, но вот проблемма, диапазон изменения  выходного напряжения от 0,9В до 4,2В. т.е. при подключении с данным кодом, не вся шкала шим используется.


Подключите внутреннее или внешнее опороное + делитель, и будет вся шкала. Еще вариант калькулятором, 759/0,7419 после запятой все откинуть

I = Getadc(4)
temp = I / 0.7419

759/0,7419=1023

Evgenij86 написал(а):

как переименовать тему?


Это к модерам, они поправят..

Отредактировано Yuriy.pv (2017-01-30 01:01:17)

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Atmega8+IR2110+ss49E управление коллекторником, проблемы с ШИМ