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

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

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

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

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

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

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

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

16F648 4МГц
То есть один шаг коррекции должен успевать производиться за время 1/(6000/60*360) = 28 мкс = 28 команд.
Ну-ну, бедный yoric. Флаг вам в руки. Надеюсь, хоть на ассемблере пишете?
0
 Аватар для yoric
147 / 105 / 7
Регистрация: 02.12.2021
Сообщений: 689
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
147 / 105 / 7
Регистрация: 02.12.2021
Сообщений: 689
19.07.2025, 16:17  [ТС]
Насколько я вычислил, точность по таймерам получается меньше градуса.
И да, данные берутся на основе вычисления из предыдущих циклов. По-моему, вполне достойный алгоритм (для меня, по крайненй мере)
0
4076 / 2684 / 587
Регистрация: 11.09.2009
Сообщений: 9,572
19.07.2025, 19:29
Цитата Сообщение от yoric Посмотреть сообщение
DeepSeek ... выдало откровенную чушь, при тыкании носом начало юлить и в конце концов сдулось.
На сегодняшнем уровне его развития - более чем ожидаемо.

Не по теме:

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не по теме:

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


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

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

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

вот пример -
Цитата Сообщение от yoric Посмотреть сообщение
В маховик встроенные магниты, которые портят всю малину.
какие магниты, где они , как они действуют на датчики, и ещё сотня вопросов без ответов.
выбор микроконтроллера - вообще странный. 16F648 - микропотребляющий с минимумом возможностей для батарейного питания. явно не для экспериментальной отработки требований к системе управления и алгоритмов управления.
0
 Аватар для yoric
147 / 105 / 7
Регистрация: 02.12.2021
Сообщений: 689
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
Ответ Создать тему
Новые блоги и статьи
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
сукцессия 9. Математика подлости: как растения предали грибных друзей
anaschu 27.06.2026
Статья 2. Глобальная фосфорная война: эволюционно-экономические механизмы распределения биомов Земли Введение: Экологический рынок как игра с нулевой суммой Традиционная экология долгое время. . .
сукцессия 8. Как я спорил с ИИ, которые - агенты растений и ненавистники грибов!
anaschu 27.06.2026
Статья 1. Хроники грибного восстания: как Сократов диалог разрушил академические догмы ИИ Введение: Синдром «цифрового учебника» Современные большие языковые модели (LLM) обладают колоссальным. . .
Главный вопрос моделирования сукцессии
anaschu 27.06.2026
главный вопрос. Если эктомикориза лучше добывает недоступный фосфор. И ее масса максимальна из всех. А широколиственный лес тоже имеет самую крутую биомассу. То почему не возникло их симбиоза? Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru