Задача следующая: Микруха PIC16F870 имеет только один модуль формирования ШИМ. Нужно сформировать 8 ШИМ сигналов разной скважности, причём частота ШИМ у всех одинакова и равна 50Гц. Диапазон длительности ШИМ-импульса = 500-2500 мкс.
И ещё до кучи: Микруха PIC16F870 имеет 10-ти канальный АЦП. Второстепенная задача: необходимо читать внешнее напряжение от 0 до 5 вольт. Это самое напряжение формируется делителем напряжения состоящего из двух резисторов, причём один из них - переменный. Сама задача: на переменный резистор подвешен груз, который при наклоне платформы с резистором, провисая меняет его сопротивление.
Короче говоря, необходимо придумать инклинометр. Проблема в том, что для поворота переменника необходимо приличное усилие, что не может обеспечить груз.
Romeo писал(а):Добрый день!!! Задача следующая: Микруха PIC16F870 имеет только один модуль формирования ШИМ. Нужно сформировать 8 ШИМ сигналов разной скважности, причём частота ШИМ у всех одинакова и равна 50Гц. Диапазон длительности ШИМ-импульса = 500-2500 мкс.
Исходя из того что написано будет достаточно 2х видов импульса 1000мкс и 2000 мкс +-500мкс зачем шим - делай программно
а по делу - делай одним шимом(таймером) но в разное время для разных каналов - 50 герц успеешь.
По поводу ШИМ: формировал с помощью 2-х таймеров, один задаёт период, а второй кратность длины импульса. Но вышло как-то коряво. Скважность не соответствует требуемой. Может кто использовал алгоритм построения ШИМ?
По поводу переменника: пробовал изменить его конструкцию, чтобы уменьшить трение, но тогда контакт был прохой. Может необходимо заменить чем-то другим? Или решить задачу по-другому? Есть у кого опыт?
Romeo писал(а):Задача следующая: Микруха PIC16F870 имеет только один модуль формирования ШИМ. Нужно сформировать 8 ШИМ сигналов разной скважности, причём частота ШИМ у всех одинакова и равна 50Гц. Диапазон длительности ШИМ-импульса = 500-2500 мкс.
Для этого можно использовать таймер. Вот пример как это сделано для AVR - 8 servo управляются одним таймером - http://avr123.nm.ru/z13.htm Вы можете аналогично сделать для PIC или AVR использовать - он дешевле обычно.
Romeo писал(а):По поводу переменника: пробовал изменить его конструкцию, чтобы уменьшить трение, но тогда контакт был прохой. Может необходимо заменить чем-то другим? Или решить задачу по-другому? Есть у кого опыт?
Инклинометр по идее должен хорошо получиться из двух- или трехосного акселерометра (нпример типа MMA7260), он вроде недорогой и работать будет надежно в отличие от систем с грузиками.