Перейти к содержанию

Контроллер для светодиодов


ice-pro

Рекомендуемые сообщения

Входные данные
Есть 2 кнопки, назовем их "инкремент" и "декремент".
Плюс есть 4 светодиода и один 7-сегментный индикатор.
Плюс нету arduino или подобного.

Задача
Собрать схему с управлением кнопками которые будут инкрементировать счетчик от 0 до 8 и соответственно отображать число в 2-х представлениях, на индикаторе д 10-м и на лампочках в 2-м.

Знаю как такое собрать на arduion/другой микроконтроллер, но хотелось бы найти более дешевый вариант со спец контроллером.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

35 минут назад, ice-pro сказал:

есть 4 светодиода и один 7-сегментный индикатор.

 

36 минут назад, ice-pro сказал:

на индикаторе ... и на лампочках 

А, лампочки откуда взялись?

И, МК- обязателен? 


При опьянении организм считает, что близок к смерти, и инстинктивно стремится к продолжению рода.

Сегодня, в 9 утра, после тяжёлой и продолжительной болезни - не приходя в сознание... госдума приступила к работе. 

 


Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

1 час назад, ice-pro сказал:

нету arduino или подобного

А если

1 час назад, ice-pro сказал:

более дешевый вариант со спец контроллером

и этого спецкотроллера у Вас тоже нету? В чем смысл?

А хотите без МК, соберите на 155ИЕ6 (ИЕ7 если шестнадцатеричный счет), 514ИД1(2) и парочке МС мелкой логики.

Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

4 часа назад, ice-pro сказал:

более дешевый вариант со спец контроллером.

Дешевле по деталям не будет . Надо 2 ИМС . Реверсивный счетчик и дешифратор на  семисегментный индикатор .

Серии микросхем Сd4000 и 74 . Симулируется в протеусе , покупается на Али .
 

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Я подобную схему сваял лет 30 назад на 561-й серии для операционного электростимулятора. Только с одной кнопкой, переключающейся либо в инкрементную сторону, либо в декрементную. Схему, возможно, найду в архивах, а может и нет. - пока не знаю. Вечером покопаюсь.

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

Ссылка на комментарий
Поделиться на другие сайты

В 29 Ноябрь 2017 г. в 23:26, ice-pro сказал:

Знаю как такое собрать на arduion/другой микроконтроллер, но хотелось бы найти более дешевый вариант со спец контроллером.

знаете так собирайте... потому как нет спец контролеров , есть микросхемы логики

1. не знаю как у вас , в моем граде найти тот же дешифратор  555ид18 или его аналог не удалось

2. МС счетчиков от 0 до 8 в природе нет , есть или 0-9 или 0-15 , то есть потребуется дополнительные корпуса  логики для формирования/блокирования переполнения

3. дребезг контактов кнопок на устранение также потребует дополнительные корпуса логики 

в итоге схема разрастется минимум до 4-5 корпусов с кучей обвязки

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, IMXO сказал:

Есть 2 кнопки, назовем их "инкремент" и "декремент".

Они и есть , правая направление переключает и держит емкостью  , счет идет вверх .

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

35 минут назад, colorad сказал:

правая направление переключает и держит емкостью  , счет идет вверх .

 

второй лист, подправленный . 

 

ВCD-f.DSN

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

А на счетный  вход сразу через D1 импульс вверх . Файл скинул .

Даа ..   ступил я , но все одно работает .

Исправил .

5a210ac56692e_8.jpg.875c0990fb61dbaecfe9be12352f653c.jpg

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

Ты ба!? Нашел-таки:

NeuroImp.thumb.GIF.521e011aaec79d6e89074ae2b4012499.GIF

 

Кнопка SА1 включает питание всего этого пепелаца. При этом нижний триггер на DD2 устанавливается на счет либо вверх, либо вниз. Кнопкой SА2 этот счет и производится.

В начале 90-х это было круто. Сейчас, конечно же, все это целесообразнее выполнить на МК.

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

Ссылка на комментарий
Поделиться на другие сайты

Буржуи в свои некоторые ИМС на вход ставят триггера Шмитта,  можно такую поискать и некоторую емкость на левую кнопку , я так думаю .

  Да и про дребезг хотелок не было .

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

Выше схему я выложил. Дребезга не отмечалось и без спецформирователей.

Просят - не откажи. Не просят - не навязывайся!

Простота хуже воровства.

Ссылка на комментарий
Поделиться на другие сайты

а вместе с емкостью ?

Какие схемные решения по дребезгу бывают , можно пример ?

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

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

Нашел в интернете . Тут , кмк ,  с антидребезгом .

rk-15-08-scheme-27.png.4ca5ac4287cf7a9e6f94de3854627d85.png

http://radiostorage.net/4237-reversivnyj-schetchik-upravlyaemyj-dvumya-knopkami-cd4516-cd4514.html

Изменено пользователем colorad
Ссылка на комментарий
Поделиться на другие сайты

Ну раз пошла такая пьянка, то вот еще вариант ICM7217 (реверсивный счетчик с предустановкой и выводом на 4 разрядный цифровой светодиодный индикатор). Ссылку не даю, гуглится легко.

Ссылка на комментарий
Поделиться на другие сайты

Так то тумблер ,  а не кнопка .

-----------------------------------

Небольшое расследование дребезга. 

RC цепочки вполне справляются . Для элемента без триггера Шмитта добавлен диод для создания несимметрии сигнала на его входе .

Зеленый график - сигнал с генератора , далее соответсвенно схеме напротив .

5a2249755c07f_.thumb.jpg.95acaa2f4148c214ebe20798b25ff3c8.jpg

Ссылка на комментарий
Поделиться на другие сайты

Ребята, отпад просто. И варианты и ликбез. На неделю вперед изучать. Но основной совет я понял: хочешь просто - делай на микроконтроллере. Как мне кажется это и просто и дешево получится.

Всем спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • нечего там смотреть, достаточно взглянуть на картинку- это похоже болячка этой деки- присоединяюсь к теме- у меня такая же проблема!
    • @donec Спасибо, но нет. Слишком всё как то всё сложно и запутано написано там в этом коде.  Я сейчас тем временем продолжаю разбираться с дисплеем. Выяснил причину артефактов на дисплее, а она кроется в коде, но это ещё нужно понять как исправить. Собственно в чём суть дела вывод по одному символу работает корректно и всё отображается правильно, но как только я пытаюсь вывести строку то на дисплее сразу появляются всяческие артефакты. Так что тут получается нужно каким то образом править код вывода строки. Вот весь код написанный под ATMEGA16. #define F_CPU 7372800UL #define BAUND 9600L #define UBRRL_value (F_CPU/(BAUND*16))-1 #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdlib.h> #define MAIN_H_ #define LCD_H_ #define LCD_DDR DDRA #define LCD_PORT PORTA #define LCD_PIN PINA #define DATA 0b11110000 #define RS PA2 #define E PA3 #define E1 LCD_PORT|=(1<<E) #define E0 LCD_PORT&=~(1<<E) #define RS1 LCD_PORT|=(1<<RS) #define RS0 LCD_PORT&=~(1<<RS) void lcd_ini(void); void lcd_str(char* str); void lcd_pos(uint8_t line, uint8_t pos); void lcd_num(uint8_t num, uint8_t line, uint8_t pos); uint8_t n=0; void write(uint8_t n) { n<<=4; E1; //линию Е в 1 LCD_PORT&=~DATA; //удалить предыдущую отправку LCD_PORT|=n; //выставить значение на пины управления дата битами asm("nop"); //пропуск такта E0; //линию Е в 0 } void send_byte(uint8_t byte, uint8_t tip) { if (tip) //если тип данные на линии RS 1 { RS1; } else //иначе тип команда и на линии RS 0 { RS0; } write(byte>>4); //передача старшего полубайта write(byte); //передача младшего полубайта } void lcd_ini(void) { LCD_DDR|=DATA | (1<<RS) | (1<<E); _delay_ms(20); RS0; write(3); _delay_ms(5); write(3); _delay_us(150); write(3); _delay_us(50); write(2); _delay_us(50); send_byte(40,0); _delay_us(50); send_byte(12,0); _delay_us(50); send_byte(1,0); _delay_ms(2); send_byte(6,0); _delay_us(50); } void lcd_str(char* str) { uint8_t n=0; while(str[n]) { send_byte(str[n],1); n++; } } void lcd_pos(uint8_t line, uint8_t pos) { uint8_t adress=(line*0x40+pos)|0x80; send_byte(adress,0); _delay_us(50); } void init_pin(void); #define C_PC0 (~PINC&(1<<PC0)) #define C_PC1 (~PINC&(1<<PC1)) #define LED_1_ON() PORTD|=(1<<PD2) #define LED_1_OFF() PORTD&=~(1<<PD2) #define LED_2_ON() PORTD|=(1<<PD3) #define LED_2_OFF() PORTD&=~(1<<PD3) #define FLAG_END_RX (1<<3) #define FLAG_ERR_RX (1<<4) #define BUF_SIZE 20 char rx_buf[BUF_SIZE]; char buf_index = 0; char rxb; volatile start=1, flags; ISR(USART_RXC_vect) { char rxb = UDR; if(!(flags & FLAG_END_RX)) { rx_buf[buf_index]=rxb; if(rx_buf[buf_index] == 0x0D) { flags |= FLAG_END_RX; return; } buf_index++; if(buf_index >= BUF_SIZE) { buf_index = 0; flags |= FLAG_ERR_RX; } } } void init_UART() { UBRRL = UBRRL_value; UBRRH = UBRRL_value>>8; UCSRB|=(1<<TXEN); UCSRB|=(1<<RXEN); UCSRC|=((1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1)); UCSRB|=(1<<RXCIE); sei(); flags = 0; } void send_UART(char value) { while(!(UCSRA&(1<<UDRE))); UDR=value; } int main(void) { init_pin(); init_UART(); _delay_ms(500); send_UART('O'); send_UART('K'); send_UART('!'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); flags = 0; DDRB = 0b10000000; PORTB = 0b11111111; lcd_ini(); while(1) { if (~PINB & (1<<1)) { send_UART('P'); send_UART('B'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('A',1); lcd_pos(1,0); lcd_str("PORT B1"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("GAMES AND SOFT"); //send_byte(0b01000001,1); //A //send_byte(0x41,1); //A //send_byte('A',1); //A } if (~PINB & (1<<2)) { send_UART('P'); send_UART('B'); send_UART('2'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('B',1); lcd_pos(1,0); lcd_str("PORT B2"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("TIFASO"); } if (~PINB & (1<<3)) { send_UART('P'); send_UART('B'); send_UART('3'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('C',1); lcd_pos(1,0); lcd_str("PORT B3"); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str("HELLO"); //lcd_pos(1,0); //lcd_str("PLAYER BT201"); } if (~PINB & (1<<4)) { send_UART('P'); send_UART('B'); send_UART('4'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('D',1); lcd_pos(1,0); lcd_str("PORT B4"); //lcd_pos(0,0); //lcd_str(" "); //lcd_pos(1,0); //lcd_str(" "); //lcd_str("FILE MUSIC MP3"); //lcd_pos(1,0); //lcd_str("USB PLAYER VOLL"); } char i = 0; if (rx_buf[i] == 'M'){ i++; if (rx_buf[i] == '1') { LED_1_ON(); LED_2_OFF(); } else if (rx_buf[i] == '2') { LED_1_OFF(); LED_2_ON(); } else if (rx_buf[i] == 'T') { LED_1_ON(); LED_2_ON(); } else if (rx_buf[i] == 'K') { LED_1_OFF(); LED_2_OFF(); } } if (C_PC0) { send_UART('P'); send_UART('C'); send_UART('0'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('E',1); lcd_pos(1,0); lcd_str("PORT C0"); } if (C_PC1) { send_UART('P'); send_UART('C'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); lcd_pos(0,0); send_byte('F',1); lcd_pos(1,0); lcd_str("PORT C1"); } } } void init_pin(void) { DDRC = 0b00000000; PORTC = 0b11111111; DDRD |= ((1<<2)|(1<<3)); PORTD &=~ ((1<<2)|(1<<3)); } Собственно за вывод символа отвечает send_byte она работает правильно, а за вывод строки отвечает lcd_str вот в ней как раз таки и вся проблема с артефактами. А что конкретно не так я пока ещё никак не пойму. Может кто более опытным глазом увидит и подскажет что нужно исправить.
    • Может, и дроссель. Синие конденсаторы мне тоже встречались.
    • Мне больше нравятся в жёстком корпусе, которые собираются с помощью двух винтов.  Кстати, они тоже отечественные. 
    • А я о чём написал в начале темы  ? beggar, вы сами пишите - сделали не мало амперметров. Уменьшая пульсации, вы помогаете ампермерметру показать средне - действующее значение. Не ? У вас каждый тиристор плеча управляемого выпрямителя режет свой полупериод, Оставляя обрезок от него. Чем больше иголок в синусоиде, тем тяжелее амперметру с его магнитоэлектрической системой. Она инерционная. Зато самая верная, на мой хилый взгляд. На мотоцикле, китайский аккумулятор проходил 7 лет. Авто аккум. б.у с 2015 года ходит. Правда уже в ИБП. На компьютере. После 8 лет снял. Не хочется рисковать.   А я его купил уже после года эксп. На Авито. И ещё... Собрано очень много зарядных. Конечно простых. Каждое настраивал по амперметру.  А в устройстве не давал. Были контрольные точки регулятора. По 20 лет ходят. Сейчас все бывшие клиенты уже на пенсии.. Одно правда принесли... Без претензий.
×
×
  • Создать...