С чего начать программировать микроконтроллеры?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18853
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

А электромагнитный импульс может влиять на мегу? Я на аппарат точечной сварки регулятор собирал, а там недалеко от местоположения меги 16 шина проходит, по которой во время сварки идёт ток несколько килоампер. Но девайс на меге находится в заземлённом металлическом корпусе и есть только небольшая дырка для проводов.
Кстати, один косяк я так и не смог пока побороть (не понял причину). Пока эту функцию совсем исключил из программы, завтра посмотрю что получится.
Реклама
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

SeregaT писал(а):Кстати, один косяк я так и не смог пока побороть (не понял причину). Пока эту функцию совсем исключил из программы, завтра посмотрю что получится.


А что за косяк?
Знание - сила!
Реклама
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

saschai писал(а):вобшем, когда пускатель щелкал, достаточно сильный удар на шасси, вот они и вылетали из панелек, как пробка из шампанского :))
Пришлось извлекать и вешать на стенку:)), так, что всего не предусмотришь!


Мы тут как-то испытывали модификатор для льна, причем заводской, а не самодельный. Стоит на нем, значит, шкаф с реле и прочим.Ну мы подергали - вроде все в шкафу прочно стоит, правда гроверов нет.... А еще провода межрелюшечные просто в контакты реле зажаты (без клемм). Ну мы включаем..... А там ножи по 10000 оборотов дают... И подшипники дешевые..... И ножи несбаласированы.... Короче от козы и пожара спасло то, что отвалилось все разом - провода от релюшек, релюшки от корпуса, транс от всего этого и т.д. :)))

Потом шкаф сняли с модификатора.
Знание - сила!
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

про обучение моего знакомого. они прослушал три моих "урока", сегодня принес первую поделку на МК
Программа составлена не оптимально под МК, но она Первая и Работает!
причем для новичка сложная: динамическая индикация на четырех семисегментных индикаторах
При этом схему я ему не дал, он по исходнику разобрался! Парень -молодец!

Сегодня рассказал ему про таймеры, аж загорелся парень. Приятно работать с теми, кто Хочет Учиться!

Вначале "лампочками помигает", а потом и выше пойдет
Все начинали с букваря, а не "Война и мир"

во вложенном файле 500 кБ - фото его первой поделки на МК
скриншоты видео - http://pic-avr.narod.ru/ScrShot.zip

само видео 4.8 мБ - http://pic-avr.narod.ru/MVI_0056.avi
Реклама
Эиком - электронные компоненты и радиодетали
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

вот вопрос. почему, когда загорается много сегментов, яркость каждого сегмента уменьшается?
как этого избежать?
Не умеешь - не берись, но не взявшись не научишься...
Реклама
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18853
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Пухич писал(а):А что за косяк?

Когда нажимали педаль, сперва должен включиться клапан прижимного устройства, затем трансформатор на несколько ms, а потом отключиться прижим. Когда он нажимал педаль, иногда после прижима не отпуская электрода после сварки, клапан и сварка резко включались снова, а это сильно замедляло процесс (я и так на задержки расщедрился, в моём понимании десяток другой миллисекунд роли не сыграют, а сварщик сказал что моя автоматика за ним не успевает).
Вот кусок кода, который косячил:

if (!PIND.4) // Если нажата педаль, выполняется автоматический сварочный цикл
{
delay_ms (1);
if (!PIND.4) // Антидребезг
{
PORTB.0=1;
delay_ms (a);
PORTB.1=1;
delay_ms (b);
PORTB.1=0;
PORTB.0=0;
while (!PIND.4); // Ждём, когда педаль будет отпущена
goto automat; // Переходим в начало цикла
}
}


Я потом немного понял, на что влияла помеха, и сделал вот такой код:

if (!PIND.4) // Если нажата педаль, выполняется автоматический сварочный цикл
{
delay_ms (1);
if (!PIND.4) // Антидребезг
{
PORTB.0=1;
delay_ms (a);
PORTB.1=1;
delay_ms (b);
PORTB.1=0;
PORTB.0=0;
delay_ms (2);
if (!PIND.4)
{
delay_ms (1);
if (!PIND.4)
{
while (1)
{
delay_ms (2);
if (PIND.4)
{
goto automat;
}
}
}
//delay_ms (c);
}
}
}

Я так понял, что в первом случае перед строчкой:
while (!PIND.4); // Ждём, когда педаль будет отпущена
можно было просто добавить небольшую задержку, но у меня и так заработало всё нормально и код переписывать не стал.
Кстати, могу похвастаться: Моё первое устройство на МК (которое используется в промышленном оборудовании а не дома на столе, чисто посмотреть) готово и сегодня показало хорошии результаты по производительности труда и стабильности.
Вот это устройство (панель делать было некогда, поэтому пока просто выпилил из старого куска оргстекла, который мне подвернулся):
Изображение
А вот код, с которым всё нормально получилось (можно там немного оптимизировать с переходами по меткам туда-сюда, но работает и я трогать не стал, чтобы не накосячить):
Вложения
svarka.c
(9.85 КБ) 301 скачивание
Реклама
Аватара пользователя
Pippeytz
Потрогал лапой паяльник
Сообщения: 396
Зарегистрирован: Ср май 28, 2008 19:30:31
Откуда: Донецк
Контактная информация:

Сообщение Pippeytz »

Блин, есть может у кого нибудь рабочная билиотека на КС0066?
Ато у меня на етом контролере 2 панельки (Wiston 16x1 16x2), ниодна никаких признаков жизни не подает вобще, я даже не могу проверять живие они или вобще запоротые
Последний раз редактировалось Pippeytz Ср май 20, 2009 18:58:44, всего редактировалось 3 раза.
Полный пипеутз.
Аватара пользователя
Cat
Электрический кот
Сообщения: 1087
Зарегистрирован: Вт май 05, 2009 10:43:42
Откуда: Россия
Контактная информация:

Сообщение Cat »

Точечная сварка арматурной сетки :) Завод ЖБИ?
Боевой ватник.
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18853
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Cat писал(а):Точечная сварка арматурной сетки :) Завод ЖБИ?

Строительная фирма. Там всякое есть, и столярные цеха и бетонные и арматурные, сантехнический, кузня и т.д.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

Stalker46 писал(а):вот вопрос. почему, когда загорается много сегментов, яркость каждого сегмента уменьшается?
как этого избежать?

это из-за неверной схемы у меня
надо на каждый сегмент свой резистор
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

а ты как сделал?

вот вопрос.
если я использую динамическую индикацию, я соединяю вс сегменты в одну шину, и каждый сегментный ряд забиваю на резистор.
в МК идет сигнал. это посылка тока. но вот что интересно. если мы зажигаем один сегмент, весль ток идет на этот сегмент. если зажигается много таких сегментов, то так распределяется по сегментам. и они становятся тусклыми. как от этого избавиться? или все будет хорошо? если да, то объясните плиз, т.к. мне не очень с этим понятно. :oops:
Не умеешь - не берись, но не взявшись не научишься...
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

если я не ошибаюсь (схемотехник из меня... :( )
Вложения
1.GIF
(5.29 КБ) 407 скачиваний
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Сергей, я вот этот кусок не понял:
if (!PIND.4)
{
delay_ms (1);
if (!PIND.4)
{
while (1)
{
delay_ms (2);
if (PIND.4)
{
goto automat;
}
}
}
//delay_ms (c);
}


Т.е. если педаль не отпущена еще, то мы, подождав зачем-то 1мс (это можно вообще убрать ИМХО), зашли в цикл, там идет бесконечный цикл, в котором идет задержка 2 мс, а потом проверка отпускания, и если отпускание произошло, то переходим на автомат. А вот если к началу этого кода педаль отпущена уже, то что - не переходим на автомат? Или так и должно быть по логике?

Я просто не совсем воткнул, что там ваш сварщик не успевает. :)
Знание - сила!
Аватара пользователя
Сэр Мурр
Модератор
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Вот это как раз тот самый случай- зависимость яркости сегментов от цифры.
Короче-надо для каждого сегмента свой ключ- итого 7 штук; на разряды- достаточно одного.
aleksandr-zh
Сверлит текстолит когтями
Сообщения: 1278
Зарегистрирован: Пн июн 18, 2007 21:51:20

Сообщение aleksandr-zh »

совершенно верно
но многие считают что это - это лишние "заморочки" и игнорируют
а зря! читаем в даташите на МК:

DC Current per I/O Pin ........... 20.0 mA
The sum of all IOL, for all ports, should not exceed 60 mA.

т.е., на любую ножку порта - не более 40 мА, но на все порты суммарно - не более 60!!
Вывод: 8*20 не равно 160 мА ! :)
По правилам хорошего тона, надо действительно вешать на каждый разряд свой "ключ"
Arlleex
Друг Кота
Сообщения: 4435
Зарегистрирован: Сб мар 07, 2009 20:44:36

Сообщение Arlleex »

что за ключ - тарнизсторный что ли?
Не умеешь - не берись, но не взявшись не научишься...
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

ну не гаечный же!
Ставим плюсы: )
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18853
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Пухич писал(а):Т.е. если педаль не отпущена еще, то мы, подождав зачем-то 1мс (это можно вообще убрать ИМХО),

Это антидребезг. Если не ждать 1 мс, то при сварке возникает очень мощный импульс, который МК принимает за сигналл к действию. Поэтому когда прошла 1 мс, а сигнал всё еще остался, то значит это на самом деле отпущена педаль.
зашли в цикл, там идет бесконечный цикл, в котором идет задержка 2 мс, а потом проверка отпускания, и если отпускание произошло, то переходим на автомат. А вот если к началу этого кода педаль отпущена уже, то что - не переходим на автомат? Или так и должно быть по логике?

Вот это было самое проблемное место. если я просто писал while (!PIND.4); то в момент замыкания электродов возникала помеха которая вызывала ложное отпускание педали, а так как педаль была еще нажата, то после помехи опять включался клапан и трансформатор. За одно нажатие педали иногда цикл повторялся 2 раза. Так как мне нужно было чтобы работало наверняка (иначе из-за этого сварщик весь день будет медленно работать), поэтому кроме антидребезга я на всякий случай сделал дополнительный бесконечный цикл. Если педаль отпущена до этого цикла, то конечно переходим на "автомат" (тоесть начало основного цикла автоматической сварки).
Я просто не совсем воткнул, что там ваш сварщик не успевает. :)

Сварщик успевал. Это моя программа не успевала (я там задержки большие сделал сперва). Мне казалось что получается быстро, а для сварщика это было слишком медленно. Потом я все задержки сократил и стало всё нормально работать.
Аватара пользователя
Пухич
Модератор
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Это антидребезг. Если не ждать 1 мс, то при сварке возникает очень мощный импульс, который МК принимает за сигналл к действию. Поэтому когда прошла 1 мс, а сигнал всё еще остался, то значит это на самом деле отпущена педаль.


Ну это не "антидребезг" называется..... Ну не суть. Это что же - такой импульсище, что перебивает живой ноль от педали? Ну может быть....

Вот это было самое проблемное место. если я просто писал while (!PIND.4); то в момент замыкания электродов возникала помеха которая вызывала ложное отпускание педали, а так как педаль была еще нажата, то после помехи опять включался клапан и трансформатор. За одно нажатие педали иногда цикл повторялся 2 раза. Так как мне нужно было чтобы работало наверняка (иначе из-за этого сварщик весь день будет медленно работать), поэтому кроме антидребезга я на всякий случай сделал дополнительный бесконечный цикл. Если педаль отпущена до этого цикла, то конечно переходим на "автомат" (тоесть начало основного цикла автоматической сварки).


Хм.... Надо подумать.... Не, ну это в принципе нормальный способ, хотя тут ИМХО надо что-то более суровое и челябинское.

А педаль как подключена к МК? Прямо так и висит на входах?

Ну если просто в лоб, то тут просто должна быть надежная последовательная проверка входа на наличие нуля/единицы. У вас видимо так и есть, просто немножко запутанно. :)

А вообще я вас искренне поздравляю с первым устройством на МК! :) Это серьезно. Еще и в условиях таких помех..... Вообще, если на будущее, то я бы не пожлобился на электромагнитное экранирование. Сейчас сталь не так дорога.
Знание - сила!
Аватара пользователя
SeregaT
Генеральный секретарь МЯУ
Сообщения: 18853
Зарегистрирован: Пн сен 03, 2007 18:24:27
Откуда: Россия. Омск.
Контактная информация:

Сообщение SeregaT »

Пухич писал(а):А вообще я вас искренне поздравляю с первым устройством на МК! :)

Спасибо :) Два дня, полёт нормальный. Ни одного сбоя. У меня есть только небольшие сомнения на счёт релюшек. У них режим работы - около двух включений за секунду в течении всего рабочего дня. На сколько их хватит? До этого стояла релюшка, проработала несколько лет (она просто тиристоры включала от педали), а на другом таком станке ставил другие релюшки (большие, старого образца), так я их несколько штук поменял, просто разваливались вдребезги, хотя этот станок работает гораздо реже чем первый.
Пухич писал(а):Вообще, если на будущее, то я бы не пожлобился на электромагнитное экранирование. Сейчас сталь не так дорога.

Да где-же я в металлоцехе сталь-то найду? :)))
Пухич писал(а):Ну это не "антидребезг" называется.....

А что называется антидребезгом? И как он реализуется?
И вот еще. Для этого девайса я писал другой код, но он почему-то иногда пропускал нажатия кнопок. Причем не только в железе (не в реальных условиях, а дома на столе), но и даже в протеусе. Код я выложил ниже, может кто скажет причину?

Кстати, купил себе дисплей на PLED WP1602C-Y-CCS (вместо него в девайс воткнул обычный LCD, 2 строки по 8 символов, а PLED забрал себе). Но что-то никакого описания на него не нашёл даже на winstar.ru На дисплее так-же 16 контактов как и на обычных. Питание на те-же выводы, вместо контрастности регулируется яркость. Подключал его к своим девайсам, но что-то он показывает всякую лажу вместо того, что нужно. То вроде часть надписи правильно покажет (а другая часть иероглифами), то еще непонятно что показывает, а иногда при смене надписи вообще ничего не показывает. Может у него подключение настандартное или дисплей дохлый?
Вложения
svarka.c
(10.79 КБ) 318 скачиваний
Ответить

Вернуться в «Теория»