#151 Re: Проекти » Опережение зажигания на ардуино » 2018-03-19 17:58:30

Batu пише:

Т.е. вычисляется интервал времени от зажигания до момента взрыва при котором поршень окажется в оптимальном положении. Этот интервал времени зависит линейно от угловой скорости вала.

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

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

#152 Re: Проекти » Опережение зажигания на ардуино » 2018-03-19 15:02:01

По порядку:

Figaro 77 пише:

картинки были взяты с проверенных источников.

Когда любой источник называют проверенным - то указывают его URL. Чтобы всяк могу собственноручно убедиться в его компетентности ... или не ...
Потому как на мусорке Интернет последние лет 10 слабоадекватные персонажи повсеместно описывают и вечные двигатели и вечную жизнь hmm

Figaro 77 пише:

я описал то как зажигания двигателя (в частности 157QMJ) устроено с завода. и потому сто это очень примитивная и не точная система хочу её оптимизировать. хочу эту систему переделать.

В принципе, очень похвальное намерение.
Но при этом нужно держать в уме, что примитивные заводские схемы перед выпуском проверяются 1000001 раз и в не очень примитивных технических лабораториях.
(я знаю, на примере систем управления турбинами для электростанций - когда-то работал в этой области - что Siemens при отработке и испытаниях своей системы управления пуском и остановом угробили 5 турбин стоимостью порядка $1 млн. ... не жалко было)

Figaro 77 пише:

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

В принципе, лет 20 назад у меня был карбюраторный автомобиль, с микропроцессорным контроллером от Bosch, который в точности этим занимался.

Figaro 77 пише:

схему работы я знаю, понимаю. просто как это прописать на C++ не знаю.

Как раз из всех остальных аспектов такой работы - это самая простая составная часть.

#153 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 12:49:31

Olej пише:

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

Есть вот такая библиотека Arduino-SevenSegmentDisplay:

It is 7-segment display library for Arduino.
- Drive one or more digits.
- Both common anode and common cathode are supported.
- Display one digit in static mode.
- Display 2 or more digits in dynamical mode.
- Only support to display positive integer and float number.

Посмотрите.
Может это и всё что вам надо...

P.S.
- библиотеке этой 6 лет от роду ... но вряд ли в этой области что-то меняется;
- библиотека написана сложно, настоящий C++ с использованием template<...> - что-то там подправить у вас вряд ли получится (разве что испортить big_smile ), но там придано много примеров использования, в частности TriDigit.ino

#154 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 12:32:06

Olej пише:

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

С другой стороны, уровень профессионализма, квалификации, программистской культуры в сообществе Arduino ... ну, чуть-чуть, может, и повыше плинтуса будет. Это и нормально, в общем, в сообществе самоделкиных и радиолюбителей ... и то хорошо!

P.S. Хотя по форумам и сообществам Arduino есть единичные участники, отличающиеся очень хорошим уровнем и пониманием предмета. Мне (по опыту знакомства и участия в программистских разных сообществах, в разное время за много лет) очень удивительно, необъяснимо для себя, то размежевание ... общий уровень "около плинтуса" + отдельные профессионалы очень хорошего уровня - и всё это при полном отсутствии промежуточного уровня ... "среднего класса". neutral 

Поэтому здесь даже среди представленных для общего использования библиотек многое сделано далеко не лучшим образом. И к ним нужно относиться тоже изрядно критически. Как вариант: изучать код, который представляется в библиотеках, и использовать его "по мотивам", но не использовать готовые библиотеки as is ... по крайней мере, когда глядя на них возникают сомнения.

#155 Re: Проекти » Симулятор Arduino » 2018-03-19 11:38:45

Olej пише:

Иногда, когда нет под рукой живого Arduino, это быстрый способ набросать проект. А иногда это - более быстрый способ отмакетировать проект, чем собирать его на проводах на макетке.

Это и вправду иногда самый быстрый способ что-то попробовать в действии...

Но!
Первое найденное мной существенное отличие Arduino Tinkercad и Arduino IDE на реальном Arduino:

- Arduino IDE построен и работает в кодировке UTF-8, представляющей UNICODE, и библиотекой Serial получает/передаёт русский текст корректно (по крайней мере без ошибок отображения в последних версиях, от 1.8.5 - см. Arduino + Processing).

- не знаю в какой кодировке написан редактор кода Arduino Tinkercad (и это невозможно, пожалуй, установить), но он начисто перевирает многобайтные коды UTF-8, оставляя от них 1 байт (какой не знаю), тем самым перевирая начисто такие сообщения.

#156 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 10:16:33

robber пише:

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

У меня вскорости будет стоять такая же задача ... только мои 7-сегментный индикаторы пока ещё только едут с алиэкспресс ... а дорога там не короткая big_smile - проверяться не на чем.
Но по такому случаю я могу вам помочь, в общей части, естественно, а не в деталях как вам там оно надо будет - себе адаптируете уже как вам надо будет.

#157 Re: Проекти » Опережение зажигания на ардуино » 2018-03-19 09:47:47

Figaro 77 пише:

Программирование Ардуино я начал изучать только несколько дней назад big_smile

Если двигатель при отладке Arduino разнести в драбадан не страшно - вперёд! roll

Figaro 77 пише:

Народ, кому эта тема интересна помогите кто чем может smile

А чем "народ" может здесь помочь "кто чем может"? "Христа ради"? Датчик Хола прислать? lol
Если конкретные вопросы будут - спрашивайте.
Задача то, по сути своей (с программистской точки зрения) пустяшная.

#158 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 00:31:49

Olej пише:

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

Это настолько частая и даже тривиальная задача, что описаний её решений - море...
Вот, например:
- это пЫанЭрский вариант ... но вполне может быть: Семисегментный 3-х разрядный индикатор;
- а это вот - экономный вариант с минимальным задействованием выходов Arduino: Вывод информации на 4 разрядный 7сегментный индикатор при помощи двух 74hc595.
Вот любопытная основа, для начала (как код это - ахинея, а как исходная отправная точка - нормально):
4 разрядный 7 сегментный индикатор
4х разрядный 7-сегментный индикатор нужен драйвер
А вот здесь вам главная идея как управлять 7-сегментным индикатором - Семисегментный индикатор. Теория управления

300px-7_segment_display_labeled.svg.png

#159 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 00:21:18

robber пише:

Я имел в виду вот такую схему подключения,

Вывод на 7-сегментный индикатор числа, выраженного как символ ('0', '1', '2', ... '9') труда не представляет - я бы делал именно так, именно из символьного представления, это сильно упростит вам отладку, а о какой-то гипотетически-фиктивной "производительности" при простоте вашей задачи беспокоиться нечего.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.

#160 Re: Програмування Arduino » помогите понять протокол » 2018-03-19 00:09:14

robber пише:

Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания

По такой схеме (я её так и предполагал) вам требуется 12 управляемых выходов Arduino, из всех 14 доступных (как я понимаю).
Чего то особенно сложного в такой индикации нет ... кроме того, что для начала, "чтобы не видеть мерцания" -  вы должны оценить инерционность своего индикатора, и то, на какой минимальной частоте повторения вы ещё не будете видеть мерцания при скважности 3.

Я бы сильно советовал (я бы так делал) просто написать отдельный программный пример (который потом выбросить big_smile ) который бы просто поджигал 1 из индикаторов, пусть все его сегменты ... и смотрел (меняя частоту loop в коде) когда индикатор начнёт мерцать.
Начинающие писать программные коды (не важно для какой аппаратуры и каких целей!) обычно норовят сразу писать конечную программу, рассчитывая что "там приложится" - там всё отладят и проверят, но как оказывается, отладить всё в комплексе оказывается бесконечным занятием ... В знаменитой книжке "Мифический человеко-месяц" Дж.Брукс мл. называет это "асфальтовая топь".

#161 Re: Програмування Arduino » помогите понять протокол » 2018-03-18 22:29:20

robber пише:
Olej пише:
robber пише:

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно big_smile

У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру,

Продолжаем... выпытывать по крохам, как в гестапо у партизана hmm
Согласитесь, что 3 7-ми сегментных индикатора - это не совсем то, что 3 сегмента.
Только совсем уж "напрямую" они не могут быть подключены, напрямую там получается 3х7=21 выходов ... у Arduino стольки нет sad
И не стоит ли рассмотреть возможность использовать дополнительный промежуточный шилд? ... это я так, на вскидку спрашиваю, разбиравшись недавно с индикатором 1602 подключаемым через I2C шину. 

robber пише:

получаю данные я из сериал порта от ПК, используется динамическая индикация, написать библиотеку динамической индикации я смог а вот выводить нужные мне данные я не как не могу, и не могу понять как мне это сделать

Что вы называете "динамическая индикация"? ... может в вашей проф. среде это и строго определённый термин, но я могу под этим подразумевать очень разные вещи.

#162 Re: Програмування Arduino » помогите понять протокол » 2018-03-18 21:26:37

robber пише:

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно big_smile

"Извне" это по какому интерфейсу вы их получаете? Serial?

Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных sad

Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:

1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).

2. Полученные в предыдущей задаче байты данных отображать на индикатор ... с которым пока совершенно непонятно что там за индикатор.

#163 Re: Програмування Arduino » помогите понять протокол » 2018-03-18 20:07:43

robber пише:

Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,
...
вот данный протокол

Управление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:

Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:

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

Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);

Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?

#164 Re: Програмування Arduino » помогите понять протокол » 2018-03-18 12:37:44

Olej пише:

Я вам давно уже показал ваше решение в 3 строчки, на другом форуме: http://arduino.ru/forum/programmirovanie/pomogite-s-protokolom-0#comment-352616
Заранее ПОЖАЛУЙСТА  big_smile

О-ба-на...
Там пацаны по убогости своей так берегут свою возможность срубить 3 копейки "с лоха" - что удалили написанное решениеbig_smile  lol

#165 Re: Програмування Arduino » помогите с записью на EEPROM » 2018-03-18 12:30:46

Ru пише:

пожалуйста помогите прописать на EPPROM

У вас переменные - типов int.
Не используйте EEPROM.read() и EEPROM.write() функции - эти функции работают с 1-байтовыми переменными.
Используйте EEPROM.get() и EEPROM.put() - в отличие от выше названных, это не функции, а макросы, и они определяют размер тех типов переменных, которые вы хотите читать/писать.

#166 Re: Проекти » Гусеничная платформа » 2018-03-18 11:55:51

AlexT пише:

Собираю гусеничную платформу. Нужна помощь с кодом для H-моста IBT-2. По ссылке код для одного мотора нужно от одной ардуины крутить 2 мотора. Кто готов помочь за вознаграждение или бартер буду очень благодарен.

Если у вас конкретные вопросы, сложности по программному коду - спрашивайте. Можно обсудить и выработать возможные варианты.
А участвовать непосредственно в таком очень громоздком, но не сильно интересном проекте вряд ли кто прельстится?
Или это детальное описание проекта - только для громкого пиара? wink

#167 Re: Проекти » Гусеничная платформа » 2018-03-18 11:49:33

AlexT пише:

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

Это, наверное, на Козьем Болоте ... среди бушующих страстей "революции гидности"? lol  roll

#168 Re: Програмування Arduino » а какую версию вы используете? » 2018-03-18 01:50:20

В Linux можно вообще со всем этим работать пользуясь только консольными утилитами Linux. без любых промежуточных приложений.
По крайней мере, это очень полезно для тестирования при непонятных нарушениях работоспособности!
И таким образом убеждаемся, что UTF-8 передаётся в оба конца без искажений ... даже в очень давних версиях, там где монитор порта глючит:
- в один терминал (вкладку) пишем
file.php?id=2897&t=1
- из другого терминала (вкладки) в это время читаем:
file.php?id=2898&t=1
Как вы понимаете (кто понимает big_smile ), это прямой путь взаимодействовать с Arduino из своего собственного кода на хост-машине, на чем угодно: C/C++, Python, ... bash

#169 Re: Апаратні питання » Старшие модели » 2018-03-17 23:20:31

Green пише:

так сразу

Клуб "Кому за 60"

Green пише:

И действительно, ведь было же время!!!)

И фуй стоял и девки давали. lol

#170 Re: Програмування Arduino » помогите с записью на EEPROM » 2018-03-17 23:05:33

Вячеслав Азаров пише:

Например, внезапное отключение питания или рестарт микропроцессора может привести, так же, и к прекращению программирования EEPROM. В результате чего записываемое число может оказаться неверным. И т. п.

Такое может быть (с исчерпывающе малой вероятностью), но, если требуется экстремальная надёжность, такие вещи блокируются тем, что называется обменной буферизацией:
- имеете 2 копии данных data[ 2 ] (где data - произвольная структура данных, любой размерности)
- и индикатор-указатель-индекс i = 0/1;
- при обновлении обновляете экземпляр data[ не i ]
- и только проверив, что запись и обновление успешны, меняете i = !i

#171 Re: Програмування Arduino » а какую версию вы используете? » 2018-03-17 21:18:14

Olej пише:

... Arduino IDE работает (и редактирует код) в кодировке UTF-8. Это очень здорово - это современно, прозрачно-переносимо и т.д. Это UNICODE, а всё, что связано с кодовыми страницами - это даже не вчерашний, а позавчерашний день.

Но это может создавать большие проблемы пользователям Arduino IDE в Windows - Windows до сегодня живёт в представлениях "кодовых страниц": CP-1251, CP-866 и т.д.
Это приведёт к тому, что правильно передаваемые (без искажений) строки в UTF-8 будут отображаться "краказябрами" в окне монитора порта (последовательного).
Как победить? (по Интеернет задают такой вопрос многочисленно)
Надо разбираться ... у меня нет Windows под рукой...
Как вариант, использовать другой, внешний монитор последовательного порта. Как один (но наверняка не единственный) из вариантов может использоваться штатный монитор сериального порта (не только его, но и любых последовательных сетевых протоколов), во всех существующих операционных системах, допускающий настройку отображения во всех мыслимых в природе кодировках для отображения - это любимый виндовуз-юзерами Putty:
file.php?id=2894

#172 Re: Програмування Arduino » а какую версию вы используете? » 2018-03-17 21:04:36

Green пише:

Я человеку делал проект с несколькими ино файлами. У меня на 1.6.5 и 1.8.5 всё собиралось без проблем. У него же, на 1.6.0 были дурацкие ошибки при сборке...

Это вы потребовали совместимости "сверху-вниз": 1.6.5/1.8.5 => 1.6.0
Такого не гарантирует ни один язык программирования, и ни одна операционная система, ... такого просто не бывает в природе.
Совместимость "снизу-вверх" должна, бы, в принципе, соблюдаться всегда и на 100% ... но бывают и редкие нарушения.

#173 Re: Програмування Arduino » а какую версию вы используете? » 2018-03-17 19:38:13

Olej пише:

Передача и приём данных через UTF-8 идёт (по данным) корректно изначально и всегда ... но в предыдущих версиях IDE в системном мониторе ихнем иногда искажается отображение русских UTF-символов.

А вот в 1.8.5 всё работает корректно!
mini_a3.png

#174 Re: Програмування Arduino » а какую версию вы используете? » 2018-03-17 19:26:59

Olej пише:

Интересует то, какие глюки и неудобства наблюдаются в той или иной версии?

Я вот знаю такой глюк:

... Arduino IDE работает (и редактирует код) в кодировке UTF-8. Это очень здорово - это современно, прозрачно-переносимо и т.д. Это UNICODE, а всё, что связано с кодовыми страницами - это даже не вчерашний, а позавчерашний день.

Но!
Передача и приём данных через UTF-8 идёт (по данным) корректно изначально и всегда ... но в предыдущих версиях IDE в системном мониторе ихнем иногда искажается отображение русских UTF-символов.
file.php?id=2891
На рисунке показана работа скетча Arduino, который читает строку через /dev/ttyUSB* и ретранслирует её обратно в /dev/ttyUSB*.
Передача из Arduino делается 3-мя разными (эквивалентными) способами: printf(), Serial.println() и посимвольно Serial.prin().
Видно, что отображается иногда с искажениям, но передаётся в обе стороны корректно ... в начале строки указано число байт - это не число символов - хорошо отслеживается на разного содержания строках соотношение байт на символ в UTF-8.

#175 Програмування Arduino » а какую версию вы используете? » 2018-03-17 19:19:52

Olej
відповідей: 7

Имею в виду: какую версию Arduino IDE вы используете?

Интересует то, какие глюки и неудобства наблюдаются в той или иной версии?

Підвал форуму