Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754

Безотказ двух датчиков при неисправности одного

17.07.2025, 09:32. Показов 2489. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здра!
Крутится волчок, на нём шпенёк, который активирует два неподвижных датчика через 180°. Думаю сохранить функционал при выходе из строя одного из датчиков (обрыв или пробой, то есть постоянно лог0 или1 или несвоевременное срабатывание). И так и этак, тьма наворотов, я ещё в середине пути, но начал задумываться, возможно ли это в принципе?
По сигналам датчиков ориентироваться нельзя, таймеры тоже в конце концов от них работают. Невозможно?
Кое-какие варианты можно отследить, но полностью увы?
Если что, это PIC, опрос входов программный. Несколько циклов можно и пропустить.
Миниатюры
Безотказ двух датчиков при неисправности одного  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2025, 09:32
Ответы с готовыми решениями:

Управление заслонкой по данным двух датчиков температуры
Добрый день. Появилась необходимость запрограммировать на ардуино алгоритм "нечёткой логики",...

Прошу помощи в поиске неисправности
Вообщем есть приборчик, перестал включатся, направьте пожалуйста куда посмотреть, что проверить....

Прошу помощи в поиске неисправности
Доброго времени суток, товарищи форумчане. Есть "умный домик" для кошки. Перестал работать...

30
4089 / 2694 / 590
Регистрация: 11.09.2009
Сообщений: 9,609
19.07.2025, 14:56
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от yoric Посмотреть сообщение
0-6000об/мин

16F648 4МГц
То есть один шаг коррекции должен успевать производиться за время 1/(6000/60*360) = 28 мкс = 28 команд.
Ну-ну, бедный yoric. Флаг вам в руки. Надеюсь, хоть на ассемблере пишете?
0
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754
19.07.2025, 16:16  [ТС]
Нет, там не такая система. Зачем каждый градус отслеживать?
Кстати, задал я задание нейро DeepSeek:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Имеем ДВС (двигатель внутреннего сгорания) 2Т 2Ц (двухтактный двухцилиндровый).
 На картере через 180° закреплены две оптопары, а на маховике на радиусе 76мм шторка
 шириной 10мм, которая проходя через оптопары прерывает поток, задний срез шторки в
 ВМТ (верхней мертвой точке) каждого цилиндра, таким образом вырабатывая отрицательные
 импульсы для микроконтроллера.
Оптопары подключены к RA2 RA3, каждая связана со своим выходом RB5 RB6, с которых идёт
 на катушки зажигания для вырабатывания искры.
 
Напиши, пож-ста, программу на ассемблере GPASM для PIC16F627 с комментариями на русском,
 c осмысленными названиями процедур, подпрограмм, имён констант, переменных, регистров,
 ячеек памяти и т.д., которая при поступлении отрицательных импульсов отоптопар на RA2 RA3
 выдаёт на выходы RB5 RB6 (и синхронно с одним из них на RB0 для тахометра) положительный
 сигнал длительностью в четверть периода каждого соответствующего полуоборота с задним
 фронтом (спадом) при оборотах:
 
от 250 до 1200 - совпадает с ВМТ, опережение 0°
от 1200 до 2000 - опережение до ВМТ монотонно возрастает от 0 до 15°
от 2000 до 3000 - опережение до ВМТ монотонно возрастает от 15 до 20°
от 3000 до 4000 - опережение до ВМТ монотонно возрастает от 20 до 23°
от 4000 до 5000 - опережение до ВМТ монотонно возрастает от 23 до 25°
от 5000 до 6000 - опережение до ВМТ монотонно возрастает от 25 до 26°
от 6000 до 6300 - опережение до ВМТ на уровне 26°
более 6300 - опережение падает до 0° (ограничение оборотов)
 
А также, чтобы при пропадании сигнала от любой из оптопар, при выходе её из строя (на выходе
 её лог. 0 или 1), на оставшейся в работе оптопаре можно было работать (сигнал на обоих выходах
 RB5 RB6) как с обеими оптопарами с минимальных оборотов 250 об/мин, и чтобы в этом случае
 опережение падало в 0° после 4000 об/мин и выключался в лог. 0 сигнал тахометра на RB0 для
 сигнализации о неисправности. При пропадании сигнала с оптопар во время работы (не при
 пуске) пропуск не более одной искры.
 
Задействовать WatchDog при зависании программы для пропуска не более одной искры.
 
И чтобы можно было изменить в тексте программы данные для изменения опережения в контрольных
 точках (2000....6300 об/мин).
 
Если не хватает данных или непонятно, спрашивай.
Так оно выдало откровенную чушь, при тыкании носом начало юлить и в конце концов сдулось.
Попросило обращаться с вопросами попроще

На самом деле на высших оборотах шторка пролетает (активный сигнал) за 200мкс (в это время
заряжается таймер измерения полупериода и кое-что вспомогательное), сам полупериод 5мс
(вычисление задержек и опережения и проч), в свободное время скан датчиков. По переднему
фронту пускается таймер измерения полупериода, по заднему таймер задержки (рисунок выше).
На ассемблере, последняя рабочая версия, которая в эмуляторе более-менее работает:
Главное, что вычисления правильно (ну или почти) работают, а датчики победим
Вложения
Тип файла: zip pic-uoz-034-ton2.zip (8.2 Кб, 13 просмотров)
0
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754
19.07.2025, 16:17  [ТС]
Насколько я вычислил, точность по таймерам получается меньше градуса.
И да, данные берутся на основе вычисления из предыдущих циклов. По-моему, вполне достойный алгоритм (для меня, по крайненй мере)
0
4089 / 2694 / 590
Регистрация: 11.09.2009
Сообщений: 9,609
19.07.2025, 19:29
Цитата Сообщение от yoric Посмотреть сообщение
DeepSeek ... выдало откровенную чушь, при тыкании носом начало юлить и в конце концов сдулось.
На сегодняшнем уровне его развития - более чем ожидаемо.

Не по теме:

Тут новость проскочила, что Microsoft уволил 200 программистов, занимавшихся ИИ, и заменил их этим самым же ИИ. Даже не представляю, какие "творения" теперь будут появляться у Микрософта...



Цитата Сообщение от yoric Посмотреть сообщение
Вложения
Тип файла: zip pic-uoz-034-ton2.zip
Файл для какого редактора?
Без перевода строк практически нечитаем.

Цитата Сообщение от yoric Посмотреть сообщение
По переднему фронту пускается таймер измерения полупериода, по заднему таймер задержки
Ну и какой тогда может быть разговор о компенсации пропуска импульсов от датчиков, а тем более об обходе неисправностей одного из них?
Надёжность и стабильность датчиков повышайте. Программно таким способом максимум что можно, - по каким-то признакам определить "неправильность" импульса от датчика и пропустить/'отменить импульс зажигания совсем.
А это вопрос очень спорный, что лучше - пропуск зажигания или зажигание "немножко не в том месте".
0
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754
19.07.2025, 19:41  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
уволил 200 программистов, занимавшихся ИИ, и заменил их этим самым же ИИ
Пилят сук, на котором сидят И не только они сидят

Цитата Сообщение от i8085 Посмотреть сообщение
Файл для какого редактора?
Обычный текст, юниксового типа. Что-то там как раз отличие от DOS-Win в переводе строк. А так?

Цитата Сообщение от i8085 Посмотреть сообщение
какой тогда может быть разговор о компенсации пропуска импульсов от датчиков,
Не компенсации, а исключения неисправного или сбойнувшего и работе от другого.

Цитата Сообщение от i8085 Посмотреть сообщение
по каким-то признакам определить "неправильность" импульса от датчика и пропустить/'отменить импульс зажигания совсем.
При неисправности пропуск сам собой получится, главное вовремя подхватить упавшее знамя.

Цитата Сообщение от i8085 Посмотреть сообщение
что лучше - пропуск зажигания или зажигание "немножко не в том месте"
Ну если немножко только, иначе лучше пропуск.
Вложения
Тип файла: zip pic-uoz-034-dos.zip (8.3 Кб, 6 просмотров)
0
4089 / 2694 / 590
Регистрация: 11.09.2009
Сообщений: 9,609
20.07.2025, 02:23
Цитата Сообщение от yoric Посмотреть сообщение
отличие от DOS-Win в переводе строк. А так?
Так читается.
Сразу бросилось в глаза. Почему здесь вы написали, что у вас 16F648, а в инклюде - p16f627? Они же вроде довольно разные...

Разобраться в подробностях, поверхностно взглянув на текст с такими скудными коментариями, конечно нереально, но принцип вроде уловил.
Честно говоря, не впечатлило.
Временная привязка всего-всего идёт к фронту поступившего снаружи импульса... Не представляю, как сюда можно встроить хоть какую-нибудь обработку "ложных". Ни по каким "вторичным половым признакам" определять, ни что можно сделать. Здесь же просто нет такой информации.

Цитата Сообщение от yoric Посмотреть сообщение
что лучше - пропуск зажигания или зажигание "немножко не в том месте"
Ну если немножко только, иначе лучше пропуск.
Ну, вообще-то из этих двух вариантов лучше третий - многоискровое.
Кстати, при пропуске сигнала с датчика, я бы его и применил.
Но явно не в этой прошивке.

Добавлено
Ещё тут мысль посетила...
Вы упомянули, что в этом мотоциклетном моторе применяете оптические датчики. Раз световой поток перекрывается шторкой, вращающейся на валу, то конструкция датчиков открытая. Может осюда и их дерьмовость?
Я б заменил на что-нибудь более устойчивое к грязи. Магнитные, например. Неодимовые магниты сейчас не дефицит, датчики Холла - тоже...
0
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754
20.07.2025, 15:51  [ТС]
Цитата Сообщение от i8085 Посмотреть сообщение
16F648, а в инклюде - p16f627? Они же вроде довольно разные...
Абсолютно одинаковые, только 648 памяти больше.

Цитата Сообщение от i8085 Посмотреть сообщение
Временная привязка всего-всего идёт к фронту поступившего снаружи импульса.
а откуда ещё брать? Ну можно к заднему фронту ещё. Это если не устанавливать ещё груду датчиков.

Цитата Сообщение от i8085 Посмотреть сообщение
в этом мотоциклетном моторе
Для порядку, мотор лодочный

Цитата Сообщение от i8085 Посмотреть сообщение
конструкция датчиков открытая. Может осюда и их дерьмовость?
Я не говорил про дерьмовость, и они истинно не дерьмовые. Оптопары инфракрасные (или УФ, не помню точно, какие они там бывают, из принтеров), с другой прошивкой работают бесперебойно даже на солнечном свету. Но сдохнуть может всё равно, в неподходящий момент, и далеко от цивилизации. Или морской дьявол провод перегрызёт. Запас надо, понятное дело.

Цитата Сообщение от i8085 Посмотреть сообщение
на что-нибудь более устойчивое к грязи
Нет там грязи, и даже если их маслом закидает, должны работать, бумажка и даже пластик прошивает, только алюминиевая пластинка прерывает.

Цитата Сообщение от i8085 Посмотреть сообщение
Магнитные, например. Неодимовые магниты сейчас не дефицит, датчики Холла - тоже...
Я с этого начинал. В маховик встроенные магниты, которые портят всю малину.
0
Эксперт по электронике
7176 / 3352 / 346
Регистрация: 28.10.2011
Сообщений: 13,208
Записей в блоге: 7
20.07.2025, 17:37

Не по теме:

Цитата Сообщение от i8085 Посмотреть сообщение
уволил 200 программистов, занимавшихся ИИ, и заменил их этим самым же ИИ. Даже не представляю, какие "творения" теперь будут появляться у Микрософта...
ИИ будет сам себя писать и совершенствовать?


Цитата Сообщение от yoric Посмотреть сообщение
В маховик встроенные магниты, которые портят всю малину.
А оптические датчики? У них нет механических частей и если обеспечить отсутствие грязи и мусора, должно надежно работать.

Еще можно использовать индуктивные датчики.
0
274 / 206 / 30
Регистрация: 26.11.2022
Сообщений: 898
22.07.2025, 10:37
Бедный yoric,
если это проект для себя - то нет больших проблем внести изменения а если у вас производство и вы наделали 1000 дронов и надо что-то исправлять - вряд ли стоит это тут обсуждать

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

вот пример -
Цитата Сообщение от yoric Посмотреть сообщение
В маховик встроенные магниты, которые портят всю малину.
какие магниты, где они , как они действуют на датчики, и ещё сотня вопросов без ответов.
выбор микроконтроллера - вообще странный. 16F648 - микропотребляющий с минимумом возможностей для батарейного питания. явно не для экспериментальной отработки требований к системе управления и алгоритмов управления.
0
 Аватар для yoric
153 / 117 / 6
Регистрация: 02.12.2021
Сообщений: 754
22.07.2025, 12:53  [ТС]
Вы что советовать-то собрались, то что вас не просили? Вопрос в первом сообщении.
0
22.07.2025, 16:36

Не по теме:

Цитата Сообщение от Aledveu Посмотреть сообщение
если у вас производство и вы наделали 1000 дронов
О том же подумал.
Только вопрос, с какой стороны запускать будут? Учитывая что используются примитивные МК, а значит необходимость сделать по максимуму дешево, вероятно не с нашей стороны!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.07.2025, 16:36

Конфликт spi и i2c при чтении с множества датчиков
Собственно вопрос. Есть несколько датчиков- Акселерометров от ST . Планируется организовать чтение...

Большие погрешности измерения при питании датчиков от блока питания
Есть проект с банальными датчиками (MQ-2, датчик пламени и датчик давления). Они все работают от...

Подключение к Arduino UNO 4-х вентиляторов + датчик воды + датчик грунта
Добрый день. Прошу помочь. Требуется подключить к Arduino UNO 4 вентилятора (куллер комп....

Atmega + датчик освещенности. Помогите подобрать датчик
Хочу измерять освещенность внутри теплицы и на улице. Посоветуйте датчик освещенности и может есть...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru