Микроконтроллер гибче и дешевле, но требует умения программировать и всякие там программаторы и среды разработки. На счётчиках менее гибко, значительно ограниченно по функционалу, дороже. Но не требует умения программировать и дополнительных инструментов.
Оптимальным может быть вариант с Ардуино - среда разработки бесплатна, большое сообщество, наверняка помогут, а может уже есть программка, программатор не требуется.
Добавлено after 2 minutes 46 seconds: Кстати, при определённом характере импульсов это можно сделать аналоговым: на конденсаторе и компараторе.
Здравствуйте снова. Можно уточнить про Ардуино? Скажем, есть плата УНО. Пишется скетч, который будет обрабатывать импульсы- согласно условию ТС в первом посте. Допустим все работает как должно. А дальше- как? Микросхема микроконтроллера вынимается из слота Ардуины и переставляется на подготовленную плату собственно счетчика импульсов и там работает? Либо это я нафантазировал, и Ардуинка сможет работать только в составе платы УНО?
... Здравствуйте снова. Можно уточнить про Ардуино? Скажем, есть плата УНО. Пишется скетч, который будет обрабатывать импульсы- согласно условию ТС в первом посте. Допустим все работает как должно. А дальше- как? Микросхема микроконтроллера вынимается из слота Ардуины и переставляется на подготовленную плату собственно счетчика импульсов и там работает? Либо это я нафантазировал, и Ардуинка сможет работать только в составе платы УНО?
Для "прикладных" применений существуют платки ардуино-нано и/или более практичная (но без дополнительной микросхемы моста usb - com) ардуино про мини. https://img.radiokot.ru/files/20529/3gqj8doppv.jpg Обе платки выполнены в варианте DIP микросборки и по функционалу аналогичны ардуино уно. Симулятор для ардуино уно ( и внешней обвязки) можно взять тут https://sunduk.radiokot.ru/view/?id=1687945564
... Здравствуйте снова. Можно уточнить про Ардуино? Скажем, есть плата УНО. Пишется скетч, который будет обрабатывать импульсы- согласно условию ТС в первом посте. Допустим все работает как должно. А дальше- как? Микросхема микроконтроллера вынимается из слота Ардуины и переставляется на подготовленную плату собственно счетчика импульсов и там работает? Либо это я нафантазировал, и Ардуинка сможет работать только в составе платы УНО?
Для "прикладных" применений существуют платки ардуино-нано и/или более практичная (но без дополнительной микросхемы моста usb - com) ардуино про мини. https://img.radiokot.ru/files/20529/3gqj8doppv.jpg Обе платки выполнены в варианте DIP микросборки и по функционалу аналогичны ардуино уно. Симулятор для ардуино уно ( и внешней обвязки) можно взять тут https://sunduk.radiokot.ru/view/?id=1687945564
Пытаюсь принцип уловить. Пока туго. То есть, для прикладных задач обязательно использовать платки нано или мини? А, например, залив в платку УНО скетч, отвечающий моим задачам, я МОГУ вытащить из колодки Атмегу, разместить ее на самодельной плате, организовать там Атмеге питание 5 и 3,3 в, RC- генератор, подключить входы и выходы и использовать по задуманному? В процессе работы устройства мне совершенно не нужно подключаться к нему по ЮСБ или что-то с ним делать.
П.С. НЕ отвечайте! Увидел Ваш ответ в другой теме. Спасибо. Все теперь понятно.
Микросхема микроконтроллера вынимается из слота Ардуины и переставляется на подготовленную плату собственно счетчика импульсов и там работает?
Если есть желание, можно и так. После прошивки, МК становится самостоятельным устройством и ему без разницы в какой плате от установлен для выполнения вложенного алгоритма работы. Главное чтобы обвязка МК была организована правильно. Плата УНО (которая с двумя МК и ДИП панелькой для второго МК, как у вас) хороша тем, что на ней уже имеется программатор на первом МК, который имеет свой SPI разъём. Который позволяет прошивать МК без установленного загрузчика. Так как у второго МК, тоже есть SPI разъём. То есть два SPI разъёма на шильде. Если у вас есть два МК (мега) и данный шильд УНО, и это разовое изделие, то наверное для вас, чтобы более не тратится будет целесообразно использовать эти меги для задуманного таймера. В остальных же случаях, это крайне не рентабельно использовать мегу в том устройстве, где и тини13 как бы тоже избыточна, так как программа занимает не более 20% памяти МК. Но как говорится, хозяин барин. Хотя на фоне СТМ32, как вам предлагали в параллельной ветке использовать в место меги для данного устройства, то да выбор в пользу меги наверное правильный. Хотя некоторые с этим и не согласятся, так как всё что сделано на СТМ32 (в их понимании), это в ногу со временем, а всё остальное отстой не зависимо от избыточности СТМ в данном варианте.
Микросхема микроконтроллера вынимается из слота Ардуины и переставляется на подготовленную плату собственно счетчика импульсов и там работает?
Если есть желание, можно и так. После прошивки, МК становится самостоятельным устройством и ему без разницы в какой плате от установлен для выполнения вложенного алгоритма работы. Главное чтобы обвязка МК была организована правильно. Плата УНО (которая с двумя МК и ДИП панелькой для второго МК, как у вас) хороша тем, что на ней уже имеется программатор на первом МК, который имеет свой SPI разъём. Который позволяет прошивать МК без установленного загрузчика. Так как у второго МК, тоже есть SPI разъём. То есть два SPI разъёма на шильде. Если у вас есть два МК (мега) и данный шильд УНО, и это разовое изделие, то наверное для вас, чтобы более не тратится будет целесообразно использовать эти меги для задуманного таймера. В остальных же случаях, это крайне не рентабельно использовать мегу в том устройстве, где и тини13 как бы тоже избыточна, так как программа занимает не более 20% памяти МК. Но как говорится, хозяин барин. Хотя на фоне СТМ32, как вам предлагали в параллельной ветке использовать в место меги для данного устройства, то да выбор в пользу меги наверное правильный. Хотя некоторые с этим и не согласятся, так как всё что сделано на СТМ32 (в их понимании), это в ногу со временем, а всё остальное отстой не зависимо от избыточности СТМ в данном варианте.
ЗЫ. Не понятно, что не устроило в тини13...
Вот тут было интересно: "...Плата УНО (которая с двумя МК и ДИП панелькой для второго МК, как у вас)...". На моей плате всего одна панелька и м\с усб. Других МК на ней нет. Наверное это неправильная УНО. Rev.3
Почему не устроило? Тут немного иное. На тини13- это самое простое и лаконичное решение, которое я когда-либо видел вообще. Но без исходников , иными словами- без понимания как оно работает- не совсем то. При этом, я понимаю, что интеллектуальной собственностью разбрасываться не принято. Поэтому обдумываю разные варианты. Варианты на логике- я их два уже отсимулировал- на ИЕ10 и на ИЕ16. На 10- все неплохо, но корпусов будет 4, а на 16- всего 2 корпуса, но не могу победить "подачу импульса сброса на счетчик при подаче питания". Есть интересные м\с MAX809, но в симуляторе их нет. НАдо брать и в реальности собирать макетку. НЕт времени за ними поехать, а заказывать на ОЗОН- там дюжинами только высылают.
П.С. А, нет! Вы снова правы. На моей УНО два МК. Я, ошибочно принял маленький ATmega16U2 - за микросхему отвечающую за порт УСБ. Надо же...
Но без исходников , иными словами- без понимания как оно работает- не совсем то.
Исходник помогает только в том случае, когда ТС тоже знает язык программирования на котором написан исходник. Во всех остальных случаях, исходник бесполезен от слова совсем. Потому как не сможете ничего там понять без знаний данного языка. В 95% случаях исходники не нужны, если они работают как требуется. "Вам шашечки или ехать…" Если вы хотите написать исключительно свой вариант в среде ардуино, то на словах я могу вам рассказать свой алгоритм работы (он простой как гвоздь) и если он вас устроит, то подобное попытаетесь реализовать в среде ардуино. Наверняка данная среда позволяет написать код и для тини13. А так как у вас есть шильд УНО, то с помощью встроенного на нём программатора, вы сможете через разъём SPI (данного программатора) загрузить программу и в тини13.
ЗЫ. Посмотрите в моём профиле на каком языке я пишу и если он вам известен, то дам вам и исходник. Но как мне кажется он вам будет совершенно бесполезен, так как ваш алгоритм очень прост и написать его с нуля может любой знающий внутреннюю структуру данного МК. А если вы с МК не знакомы, то только лишь знания языка программирования не поможет вам написать нужный код.
Последний раз редактировалось VNS Ср апр 30, 2025 16:54:58, всего редактировалось 1 раз.
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
Не совсем так. Исходник помогает, если человек тоже программист. Язык не так важен, просто повлияет на время, необходимое для понимания. А если исходник без комментариев, то вообще пофиг, программист человек или нет
К вопросу "что удачнее" положил тут свой "примитив-набросок" под нанку: viewtopic.php?p=4710626#p4710626 приходите помурлычим...
Изучил. Интересно. Второй вариант у Вас уже более 2кБ весит. И входы подтянуты к +, а вот тут есть ньюансы. Но я по порядку.
Тут, в процессе погружения в тему произошли некоторые уточнения.
Я, таки, приобрел осциллоскоп и, пожалуй впервые в Истории провел измерения параметров сигнала от датчика скорости. Нигде в Интернет, я не нашел подобной информации- наверное по причине ее невостребованности, однако стало обидно- в сети валяется куча разного невостребованного, а вот именно "никому ненужных" сигналов от Датч Скор- как раз и не было.
По результатам... Импульсы: положительные, меандр, амплитудой 10,8 в, скважность 50%, частота следования на скорости 20 км\час- 26,6 Гц Примерно 4800 имп на километр пути, а не 6000- как думалось вначале.
Попытка построить на логике "счетчик 27-ми импульсов в сек." провалилась, и окончательно вывела меня из себя. Ранее, я без особого труда собрал на двух м\сх счетчик на 32 импульса в сек. и считал, что неплохо справился, но в связи с новыми данными я решил пойти "на принцип" и в итоге сдулся.
В связи с чем уселся читать "про Ардуину" и изучать чужой опыт. Итогом моих сидений стала модернизация под мои нужды чужого кода, какого-то "измерителя частоты оборотов вала", с выводом информации в последовательный порт, в виде текста , типо "хх Гц", где хх- текущее значение оборотов.
Я отсек лишнее, добавил условный оператор, и вывел в порт сигнал превышения установленного порога частоты импульсов.
Далее я залил это в УНО, подключил на выход светодиод, а на вход подал меандр с генератора и провел испытание на натуре. При достижении частоты 27 Гц и более- зажигался диод, и потухал при снижении частоты менее 27 гц. Шаг генератора- 1 Гц. Крутил генератор до 2 кГц, дальше просто поленился. Собственно код.
Спойлер
Код:
// Счетчик "количества импульсов в секунду" // Вывод лог.1 в порт при достижении установленного порога // Входной пин подтянуть к земле резистором 30 кОм
#define SENSOR_PIN 2 // входной пин #define SL_PIN 4 // выходной пин #define MEAS_TIME 1e3 // время подсчёта импульсов- мсек
В общем и целом, получилось шикарнее чем планировалось, все отлично и можно ваять в железе, но... тут меня посетила новая идея!!!
Запихнуть этот код в 1376 байт- в Аттини85. Наверняка профи могли бы ужать код до впихиваемости в Аттини 13, но мне сие не по силам. Всем Спасибо за помошь, подсказки, участие и коды.
Поправил прошивку для новых требований по частоте. Теперь если частота на входе выше 27 Гц, то на выходе лог. 1. Если на входе ниже 27 Гц, то на выходе лог. 0. Поправил и проверочный генератор под новые реалии. Если вывод РВ0 не замкнут на общий, то на выходе генератора частота в районе 27,4 Гц…28,4 Гц. Если вывод РВ0 замкнуть на общий, то на выходе генератора будет частота в районе 25,4 Гц…26,4 Гц. Таким образом данным генератором можно проверить работу выполнения алгоритма без внешнего генератора. Прошивка:
Вложение:
Count.hex
Тактирование на заводских установках (1,2 МГц). Схема (схема изменена и не соответствует предыдущей): Спойлер
Схема (схема изменена и не соответствует предыдущей)...
Круто. Есть уточнение. Оптопары представляются лишними. Нет данных какой "мощности" сигнал меандра на входе. Может "на той" стороне уже стоит резистор на 100к и опта просто не зажгется. Делитель напряжения, обычный, на мой взгляд- было бы достаточно и универсально, и легко подстроить. На выходе оптопара- тоже, достаточно ограничить выходной ток до значения тока порта. Но это я применительно к своим задачам, а в Вашем варианте- это автономное устройство, которое можно куда угодно применять. Отличное решение.
... В общем и целом, получилось шикарнее чем планировалось, все отлично и можно ваять в железе, но... тут меня посетила новая идея!!!
Запихнуть этот код в 1376 байт- в Аттини85. Наверняка профи могли бы ужать код до впихиваемости в Аттини 13, но мне сие не по силам. Всем Спасибо за помошь, подсказки, участие и коды.
Далее изучаю чужой опыт.
Так в ардуино в том особых проблем вроде нету... Добавляем в IDE платформу MicroCore от MCUdude (она для аттини13/13А) текущая версия 2.5.1 ( https://github.com/MCUdude/MicroCore ) Делаем самостоятельно платку и таки придется еще программатор "arduinoISP" согласно примеру из базового комплекта IDE из нанки сделать - он и в других случаях может пригодиться. Далее после дополнительных настроек платформы - в графе программатор установить "arduino as ISP" и соответственно "no bootloader" закрываем IDE подсоединяем сначала нанку-программатор, а к ней свою платку по ISP (согласно описаний в примере по изготовлению программатора изх нанаки) запускаем IDE, выполняем компиляцию и жмем "скетч -> загрузить через программатор" В принципе практически весь возможный комплект АВРок для ардуиноIDEотдельными платформами представлен. А относительно скотча - ограничения только на размер занимаемого ПЗУ и соответствие выбранных выводов платформ в исходном и конечном вариантах. Вот кстати отчет компиляции для Вашего примера и вышеуказанной платформы:
Код:
"Скетч использует 448 байт (43%) памяти устройства. Всего доступно 1024 байт. Глобальные переменные используют 6 байт (9%) динамической памяти, оставляя 58 байт для локальных переменных. Максимум: 64 байт."
Оптопары представляются лишними. Нет данных какой "мощности" сигнал меандра на входе. Может "на той" стороне уже стоит резистор на 100к и опта просто не зажгется.
Это легко проверить… подключите светодиод с резистором к данному сигналу и сразу будет видно, будет работать оптопара или нет.
Цитата:
Делитель напряжения, обычный, на мой взгляд- было бы достаточно и универсально, и легко подстроить.
Как будет угодно, решение принимаете вы. На мой взгляд оптопара надёжней…
Цитата:
На выходе оптопара- тоже, достаточно ограничить выходной ток до значения тока порта.
Я же не знаю чем вы будете управлять, потому решил, что оптопара подойдёт для любого варианта. А вы уже сами решайте, что вам ближе и лучше.
Главное во всём этом, это прошивка и если она отрабатывает как нужно, то обвязку можно делать какую угодно на своё предпочтение.
Можно и из UNO сделать - примеры IDE для любого из возможных (Уно/нанка) . Только размеры поменяются. Да и у нанки удобненько сьемную блокировку на штырьки ISP сделать. Нужно как ардуино ISP использовать - загрузил скотч примера и поставил ту "заглушку", надоело - снял и на другую самоделку нанку пустил. Да и в саму платку лезть с проводками не нужно (ежли Уно с запаяной атмегой 328). Все ж там дорожки тоненько-махонькие. Не для всякого паяльщика...
... В общем и целом, получилось шикарнее чем планировалось, все отлично и можно ваять в железе, но... тут меня посетила новая идея!!!
Запихнуть этот код в 1376 байт- в Аттини85. Наверняка профи могли бы ужать код до впихиваемости в Аттини 13, но мне сие не по силам. Всем Спасибо за помошь, подсказки, участие и коды.
Далее изучаю чужой опыт.
Так в ардуино в том особых проблем вроде нету... Добавляем в IDE платформу MicroCore от MCUdude (она для аттини13/13А) текущая версия 2.5.1 ( https://github.com/MCUdude/MicroCore ) Делаем самостоятельно платку и таки придется еще программатор "arduinoISP" согласно примеру из базового комплекта IDE из нанки сделать - он и в других случаях может пригодиться. Далее после дополнительных настроек платформы - в графе программатор установить "arduino as ISP" и соответственно "no bootloader" закрываем IDE подсоединяем сначала нанку-программатор, а к ней свою платку по ISP (согласно описаний в примере по изготовлению программатора изх нанаки) запускаем IDE, выполняем компиляцию и жмем "скетч -> загрузить через программатор" В принципе практически весь возможный комплект АВРок для ардуиноIDEотдельными платформами представлен. А относительно скотча - ограничения только на размер занимаемого ПЗУ и соответствие выбранных выводов платформ в исходном и конечном вариантах.
Вот кстати отчет компиляции для Вашего примера и вышеуказанной платформы:
Код:
"Скетч использует 448 байт (43%) памяти устройства. Всего доступно 1024 байт. Глобальные переменные используют 6 байт (9%) динамической памяти, оставляя 58 байт для локальных переменных. Максимум: 64 байт."
А, вот интересно! Получается один и тот же код, для разных МК- имеет разный размер? Как так? За счет чего код под Ат13 получился в 3 раза меньше, чем для Ат328?
Я посчитал, что размер кода- база, которая неизменна, и раскатал губы на Ат85. Установил В Ардуино ИДЕ поддержку Ат85, и собрался шить через УНО- как в сети написано. Жду когда контроллеры подвезут.
Оптопары представляются лишними. Нет данных какой "мощности" сигнал меандра на входе. Может "на той" стороне уже стоит резистор на 100к и опта просто не зажгется.
Это легко проверить… подключите светодиод с резистором к данному сигналу и сразу будет видно, будет работать оптопара или нет. Спойлер
Цитата:
Делитель напряжения, обычный, на мой взгляд- было бы достаточно и универсально, и легко подстроить.
Как будет угодно, решение принимаете вы. На мой взгляд оптопара надёжней…
Цитата:
На выходе оптопара- тоже, достаточно ограничить выходной ток до значения тока порта.
Я же не знаю чем вы будете управлять, потому решил, что оптопара подойдёт для любого варианта. А вы уже сами решайте, что вам ближе и лучше.
Главное во всём этом, это прошивка и если она отрабатывает как нужно, то обвязку можно делать какую угодно на своё предпочтение.
и таки придется еще программатор "arduinoISP" согласно примеру из базового комплекта IDE из нанки сделать
У него есть Arduino_Uno с полноценным программатором, зачем ему ещё один делать...
Да, можно, конечно подключить диод и проверить, тем более провода уже вывел в салоне болтаются, ждут готовое устройство... Там же на этом сигнале еще спидометр автомобиля сидит и еще какая-то приблуда автомобильная. Поэтому, подумалось, что делитель напряжения с током 0,5-1 мА всяко меньше чем ток светодиода...
двойного назначения - может шить через UART, а так же и через разъём SPI. Или это не так? Если не так, то дешевле купить ASP программатор (AVRASP USBASP 2.0) и не изобретать велосипед.
Поэтому, подумалось, что делитель напряжения с током 0,5-1 мА всяко меньше чем ток светодиода...
Вам виднее... но я считал, что машина является "генератором" разного рода импульсных помех, которые сложно отследить. Таким образом делитель хорош тогда, когда входное напряжение не меняется... в общим я не навязываю свою точку зрения, машина ваша и вы делайте как считаете нужным.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения