Jump to content

Search the Community

Showing results for tags 'таймер'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube
  • Радиолюбительская доска объявлений exDIY's Надежность и группы продавцов

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 86 results

  1. Вынес то что не получается в упрощенной форме в отдельный проект. Среда разработки CooCox 1.7.8, микроконтроллер STM32F103C8T6. Нужно раз в ~100 мсек формировать на ножке МК, например,такую последовательность: Стартовую длительность формирует таймер, в первом же своем прерывании по совпадению активирует DMA и дальше уже DMA по запросу таймера загружает значение CCR из массива. Что то похожее на управление светодиодами WS2812B. То что я сочинил выдает на пин: Но только один раз при первом вызове. При последующих вызовах данные из массива выдаются без первоначальной длительности в 150 мкс. Не могу найти ошибку. #include <stm32f10x.h> #include <stm32f10x_conf.h> #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <stm32f10x_tim.h> #include <stm32f10x_dma.h> GPIO_InitTypeDef PIN; TIM_TimeBaseInitTypeDef TIM_Config; TIM_OCInitTypeDef TIM_OCConfig; DMA_InitTypeDef DMA_Setting; uint8_t Test_Buf[] = {15,30,30,30,15}; void delay_ms(uint32_t ms) { volatile uint32_t nCount; RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq (&RCC_Clocks); nCount = (RCC_Clocks.HCLK_Frequency/10000)*ms; for (; nCount != 0; nCount--); } void Init_GPIO(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); PIN.GPIO_Pin = GPIO_Pin_11; // PA11 -> TIM1 Channel4 PIN.GPIO_Mode = GPIO_Mode_AF_PP; PIN.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &PIN); } void Init_TIM_Transmit(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructInit(&TIM_Config); // настройки по дефолту TIM_Config.TIM_Prescaler = 72-1; // Запускаем таймер на тактовой частоте 1 MHz (72000000/(72-1)) TIM_Config.TIM_Period = 150-1; // Период - 150 мкс TIM_Config.TIM_ClockDivision = 0; // частоту дополнительно не делим TIM_Config.TIM_CounterMode = TIM_CounterMode_Up; // считаем вверх TIM_TimeBaseInit(TIM1, &TIM_Config); // Инициализируем TIM1 TIM_OCStructInit(&TIM_OCConfig); // настройки по дефолту TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1; // Конфигурируем как ШИМ (выравнивание по границе) TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable; // Включаем выход TIM_OCConfig.TIM_Pulse = 0; // CCR до старта пока нулевой TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_High; // Полярность TIM_OCConfig.TIM_OCIdleState = TIM_OCIdleState_Reset; // состояние выхода по совпадению CCR (сброс) TIM_OC4Init(TIM1, &TIM_OCConfig); // Инициализируем 4-й выход таймера, это PA11 TIM_ARRPreloadConfig(TIM1,ENABLE); // Предзагрузка периода (ARR) TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); // Предзагрузка длины импульса CCR 4-го канала // (даем досчитать до конца и только потом значение меняется на новое) TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // выключаем пока запрос к DMA от таймера TIM1 по достижении CCR) TIM_CtrlPWMOutputs(TIM1, ENABLE); // включаем выходы (это только для TIM1) TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); // разрешаем таймеру управлять выводом PA11 TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // запрещаем пока таймеру генерировать прерывание по совпадению NVIC_EnableIRQ(TIM1_CC_IRQn); // разрешаем прерывания TIM_Cmd(TIM1, DISABLE); // Выключаем таймер (пока ждем) } void TIM1_CC_IRQHandler(void) // прошло 130 мкс { if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 по совпадению } NVIC_EnableIRQ(TIM1_CC_IRQn); // выключаем прерывания от таймера TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM1->ARR = 40-1; // устанавливаем период 40 мкс TIM1->CCR4 = Test_Buf[0]; // ширину из массива для следующего импульса DMA1_Channel4->CNDTR = 4; // длина данных для DMA на 1 меньше т.к. уже установили выше 1 элемент TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE); // разрешаем таймеру делать запрос к DMA по совпадению CCR DMA_Cmd(DMA1_Channel4, ENABLE); // включаем DMA } void Init_DMA(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // включаем тактирование DMA1 DMA_Setting.DMA_PeripheralBaseAddr = (uint32_t) &TIM1->CCR4; // куда копировать DMA_Setting.DMA_MemoryBaseAddr = (uint32_t) &Test_Buf[1]; // что копировать DMA_Setting.DMA_DIR = DMA_DIR_PeripheralDST; // копируем в периферию (Peripheral Destination, точка назначения - периферия) DMA_Setting.DMA_BufferSize = 0; // количество передаваемых данных DMA_Setting.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // адрес периферии постоянный DMA_Setting.DMA_MemoryInc = DMA_MemoryInc_Enable; // адрес в памяти увеличиваем DMA_Setting.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // периферия 16 бит DMA_Setting.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // массив 8 бит DMA_Setting.DMA_Mode = DMA_Mode_Normal; // режим обычный DMA_Setting.DMA_Priority = DMA_Priority_Medium; // приоритет средний DMA_Setting.DMA_M2M = DMA_M2M_Disable; // MemoryToMemory откл. DMA_Init(DMA1_Channel4, &DMA_Setting); // TIM1_CH4 относится к 4-му каналу DMA1 DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE); // настраиваем прерывание по окончанию передачи NVIC_EnableIRQ(DMA1_Channel4_IRQn); // включаем прерывания от 4-го канала DMA1 DMA_Cmd(DMA1_Channel4, DISABLE); // пока выключаем 4-ый канал DMA1 } void DMA1_Channel4_IRQHandler(void) // закончили передавать { if (DMA_GetITStatus(DMA1_IT_TC4) != RESET) { // по совпадению DMA_ClearITPendingBit(DMA1_IT_TC4); // сбрасываем флаг прерывания DMA1 Channel4 transfer complete } if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 на всякий случай } TIM1->ARR = 150-1; // вновь настраиваем на период 150 мкс TIM1->CCR4 = 0; // и ждем следующею передачу TIM1->CNT = 0; // TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // всё выключаем DMA_Cmd(DMA1_Channel4, DISABLE); // TIM_Cmd(TIM1, DISABLE); // TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Disable); } int main(void) { Init_GPIO(); Init_TIM_Transmit(); Init_DMA(); delay_ms(1000); while(1) { TIM1->CCR4 = 130-1; // до включения линия удерживается в 0 (CCR=0) TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE); TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); TIM_Cmd(TIM1, ENABLE); delay_ms(100); } } TEST_TIM_DMA.zip
  2. Не могу настроить таймер 0 на работу, и даже не получается понять в чем проблема. Делаю в Proteus, так как это быстрее и нагляднее. Пробовал и просто по переполнению делать прерывание (WGM[1..0] 00) и по совпадению (WGM[1..0] 10; OCR0A = 0 - 255), однако прерываний нет. Перед циклом ставлю TCNT0 = 0; Тактирование выставляю TCCR0B (CS[2..0] 001, 100, 101). Прерывания TIMSK0 (OCIE0A, TOIE0) выставляю, не вызываются. Даже принудительным заносом значения в регистр TIFR0 (OCF0A, TOV0). Прерывание пытаюсь выполнить таким образом: #include <avr/interrupt.h> volatile unsigned int A = 0; ISR(TIMER0_OVF_vect) { A = 1; } ... while(1) { if (A == 1) PORTB |= (1<<0); } Proteus показывает, что вывод настроен как выход, но всегда 0; Конкретный код привести не могу, так как у меня не заработало совсем ничего. Внизу я сделал вырезку из даташита на ATMEGA328 по 0 таймеру 8-бит, и занес в один PDF файл. ATmega328-106-112.pdf Прошу помочь разобраться с таймером и прерываниями для него.
  3. Добрый день. Помогите пожалуйста. Никак не могу найти простую схему, что не впишу все одно получаю таймер на отключение или через кнопку... Делаю инкубатор для яиц, яйца нужно поворачивать 2-3 раза в сутки, у меня есть суточный таймер но у него минимум 1 минута, а мой механизм за 1 минуту прокрутит яйца 4 раза, нужно сделать примерно 15 сек. Как правильно называется такой таймер, или дайте схему. Спасибо.
  4. Добрый день всем! Столкнулся с такой проблемой. Купил несколько китайских реле времени, но они по питанию на 220 В. Теперь хочу их переделать на 24В переменку, возможно кто-то уже имел дело с такой задачей... Тип таймеров AH2-Y.
  5. Всем доброго времени суток. Решил я сделать "умную" электронную сигарету на arduino. Концепция заключается в кнопочном управлении мощностью посредством ШИМ, наличии экрана, и некоторыми защитами в виде ограничения максимального времени нажатия и уход камня в сон (режим пониженного энергопотребления) после N секунд простоя. Вводные: по нажатию кнопки запускается ШИМ и управляет полевиком, но в целях защиты я хочу ограничить время выполнения кода до 7 секунд(что бы при случайном зажатии кнопки в кармане не получить травматическую ампутацию конечностей) Проблема пришла откуда не ждали - обработка нажатой основной кнопки срабатывает как попало. Нажимая кнопку обработчик может сработать сразу и отработает как по маслу, а может и через 5 нажатий не сработать вовсе. Проверял в живую на Arduino UNO, Pro Mini (328е Меги) и в Proteus'е. Симптомы одни и те же. Проблема очевидно в коде но я в упор не вижу в чем может быть загвоздка. Уровень у меня "штота умею" поэтому не судите строго. #define pwmPin 5 #define buttonStart 3 #define maxOnTime 7000 //максимальное время выполнения условия нажатой кнопки #define RED_LED 7 #define GREEN_LED 8 int power = 150; //boolean StartState; boolean StartStateFlag; //Флаг кнопки Старт unsigned long pressTime; void setup() { pinMode(pwmPin, OUTPUT); pinMode(buttonStart, INPUT); pinMode(RED_LED, OUTPUT); pinMode(GREEN_LED, OUTPUT); Serial.begin(9600); //чисто для отладки } void loop() { if (digitalRead(buttonStart) && StartStateFlag && ((millis() - pressTime) <= maxOnTime)) { // (1) если кнопка старт нажата И была отпущена И нажата менее 7 секунд выполняем: analogWrite(pwmPin, power); //запуск ШИМ Serial.println("PWM_ON"); digitalWrite(GREEN_LED, HIGH); digitalWrite(RED_LED, LOW); } else { // (2) иначе StartStateFlag = false; // кнопка небыла отпущена analogWrite(pwmPin, 0); digitalWrite(GREEN_LED, LOW); Serial.println("PWM_OFF"); pressTime = millis(); } if (!digitalRead(buttonStart)) { //(3) если кнопка не нажата analogWrite(pwmPin, 0); //остановка ШИМ Serial.println("PWM_OFF"); digitalWrite(RED_LED, HIGH); StartStateFlag = true; //была отпущена и можно входить в условие с нажатой кнопкой (1) } } И файлы: сам скетч, .elf и .hex для шПротеуса и проект Протеус. P. S. ШИМ в Протеусе не работает в принципе, в железе все ОК BUTTON_TEST.ino BUTTON_TEST.ino.eightanaloginputs.hex BUTTON_TEST.ino.elf BUTTON_TEST.ino.with_bootloader.eightanaloginputs.hex ButtonTest.pdsprj
  6. Доброго времени суток. Помогите отремонтировать электронный таймер электроплиты Kaiser. После мойки плиты таймер перестал подавать признаки жизни. При включении в сеть срабатывают реле и всё.
  7. Привет! Ребята, помогите совсем начинающему. Задача поморгать светодиодом не прибегая к регистрам GPIO. Плата STM32F407VG DISC. В CubeMX 5 подключаю кварц, тактирование подгоняю 16МГц для АРВ1. В TIM5 для Channel1 выбираю Forced Output CH1. Ему соответствует PA0. В таймере пределитель беру 15999, счетчик 999. То есть рассчитываю что будет дергать ногу раз в секунду. Вешаю на PA0 светодиод. Все это выгружаю в Keil 5. Дописываю в main /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start(&htim5); /* USER CODE END 2 */ Собираю, загружаю, но ничего не происходит. Причем первые разы как то получилось, но теперь глухо. Посоветуйте что делать? Какие то файлы приложить?
  8. Всем привет. Реебят подскажите, преедложили собрать схему таймера с отключением через 1-2 часа (время нее сильно суть меняет), но собрать на микросхемах К561ТР2 и К561ИЕ16. Теорию вроде пока говорили понял, но на практике что-то не срослось ((( Нарисовал схему как смог. Что не так делаю ? Спасибо
  9. Доброго времени суток. Помогите пожалуйста зарисовать схему, которая может мигать 4-5 светодиодами на фиксированной частоте - 3-4гц. Питание будет от 4-х ААА-акумулятора NiMH 1.2v. Светодиоды - нормальные, чтоб обозначить движущее средство передвижения типа велосипед на дорогах в ночное время суток.
  10. Всем светлым и умным головам привет! Никак не могу найти информацию о данном прерывании TIM1_BRK_UP_TRG_COM. Вопрос 1: Что это за стек или система прерываний? Вопрос 2: Когда будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler, если также есть обработчик прерывания TIM1_CC_IRQHandler? Вопрос 3: период переполнения таймера равен 100 мкс. Сколько раз будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler до обработчика прерывания TIM1_CC_IRQHandler? По логике вещей, предполагаю, что 100 раз? Заранее благодарен! Всем радости))
  11. здрасте) может кто подскажет как воткнуть светодиодную ленту в данную схему для индикации разным цветом времени задержки после запуска реле?
  12. Здравствуйте! У меня в машине установлен телефон на андроиде в дополнение к штатному головному устройству. Его экран включается при подключении по USB внешней клавиатуры. Для этого замыкается один провод (OTG) через реле. Реле питается от ACC автомобиля. Проблема в том, что в то время, когда заводится двигатель, ACC пропадает. Это примерно 1-2 секунды. Для решения этой проблемы я собрал на NE555P одновибратор с задержкой в районе 3-4 секунд. На 2 вывод микросхемы я подаю ACC. Когда ACC пропадает, резистор на 10 кОм подтягивает вывод на землю и таймер запускается. Но, я не учёл одного нюанса — если не вернуть на 2 вывод напряжение, то на 3 выводе напряжение спустя заданное время не исчезает. Собственно вопрос в том, как модифицировать данную схему, чтобы при отсутствии ACC таймер работал только заданное время и затем выключался?
  13. Здравствуйте! Монтировали кнопку открытия электрозамка на двери, бюджет был ограничен и закупили Таймер импульсов (ТИ). Точнее, купили две платы и обе работают не корректно, а именно: после нажатия кнопки (после подачи сигнала на вход ТИ) он размыкает контакты электрозамка, отсчитывает заданный интервал времени, замыкает контакты электрозамка, и может еще несколько раз сработать реле на ТИ. Т.е. кнопку нажали раз, а сработок было много. Пытались подключать диоды, но это не помогло. Проблема пропала после установки полноценного дверного контроллера СКД, но это решение не устраивает. Есть мысли, что происходят наводки в кабеле, ибо когда тестировали ТИ в офисе на столе с короткими кабелями, то система работала как надо. А теперь вопрос: может есть способ подключить данный ТИ таким образом, чтобы избежать ложных срабатываний?
  14. Доброго времени суток!! Есть задача, измерить время между импульсами с точностью до периода 50МГц - ового генератора. Этим периодом ограничена и минимальная задержка между импульсами. Уже собрал в proteus-е схему на синхронных счетчиках и стал разбираться с МК, что бы управлять этой схемой. Оказалось в МК есть встроенный таймер, который может считать со скоростью тактового генератора МК. Вопрос: Возможно ли используя встроенный таймер МК на частоте >= 50 МГц нормально померить такую задержку и какие могут быть подводные камни?
  15. Добрый день, в программирование контроллеров я ничего не смыслю, знаю только ассемблер, С++. Мне необходимо реализовать систему автополива, у меня есть 5 выходов RA каждый из которых отвечает за открытия крана. У каждого порта есть время срабатывания и длительность полива. Как мне в заданное время подать на нужный выход RA логическую единицу и держать этот уровень определенное время. Пример: время срабатывания RA1 в 12:15 логическая единица должна быть установлена на 5 минут после истечения этого времени выход выдаёт сигнал 0. Может посоветуете свои варианты как лучше сделать к примеру делать полив через заданные промежутки времени. Основной вопрос: как создать таймер, который в заданное время сработает и подаст сигнал на порт RA?
  16. Добавил Модбас в проект все работало. Добавил еще несколько функций в main и модбас перестал работать. Когда присоединяю сериальный кабель модбас IAR дебагер пререстает работать (вероятно есть общие линии). Вопросы : 1. как решить конфликт кабелей (IAR JTAG) и Modbus и отлаживать модбас с его кабелем ? 2. Если решить конфликт кабелей нельзя тогда ... Как симулировать прерывания на ногах UART (модбас) чтобы программа зашла в обработчит прерывания модбас ?
  17. Добрый вечер,мне вот отдали такую штуковину но не могу определить что это,вставил в розетку шнур питания и включил таймер,загорелся красный индикатор но не прошло и 10 секунд я почувствовал странный запах нагрева то отключил таймер,дотронувшись до штуковины та что идет к таймеру я смог лишь на мгновенье она была ужасно горячей и потом очень долго остывала,надеюсь не сгорела,помогите понять что это,заранее благодарю
  18. помогите, делаю этот таймер http://sxem.org/2-vse-stati/22-tajmery/38-tajmer-na-atmega8 и он идет очень медленно, одна секунда равняется 3,5 минутам, как это исправить
  19. Здравствуйте. Столкнулся с проблемой выбора программируемого таймера на АлиЕкспресс. Задача такая: есть цепь, ее нужно замкнуть по разному. Варианты: - Каждые полчаса - от 5 до 25 минут. - Каждый час - от 5 до 50 минут. - Каждые 2 часа - от 5 до 50 минут. - Каждые 3 часа - от 5 до 50 минут. - Каждые 4 часа - от 5 до 50 минут. Естественно, каждый из этих вариантов нужно запрограммировать вручную. Но проблема в том, что не могу понять какое реле на АлиЕкспресс поддерживает все эти режимы! Вроде нашел несколько, НО - либо они срабатывают от 1 до 99 секунд всего лишь! - либо подключают питание, а мне нужно всего лишь замкнуть цепь, а не подключить к 220В - либо не поддерживают так много программ. Однако я уверен, что такие релюшки ДОЛЖНЫ быть, просто я их не замечаю Помогите советом, что выбрать на АлиЕкспресс, чтобы соответствовало моим нуждам?? Спасибо.
  20. Есть устройство с датчиком уровня жидкости на герконе (SB1). При замыкании датчика должен включиться насос, откачивающий жидкость. Уровень быстро падает и датчик размыкается. После размыкания датчика, насос должен проработать ещё 3 секунды и выключиться. Изначально схема работала на одном транзисторе и реле. Решил снять нагрузку с датчика, так как заряд конденсатора через него иногда приводит к залипанию. В итоге стало понятно, что схема никуда не годится. Погуглив, решил сделать на 555 таймере. Сброс мне не нужен, питание на схему подаётся постоянно. А теперь вопросы: 1) верно ли я всё нарисовал? 2) подходит ли формула T=1,1R3C2? Исходя из неё и были подобраны R3=6,2MOm и C2=0,47мкФ 3) насос потребляет всего 10Вт, можно ли заменить реле на полевой транзистор?
  21. Помогите подобрать простую схему. На швейной машине есть "моргалка" - это такая пружинка для стабилизации нити, она при шитье постояно туда-сюда делает, я прицепил к ней клемму и теперь у меня есть на долю секунды по среди каждого стебка замыкание (ну просто единственное что без нити по другому себя ведет) Подскажите какой-то таймер чтобы продлевал себя с каждым замыкание моргалкой на 5-10 сек, и мог сутками работать. Извините если мой вопрос глупый, я не силен в радиотехнике, умею паять и найти ножки транзистора. Спасибо за внимание.
  22. кто может подсказать у меня тут что тот не то, или симулятор не корректно работает . При нажатии на кнопку, подключенную С1, светодиод загорается примерно на 0,5 секунды, а затем гаснет(должно было). но не гаснет, как видно на графике. https://www.multisim.com/content/AAwakYAxYktCoDfQpd8sTC/untitled-circuit/open/
  23. Приветствую. Имеется китайский паяльник с регулятором 220в. Хочу сделать ему отдельную розетку и встроить туда пищалку которая издавала бы звук например каждую минуту (+ -) Тоесть что бы не забывать включенным паяльник. Может кто знает уже готовое решение (как оно называется) или подскажите схему похожего устройства?
  24. На форуме как-то исподволь сложилось мнение, что я являюсь каким-то "микроконтроллероненавистником"... Отнюдь нет! МК - великолепный инструмент для решения множества достаточно сложных задач, которые с применением рассыпной логики решались с огромным геморроем. Ключевые слова здесь: "достаточно сложных"! Но когда МК пихают во все дырки куда ни попадя (типа помигать светодиодами) - поневоле приходят на ум слова "забивать гвозди микроскопом". Причем, апологеты массового применения МК заливаются соловьями (сиречь нагло врут), утверждая, что при изменении алгоритма работы "в железе ничего менять не надо - только в прошивке". Ситуация вчерашнего и сегодняшнего дней, категорически противоречащая этому утверждению: взял субподряд на изготовлении узла управления специфической мигалки для авто. Алгоритм такой: при подаче напряжения питания должно последовать 4 вспышки, после чего светодиод светится постоянно, пока не снято напряжения питания. Если снова подать питание - цикл повторяется. Если снять питание, пока идут вспышки, то при его новой подаче цикл начинается сначала. Причем, первый импульс должен начинаться в момент подачи питания. Собственно, схема была уже изготовлена "умельцем", выполнена на микроконтроллере. Показана в работе клиенту. Тому не понравилась частота вспышек (слишком частые), потребовал ее уменьшить. А "умелец" куда-то сдрыстнул и сейчас находится за пределами реального доступа. ВСЁ! Прошивка неизвестна. Программатора нет. Средств изменения констант на плате нет. Даже если бы всё (за исключением последнего пункта) и было - попробую ситуацию немного усугубить. Изменили константу, отвечающую за частоту. Прошили МК заново. Показали клиенту. Ему не понравилось количество вспышек. Потребовал увеличить с 4 до 8 Изменили константу, отвечающую за к-во вспышек. Прошили МК заново. Показали клиенту. Теперь ему снова не понравилась частота вспышек - слишком мала. Изменили константу, отвечающую за частоту. Прошили МК заново. Показали клиенту... И т.д. и т.п. Причем, клиент ничего не может поменять сам - только ехать на сервис, чтобы перепрошивали МК. Причем, утрировал ситуацию я не сильно. Буквально вчера речь шла о 4-х вспышках. А сегодня генподрядчик возжелал, чтобы их было 8! Покрутил я Т.З. и так и эдак... И уже ночью сообразил, что вся "хотелка" может быть реализована с помощью одной-единственной КМОП микросхемы CD4060: Собственно, схема известна, применяется в реле времени/таймерах, я только использовал младшие разряды счетчика для формирования начальных вспышек. При подаче напряжения питания счетчик обнуляется через конденсатор С1 и запускается тактовая генерация. С выходов Q9 или Q10 (выбираемых перемычкой Х2) единичные импульсы поступают на силовой блок, запрещая его работу (т.е., формируя паузы между импульсами). Через 4-8-16 таких импульсов (опять же их количество выбирается перемычкой Х3), единица через диод VD1 "затыкает" генератор тактовых импульсов и счетчик остается в этом состоянии до снятия напряжения питания. На исполнительный узел поступает логический ноль, разрешая его работу. Частота генерации регулируется подстроечным резистором R1. ВСЁ! Алгоритм соблюден. Меняться в определенных пределах может клиентом, совершенно незнакомым с МК самостоятельно. Размеры платы практически такие же, как и с МК. Не требует программатора и умения программирования. Засим еще раз повторюсь: я целиком и полностью "ЗА" широкое применение микроконтроллеров при условии, что для данной задачи их применение обосновано!!!
  25. Привет всем! Нужна помощь. Собрал таймер по схеме (в приложении). Не работает. Возможно где-то ошибся или схема не точная. Вопросы: что значат единицы в красных кругах (на логических элементах к561ле10)? На этих же элементах выводы 6,9,10 обозначены не так как другие (в синих кругах), это что-то должно означать? В зеленых кругах выводы на землю (минус): правильно ли понимаю, что ВСЕ они цепляются на минус от БП? Все собирал как на схеме, кроме: R2 и R6 у меня на 500кОм, светодиод рандомный на 3В диаметром 5 мм, С2 - полярный (плюсом поставил к +12). Собирал на макетке (на двух отдельных бордах, питание и некоторые сигналы тоже перебрасывал между ними). При включении питания ничего не происходит, на кнопки S1 и S2 реакции нету. На вращение переменных резисторов тоже. Зато! при отсоединении минуса ото всех минусовых выводов (тех, что в зеленых кругах), кроме С3 и VT2 (они на отдельной макетке) реле включается (но все равно не реагирует ни на что). Может, кто-то из вас собирал эту схему? Куда копать? Еще грешу на плохой контакт, а вдруг? Всем откликнувшимся спасибо!
×
×
  • Create New...