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

Контроллер Для Велофары На Attiny


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

Доброго времени суток!

Только начал осваивать МК. Хочу собрать пуль управления велофарой велосипеда. Имеется два светодиода 3 Вт. Дальний и ближний. Драйвера для светодиодов собраны на АМС7135AMC7135(LED-драйвер) .pdf по два на каждый светодиод. Питание три 18650 в параллель.

Что требуется:

* Что бы МК включал и выключал каждый светодиод по отдельности.

* Для каждого светодиода, что бы была своя тактовая кнопка.

Реально ли это сделать без применения транзисторных ключей. Хотя это и не критично.

ШИМ драйвер не имеет. Но могу и ошибиться.

За любую помощь за ранее благодарен!

post-194458-0-93560100-1462385130_thumb.gif

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

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

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

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

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

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

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

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

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

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

delay_ms(10);
oldLong= Long;
oldShort= Short;
Long= buttonL; // читаем состояние кнопки управления дальним светом
Short= buttonS; // читаем состояние кнопки управления ближним светом
if(oldLong && !Long) ledLong= ~ledLong; // меняем состояние дальнего
if(oldShor && !Short) ledShort= ~ledShort; // меняем состояние ближнего

Я не раздаю удочки. Я продаю рыбу.

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

Если правильно разобрался, то схема управления должна бить такой. Резисторы R1, R2 рассчитываются согласно тока базы транзиторов? Транзисторы брать не менее 1А? По параметрам подходят КТ815. Ток базы 0,5А. Нужны ли резисторы?

post-194458-0-02384900-1462430980_thumb.gif

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

Посмотри в мою тему выше. http://forum.cxem.net/index.php?showtopic=162865 возможно тебе это пригодится. Я правда не знаю нужно ли тебе экономить электричество, но работа с портом там есть. Кстати, можно узнать какой смысл вообще в создании подобной фары. Их вроде бы китайцы продают много. У меня то просто корпус завалялся с мертвой начинкой.

Если правильно разобрался, то схема управления должна бить такой. Резисторы R1, R2 рассчитываются согласно тока базы транзиторов? Транзисторы брать не менее 1А? По параметрам подходят КТ815. Ток базы 0,5А. Нужны ли резисторы?

Возьмите лучше полевики и выбросьте резисторы к чертям.

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

Пример кода чего ? Зажигания светодиода ? Или опроса кнопки ? Какой там код... обычная работа с портом :crazy:

Прошу прощения за неграмотность, но только делаю первые шаги к микроконтроллерам. Могу не совсем верно формулировать вопросы. Далее выложил схему. К примеру кнопка S1-ближний свет, S2-дальний. Нужно, что бы S1 включала и выключала ближний, S2-соответсвенно дальний. Возможно ли это на Attiny13?

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

Посмотри в мою тему выше. http://forum.cxem.ne...howtopic=162865 возможно тебе это пригодится. Я правда не знаю нужно ли тебе экономить электричество, но работа с портом там есть. Кстати, можно узнать какой смысл вообще в создании подобной фары. Их вроде бы китайцы продают много. У меня то просто корпус завалялся с мертвой начинкой.

Дело в том, что сделал себе фару на работе. Два отдельных модуля по 3 Вт. У китайцев в три раза дороже выйдет. На каждый модуль прицепил по обычной кнопке с фиксацией. Полнейшее авно. Не всегда включается с первого разу и тд. и тп. Родилась идея сделать на МК. Есть программатор USB ASP.

На счет полевиков. Обычные MOSFET от 2А подойдут?

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

Пример кода чего ? Зажигания светодиода ? Или опроса кнопки ? Какой там код... обычная работа с портом :crazy:

Прошу прощения за неграмотность, но только делаю первые шаги к микроконтроллерам. Могу не совсем верно формулировать вопросы. Далее выложил схему. К примеру кнопка S1-ближний свет, S2-дальний. Нужно, что бы S1 включала и выключала ближний, S2-соответсвенно дальний. Возможно ли это на Attiny13?

Да, возможно. Как раз 2 канала есть. Только вот не понятно зачем вам вообще ШИМ, есть вроде бы драйверы с настройкой тока подстроечным резистором, amc7136 например. Можно тупо 2 кнопки повесить с фиксацией и ничего не контролировать контроллером. Контроллер был бы смысл использовать если бы Вам было нужно несколько режимов к примеру. контроль заряда опять же.

По транзисторам не подскажу точно, ибо нуб, но видимо да.

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

Ток базы 0,5А.
Откуда такие цифры ? :crazy:

Не туда глянул. Это максимально допустимые параметры. У Терещука смотрел.

Пример кода чего ? Зажигания светодиода ? Или опроса кнопки ? Какой там код... обычная работа с портом :crazy:

Прошу прощения за неграмотность, но только делаю первые шаги к микроконтроллерам. Могу не совсем верно формулировать вопросы. Далее выложил схему. К примеру кнопка S1-ближний свет, S2-дальний. Нужно, что бы S1 включала и выключала ближний, S2-соответсвенно дальний. Возможно ли это на Attiny13?

Да, возможно. Как раз 2 канала есть. Только вот не понятно зачем вам вообще ШИМ, есть вроде бы драйверы с настройкой тока подстроечным резистором, amc7136 например. Можно тупо 2 кнопки повесить с фиксацией и ничего не контролировать контроллером. Контроллер был бы смысл использовать если бы Вам было нужно несколько режимов к примеру. контроль заряда опять же.

По транзисторам не подскажу точно, ибо нуб, но видимо да.

Дело в том, что делаю из уже имеющегося на руках. АМС7135. (согласно выше приведённой схеме) Да и вообще попробовать охота. Контроль заряда имеется. Китайский. Нужно именно включать-выключать. Почему так: удобно на одной рукоятке иметь такой переключатель. По поводу дребезга контактов. Это очень важно?

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

Alex.

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

Задача то очень простая. Достаточно посмотреть первые 3 урока у Кобзара, и сделать эту штуку и а 5-10 минут. Если прям совсем читать и смотреть ничего не хочется, позвоните мне на скайп.

Не знаеш как? Спроси у Google'а !!!

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

Это очень важно?
Вообще то да, потому что кнопки редко работаю именно прям вот четко. Хотя если у Вас будут не кнопки, а постоянные выключатели, то тут дребезг можно не обрабатывать особо. Но желательно, потому, что на велике даже с постоянной кнопкой могут быть проблемы от вибрации и что бы не мигало это все можно и нужно внести некоторую задержку.

Примеров валом. Просто поищи. Вот в частности, именно по Tiny13 http://sokolsp.at.ua/publ/assembler_dlja_nachinajushhikh_pervyj_shag/1-1-0-12

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

По поводу дребезга. Достаточно ли установить задержку срабатывания к примеру 0.5 сек? Тоесть удерживаю кн. 0.5 сек. и тогда происходит переключение.

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

1. А как себя поведут параллельно включенные АМС7135? Не будет ли одна мешать другой?

2. А если управлять слаботочным входом АМС7135?

На форумах принято общаться на "ты", что не является оскорбительным и подразумевает равноправие

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

удерживаю кн. 0.5 сек. и тогда происходит переключение.

отпускаете - а оно один хрен переключается. Нужен антидребезг, а не время удержания.

Я не раздаю удочки. Я продаю рыбу.

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

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

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

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

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

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

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

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

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

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

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

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

    • @korsaj Сегодня попробовал сделать как ты посоветовал. Получился следующий код. #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> 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; volatile start=1, flags; char b; ISR(USART_RXC_vect) { b=UDR; if(!(flags & FLAG_END_RX)) { rx_buf[buf_index]=UDR; 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(); while(1) { if (start==1) { _delay_ms(500); send_UART('O'); send_UART('K'); send_UART('!'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); start=0; } if (b == '0') { LED_1_ON(); LED_2_OFF(); send_UART('N'); send_UART('+'); send_UART('0'); send_UART('0'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); b=4; } if (b == '1') { LED_1_OFF(); LED_2_ON(); send_UART('N'); send_UART('+'); send_UART('0'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); b=4; } if (b == '2') { LED_1_ON(); LED_2_ON(); send_UART('N'); send_UART('+'); send_UART('0'); send_UART('2'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); b=4; } if (b == '3') { LED_1_OFF(); LED_2_OFF(); send_UART('N'); send_UART('+'); send_UART('0'); send_UART('3'); send_UART(0x0D); send_UART(0x0A); _delay_ms(10); b=4; } if (C_PC0) { send_UART('P'); send_UART('C'); send_UART('0'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); } if (C_PC1) { send_UART('P'); send_UART('C'); send_UART('1'); send_UART(0x0D); send_UART(0x0A); _delay_ms(250); } } } void init_pin(void) { DDRC = 0b00000000; PORTC = 0b11111111; DDRD |= ((1<<2)|(1<<3)); PORTD &=~ ((1<<2)|(1<<3)); } Ну как сказать всё работает, но вот меня очень интересует приём команд на саму ATMEGA16. Он так и работает только с цифрами. Более ничего корректно принять не получается даже используя таблицу ascii. А мне нужно будет принимать команды и посложней чем просто буквенно - цифровые. Потому как возвращаясь к командам самого плеера там в этих командах хранятся различные данные. Вот примерно так это всё выглядит. AT+QM \ r \ n Запрос режима работы [0: Bluetooth], [1: MP3] AT+M1 \ r \ n Номер текущего файла AT+M2 \ r \ n Общее количество звуковых файлов AT+MD \ r \ n Источник музыки USB или SD Card AT+MT \ r \ n Общее время воспроизведения текущего файла AT+MK \ r \ n Время воспроизведения текущего файла AT+MP \ r \ n Текущее состояние плеера [0]Стоп, [1]Воспроизведение, [2]Пауза К примеру при отправке команды AT+M1 \ r \ n в ответ мы получим M1 + 000002 \ r \ n при этом здесь может быть любое число в hex формате. Мне же нужно каким то образом принять эти данные и обработать их соответствующим образом. Но при этом и нужно учитывать так же что плеер может сам отправить эти данные по началу воспроизведения трека. Вот в этом сейчас и стоит основная задача. Чего я и пытаюсь получить в итоге.
    • Ну тогда дорога к сименсу в гости - они вам какой-нибудь Desigo CC или даже Siematic предложат, тыщ за 10 долларов. Ну и ещё тыщ 5 надо будет отдать за контроллеры и их конфигурирование.   А если попроще - то можно к отечественным MasterSCADA обратиться, либо к WiredBoard - у них не совсем SCADA система, но нормальные контроллеры, довольно просто настраиваются и можно графическую оболочку рисовать.
    • тогда вы имеете то, что имеете, и никак от этого не избавиться. Хоть святой водой окропите. "Или трусы или крестик" (с) Нагрузки у вас немаленькие. Вы же с нуля переделываете, снова некуда ? Понятие LowESR очень неконкретное. Сколько вешать в граммах ? пустая трата времени
    • Да все это туфта, выеденного яйца не стоит. В общем чушь собачья. На мониторе тему уже сплавили в мусорку, а здесь треп еще будет на 10 страницах. Все камеры, их у него было три, исправные. Записывают отлично. А дальше вся проблема в этом. Особо интересно - монтажник видео.
    • 1. А это как определяется?  Так пробовали на другом смотреть? 2. Так как всё-таки смотрели - напрямую с камеры или "Копирование файлов на компьютер ничего не меняет по сравнению с просмотром с камеры напрямую"?
    • Может быть повторюсь, но - самому впаивать в имеющую схему радиодетали не имею желания, хочется узнать - может есть в природе плата, которую необходимо будет просто приобрести и  расключить правильно? Я так понимаю один канал надо инвертировать, но чем. Вопрос только в этом
×
×
  • Создать...