avatar_UriBas

Моргалка на Arduino. Этюды для начинающих.

Автор UriBas, 08 Март 2017 в 16:08

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Leprechaun

Цитата: Dunkel от 30 Нояб. 2017 в 17:23
Цитата: Яков93 от 30 Нояб. 2017 в 17:00
[user]Leprechaun[/user], я к тому, что просьб не поступало вроде ни со стороны ТС, ни со стороны [user]Dunkel[/user]. Наверное они всем довольны и без i2C дисплеев и с delay().

Ага, сколько я ни спрашивал чем так плох делей в моргалке - в ответ только намеки на какие-то тайные знания.
Т.е. все знают, что плохо, а почему - сказать никто не может.
Если вы про, меня так вроде я ответил  :ah:
delay это не пауза это по сути "остановка" МК

Leprechaun

Если это не стёб и вам правда интересно то может это http://arduino.ru/Reference/delay вам поможет?

Dunkel

Цитата: Leprechaun от 30 Нояб. 2017 в 17:28
Цитата: Dunkel от 30 Нояб. 2017 в 17:23
Цитата: Яков93 от 30 Нояб. 2017 в 17:00
[user]Leprechaun[/user], я к тому, что просьб не поступало вроде ни со стороны ТС, ни со стороны [user]Dunkel[/user]. Наверное они всем довольны и без i2C дисплеев и с delay().

Ага, сколько я ни спрашивал чем так плох делей в моргалке - в ответ только намеки на какие-то тайные знания.
Т.е. все знают, что плохо, а почему - сказать никто не может.
Если вы про, меня так вроде я ответил  :ah:
delay это не пауза это по сути "остановка" МК

Это я понимаю. Но я никак не могу понять каким образом это ухудшает работу моргалки?
В паузе между измерениями НИЧЕГО не происходит, почему не остановить МК?

Многофункциональная облачная моргалка/логгер:
https://morgalka78.wordpress.com/

Leprechaun

#543
Цитата: Dunkel от 30 Нояб. 2017 в 17:40

В паузе между измерениями НИЧЕГО не происходит, почему не остановить МК?
Мы видимо друг друга как-то не правильно понимаем :(
Вам нужно моё разрешение на "остановить МК" ?
Не знаю зачем это вам. Ну раз надо, мне не жалко. Разрешаю!
Для себя считаю что
"
if (currentMillis - previousMillis > zar1*1000) // если время заряда истекло
{
    digitalWrite(13, LOW); // выключаем ключ
    digitalWrite(10, LOW); // выключаем внешний светодиод
    delay (pauseosn1*1000); // пауза основного цикла
    currentMillis = millis();
    previousMillis = currentMillis;
}


" - это полный ахтунг.

Кass

Цитата: Leprechaun от 30 Нояб. 2017 в 17:28
delay это не пауза это по сути "остановка" МК

Это только останов выполнения верхнего уровня программы. Сам МК работает в части нулевой функции. Если ШИМ выставили, то ШИМ импульсы продолжают формироваться.
В общем просто нужно понимать, имеет ли смысл останавливать программу, или нет. Если нет регулирования и работает простейшая моргалка, то не вижу проблем.
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

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

Alex_Soroka

#545
Цитата: Кass от 01 Дек. 2017 в 11:46
Цитата: Leprechaun от 30 Нояб. 2017 в 17:28
delay это не пауза это по сути "остановка" МК
...
хоть бы код ассемблера посмотрели, после трансляции, там "делай" это некий цикл из nop команд ! и вообще применять "делай" из библиотеки в проге где еще есть перывания, это значит вообще не понимать как работает железо и сами прерывания, и не иметь ни одного четкого интервала  :facepalm:
...
(удалено - провокация флейма)

Яков93

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

Alex_Soroka

Цитата: Яков93 от 01 Дек. 2017 в 17:30
Тема не про то кто самый крутой ардуинщик на свете.
У того кто полез писать для МИКРОКОНТРОЛЛЕРОВ должно быть в голове ПОНИМАНИЕ что это не Винда и нет там "операционок" и каждый чих(команду) надо понимать как отзовется в железе!  :ireful:
Кухарки должны на кухне сидеть, а если хотят программировать, то извольте НАУЧИТЬСЯ и понять что микроконтроллер работает на "машинных кодах" а не на С++ !
так вот "задержки" в С и С++ делаются тупо вставками nop в код, и если кто-то решил еще и прерывание сделать то задержка будет иметь произвольное значение, зависящее от количества прерываний по ходу вашего "делай"!
А чтобы ЗАПРОГРАММИРОВАТЬ то чтобы микроконтроллер именно ЗАСЫПАЛ, а не "нопы" гонял - это надо читать и программить!

Атмега для чайников - есть хороший курс: http://www.123avr.com/

Leprechaun

Всем привет !
Мне кажется [user]Яков93[/user],  100% прав, давайте ближе к теме.
Имею шкурный интерес определится с периферией :)
Если конкретней.
Чем рвём?
Чем мерим ток ?
R+ ОУ ? Взрослый шунт ампер на 20 + ОУ?  Датчик тока?


Кass

#549
Цитата: Alex_Soroka от 01 Дек. 2017 в 18:23
Цитата: Яков93 от 01 Дек. 2017 в 17:30
Тема не про то кто самый крутой ардуинщик на свете.
У того кто полез писать для МИКРОКОНТРОЛЛЕРОВ должно быть в голове ПОНИМАНИЕ что это не Винда и нет там "операционок" и каждый чих(команду) надо понимать как отзовется в железе!  :ireful:
Кухарки должны на кухне сидеть, а если хотят программировать, то извольте НАУЧИТЬСЯ

(удалено - оффтоп)

Если взять любой ПЛК, то там обязательно есть ОС, или нулевая функция. Абсолютно в любом. Без этого ни одна плата не умеет ни работать с периферией, ни со средой разработки. Поэтому нулевая функция или ОС грузится через специальный программатор и специальный разъем, если он есть на плате, или в программаторе для МК. Могут вам в качестве ликбеза сфотографировать разъем, который так и называется Load OS. Это так в среде профессионалов называют. У любителей, (удалено - провокация флейма), это называется загрузчиком. Попробуйте купить голый МК, и попробовать подключить его к Ардуино IDE.  :laugh:  Попробуйте купить STM32, и его подключить к Ардуино IDE.  :laugh:

Вот именно в нулевой функции и прописываются многие функции по работе с таймерами, прерываниями и многое другое. Функции типа delay как правило реализуются с использованием прерываний и таймеров. (удалено - оффтоп)

ЗЫ. Вот фото фрагмента платы промышленного ПЛК за 30 тыр:

Спойлер

Load OS видите? (удалено - оффтоп)

А вот фрагмент контроллера с моего стенда:

Спойлер

А вот нулевая функция Ардуино:

"Загрузчик бывает разных версий – для работы с разным «железом» (поскольку оно постоянно меняется).

"Загрузчики последней версии (те, что идут в Arduino 0009) почти идентичны загрузчикам для Diecimila или NG (с ATmega168). Оба работают на скорости 19200 бод и занимают 2 Кб в памяти чипа ATmega168."  http://wikihandbk.com/wiki/Arduino:Хакинг/Загрузчик

Именно этот код превращает Атмегу в Ардуино.  :hello:

Большое спасибо за ликбез, а вот за огромное  количество оффтопа и очередных провокаций ругани Вам очередные +5 баллов.
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

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

Leprechaun

[user]Кass[/user], Привет!
Может все же -
"Господа-товарищи, держите себя в руках. Тема не про то кто самый крутой ардуинщик на свете. " ? :)
В конце концов взрослые же люди.
Если уж так надо, просто достаньте и померьте (В ЛИЧКЕ) :)

Кass

Кстати, я вот думаю, может быть поднять Modbus RTU на Ардуине? Тогда можно ее использовать с куда большими возможностями. Правда использовать имеет смысл только АРМ от DUE. Атмеги 328 и 32U4 уж как то очень чахлые. Кто то пробовал поднять Модбас на Ардуине. Потянет он?
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

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

Alex_Soroka

Цитата: Кass от 01 Дек. 2017 в 20:06
Кто то пробовал поднять Модбас на Ардуине. Потянет он?
самолету прицепить каток, и проверять на скорость взлета  :facepalm:

три года уже теме...
https://habrahabr.ru/post/249043/
http://arduino-kit.com.ua/arduino-i-modbus.html
Arduino & Modbus

Leprechaun

Цитата: Кass от 01 Дек. 2017 в 20:06
Кстати, я вот думаю, может быть поднять Modbus RTU на Ардуине? Тогда можно ее использовать с куда большими возможностями. Правда использовать имеет смысл только АРМ от DUE. Атмеги 328 и 32U4 уж как то очень чахлые. Кто то пробовал поднять Модбас на Ардуине. Потянет он?
Привет!
Отличный план! Супер! Особенно для темы "Моргалка на Arduino. Этюды для начинающих."
Вы как на точность в 0.001V выйдете, прям сразу не мешкая надо "Modbus" заняться.
Наверное стоит еще ESP WIFI прикрутить. FM приёмник, маленький фонарик и матрицу 22"
Потом сесть и решить - на фига всё это. Или лучше до? :)



Кass

В общем понятно, что модбас и другие вопросы, которые требуют уровня несколько выше кружка пионеров тут обсуждать не стоит. :)
АРМ стенда онлайн: http://scada.kontar.ru Пользователь: Электротранспорт, Пароль: 111111

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

Яков93

[user]Кass[/user], в чем вопросы-то? Прикрутить модбас к ардуино? Да вроде делают так люди, Сорока Вам даже ссылки дал. Читайте, прикручивайте, потом о своем опыте расскажете.

Leprechaun

Цитата: Кass от 06 Дек. 2017 в 20:20
В общем понятно, что модбас и другие вопросы, которые требуют уровня несколько выше кружка пионеров тут обсуждать не стоит. :)
Привет!
А вы не боитесь, что в тех местах где эти вопросы обсуждать "стоит", ответы на ваши посты будут немного грубее? :)

Leprechaun

 [user]Кass[/user], Modbus это протокол коммуникации. Что с чем соединять?! Зачем?! Польза?!  :ah: