Приветики!
значит собрал я ШИМ для управления Эл.двигателя все прекрасно, но хочу сделать шкалу светодиодную, чтоб, когда крутишь резюк, чем больше оборотов, тем выше шкала поднималась.
попробовал на выход подключить AN6884 со шкалой.. ниче не вышло..
потом купил LM3914 тоже не фонтан..
пытался выпрямить...
ставил нч фильтры..
короче намучался..
не знаю, че делать
"The only thing necessary for the triumph of evil is for good men to do nothing" Ebmund Bruke(1729-97)
Выпрямить у меня в кавычках! (в заголовке темы)
прочтите тему сначала и поимете.
не буду я два раза писать то что уже написал. кто в теме тот понял чего я хочу.
"The only thing necessary for the triumph of evil is for good men to do nothing" Ebmund Bruke(1729-97)
DLL32 писал(а):спасибо вам МП 42 Б
нежуели нелзя легко и просто выпрямить этот ШИМ?
Можно Номиналы резистора и конденсатора подбирать в зависимости от частоты ШИМ. Можно конечно и формулы для расчета вывести, но это уже заморочек много, проще подобрать через мультисим.
Не думаю. Первый конденсатор отрезает постоянку и инвертирует сигнал, резистор притягивает сигнал к общему, диод отрезает все что ниже 0, второй конденсатор выравнивает сигнал. Т.е. он просто покажет наличие сигнала и половину его уровня.
То что вам нужно, работает вот как: при высоком уровне происходит зарядка конденсатора, в зависимости от длительности импульса, конденсатор успеет зарядится до какого-то уровня, далее, пока идет низкий уровень ШИМ, происходит разрядка конденсатора, но не до 0. Сейчас попробую поэсперементировать со схемами, мож чего и примаю ) Заинтересовала меня эта задачка
Я чуть отредактировал вашу схему и все заработало
без R3 микромхема LM3914 показывала всегда максимум.
как говорится метод тыка работает
спасибо kondor
доброй ночи. тоже интересует данная ситуация, нужно мне это для бортовых огней в самолёте радиоуправляемым, для включения бортовых огней.
мне из шим сигнала в длительности от 1000 до 2000 микросекунд нужно сделать логический ноль для микроконтроллера. не могли бы подсказать для моего случая
Если сигнал генерируется МК, то почему бы не поручить тому же МК генерировать второй сигнал в соответствии с первым? Это ведь гораздо проще, чем городить внешний вторичный измеритель...
akimov1987 существует такая штука ждущий одновибратор (хош на К155АГ, хош на 555/556) для преобразования пакета импульсов в один импульс вполне сгодится
логика такова с приёмника борта самолёта выходят каналы управления самолёта то есть руль высоты, руль направления, элероны и газ, сигнал шим амплитудой 5в и изменяемой длительностью от 900мкс до 2000мкс, но есть и ещё доп каналы в моём случае 3 свободных вот на них и хочу подцепить бортовые огни. знакомый электронщик сказал что можно прям в мк загнать шим но он пишет на асме, а я пишу в cvavr.
не понимаю какую строчку написать что бы сигнал был понятен мк и выдавал логические еденицы на указанные мне порты. например на ножке появиля шим сигнал и началась выполняться програма (борт освещение или сигнализирующие огни, ) для мигания мне составит труда написать программу. надеюсь на помощь хорошего человека
есть кусочек кода которы мне мало понятен. вот он
#include <tiny2313.h>
const int timed1=400; // Задержка между 1 и 2 стробоскопами
const int timed2=1200; // Длительность общего цикла мигания
const int tims1=40; // Длительность вспышки
const int tims2=80; // Длительность паузы
const char NofL=2; // Колличество вспышек стробоскопа
const int timeG=300; // Порог включения посадочной фары
const int timeT=240; // Порог включения огней БАНО и стробоскопов
const char s1=0; // Положение NORM/REV канала GEAR
const char s2=1; // Положение NORM/REV канала THROTLE
int tick11,tick21; // Вспомогательные счетчики
int tick3, tick1, tick2; // Вспомогательные счетчики
unsigned int pulse1; // Длительность импульса канала GEAR
unsigned int pulse2; // Длительность импульса канала THROTLE
char c1,c2; // Счетчики колличества успешно принятых импульсов
char F; // Флаг ON/OFF стробоскопа
interrupt [EXT_INT0] void ext_int0_isr(void) // Обработка прерывания от канала GEAR
{
if(pulse1 > timeG){c1++; pulse1=0;}
if((pulse1 < timeG)&(pulse1 > 5)) {PORTB.3=!s1;
pulse1=0; c1=0;}
if (c1==10){PORTB.3=s1; c1=0;}
}
interrupt [EXT_INT1] void ext_int1_isr(void) // Обработка прерывания от канала THROTLE
{
if(pulse2 > timeT){c2++; pulse2=0;}
if((pulse2 < timeT)&(pulse2 > 5)) {F=!s2;PORTB.2=s2; pulse2=0; c2=0;}
if (c2==10){F=s2; PORTB.2=!s2; c2=0;}
}
interrupt [TIM0_OVF] void timer0_ovf_isr(void) // Обработка прерывания таймера
{
if(F==1){
tick3++;
if (tick11 < NofL){tick1++;}
if (tick21 < NofL){tick2++;}
Я наконец то понял, чего человек хочет: нет потока импульсов - нет команды на зажигание фонаря, пошли импульсы - включился фонарь. То есть надо определить наличие потока импульсов. Это просто: импульсы снять через базу транзистора,(транзистор - это буфер), на коллектор прицепить светодиод и емкость, где то 10 мкф. (емкость нужна для сглаживания импульсов на коллекторе). Всё!
DLL32 писал(а):спасибо вам МП 42 Б
нежуели нелзя легко и просто выпрямить этот ШИМ?
А я бы вообще не стал ничего выпрямлять, а сделал бы измеритель скважности ввиде линейке светодиодов.
Ну а если очень хочется выпрямить, то вешаем между ШИМ и аналоговым измерителем интегрирующую цепочку с ТАУ в 10 раз большим периода измеряемого сигнала.
p.s. И еще вопрос: зачем akimov1987 поднял тему отличной давности? У него ведь немного другой случай....