Arduino Mega 2560 - как в компараторе заменить отсутствующий AIN0?

Это где Вы такое прочли? :face_with_monocle:

Это я утрировал. Речь о том что реальные возможности периферии МК выходят далеко за рамки Ардуино как идеологии.

Интересно, а как ваше утрирование относится к цитируемому?
Каким боком

относятся к применению имеющегося инструмента согласно конкретной задаче?
Для чего пытаться заменить имеющийся специальный инструмент близким по назначению??
Только потому, что не знаешь, как им правильно воспользоваться!
Это чтО, профессиональный подход к решению проблемы?!
Не говоря уж о советах припаяться к не подключённому выводу МК!
А если к нему внутри ничего не подключено? Производитель, наверное, не просто так - от лени - его не задействовал.

Давайте я тоже “поутрирую”…
Например, каким паяльником вы предпочтёте паять SMD микросхему, имея в наличии два исправных паяльника - 60-ваттный, и 25-ваттный?
Только вот у 25-ваттного надо немного подправить подгоревшее жало. А вы не знаете, как это правильно сделать.
Неужели будете выпендриваться с 60-ваттным? :wink:

Вот и в рассматриваемом случае, достаточно было всего-лишь “подправить подгоревшее жало”.

P.S. Во всём обсуждении единственный дельный совет прозвучал только от Upper.
Уж извините за резкость, но все остальные советы - “диванноэкспертная демагогия” чистой воды!
ИМХО…

P.P.S. Просьба к модератору - закройте, пожалуйста, тему, дабы избежать соблазна пофлудить в дальнейшем.

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

Это шутка юмора такая, или серъёзно?
Если не шутка, изобразить в коде можете?

Волшебный BOD поможет …

“Это не шутка.” Зависит от кол-ва сохраняемых данных и периодичности.

Да неужели?!
И как BOD БЕЗ физического подключения отследит начало пропадания питания в точке “+12V”??
Именно “начало”, т.е. падение напряжения ниже критической точки, 9V например.
Для того, чтобы процессор остановил ВСЕ работающие в данный момент задачи, считал необходимые данные и записал их в EEPROM.
Всё это надо сделать, естественно, работая на заряде конденсатора, подключенному к пину 5V.

Не 12в,но напряжение питания 5в можно. Скажем при просадке до 4.8в . Останется ещё куча времени чтобы всё сохранить. Для одних это магия,для других просто знания.
@Komandir ,не, BOD тупо отключает МК. Нам же надо чтоб ещё работал до последнего после просадки.

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

Родное сердце! У тебя очень плохо построен проект целиком. Процитированное - какой-то бред воспалённый.

Именно так и сделано. На схему в начале темы взгляните.
Никаких умных извращений типа BOD, или ловли блох в 0,2V на пине питания.
Те же “два резистора”.
Только подключенные не к аналоговому пину, или тем более - к цифровому с неизвестным порогом и гистерезисом, а ко входу нормального штатного компаратора.
Который и стартует “аварийное” прерывание.
В чём разница?

Критикуешь – предлагай! :wink:

Зачем нужен порог, если при пропадании питания на делителе 0V?

Начнём с того, что проект управляет работой шаговых двигателей, где позиция выходного вала имеет решающее значение.
Датчиков положения вала нет, позиция вычисляется по кол-ву шагов.
Так вот, 12V являются одновременно питанием ШД.
И 0V там будет только при полном разряде всех конденсаторов БП.
Для этого потребуется определённое время, которое крайне не желательно терять.
Т.к. за время разряда конденсатора до “0”, собственно ШД уже остановится, а его драйвер успеет “насчитать” энное “левое” кол-во шагов.
Которое будет записано в EEPROM.
Т.о. увеличивается шанс получить бОльшую ошибку в позиции останова ШД при восстановлении питания.
Поэтому и важно при снижении напряжения до некой критической отметки, остановить ШД на ещё известной позиции и сохранить её в EEPROM.
Не дожидаясь неконтролируемого останова по “0” питания.

P.S. Блин! Ну вот никак не пойму, чем всех не устраивает это решение?
Причём работающее ! Вся проблема была в корректном “переезде” с Нано на Мега.

Да. Программирование стоит на парадигме: “Работает - не трогай”, но ты уже “тронул”, заменив МК. И проявилось неграмотное проектирование устройства.
Я поясню: для аварийной остановки нужно предусмотреть РАССЧИТАННЫЙ по емкости и потребности ионистор. Всё. Точка. Иных решений быть не должно. Иное - глупый и исполненный самонадеянности колхоз!

1 лайк

Наконец мы услышали задачу целиком. В таком случае ответ был дан ещё в начале: использовать второй вход компаратора или любой другой вывод с PCINT. Фсё.

Да просто интересно из-за чего сыр-бор. Мало ли - с подобной ситуацией придётся столкнуться.

С ШД под нагрузкой, конечно, без обратной связи все эти замеры напряжения так себе гарантия записи корректной позиции, которую при старте лучше бы через home point перекалибровать. Но, дело ваше.

Кстати, крайне важный нюанс! Если ШД работают на микрошаге, то вообще всё это бесполезно. ШД при снятии напряжения встаёт на ближайший зубец. Таким образом при физическом шаге 1.8° погрешность будет 0.9°. Если не устраивает, то только энкодер.

Причём - абсолютный.

1 лайк