Новичок
Регистрация: 16.03.2020
Сообщений: 18
Репутация: 10
|
Добрый день, форумчане. Такая задача. Хочу создать несколько устройств на светодиодах. Задача каждого в том, чтобы от движения (датчик вибрации, наклона) светодиод начинал моргать, переливаться и т.д. Подпитывается всё от батарейки, конечно же как можно меньших размеров (таблетка).
Собственно я уже реализовал такое пробное устройство на ATtiny13, вибродатчике 18015 и батарейке CR1220. Всё работает, но хотелось бы это дело и удешевить и уменьшить в размерах, если это конечно же возможно. Особо в параметрах МК я не разбираюсь, но могу сказать что мне от неё точно нужно: 1) Маленький размер 2) Как минимум 1 канал ШИМ (а лучше 3, для переливания трёх светодиодов RGB) 3) Память на 1Кб (программу для одного такого устройства приложу ниже, может её можно и сократить, но не факт что такую же, но на три диода получится ужать) 4) Низкое потребление или возможность подключения режимов с низким потреблением. 5) Работа от 3В. (от таблетки) 6) Возможность программирования через Arduino UNO (но другие варианты тоже рассматриваю, просто Arduino уже есть) Повторюсь пока что нашел и использовал только ATtiny13, который меня вполне устроил, но он достаточно дорогой и в корпусе SOIC его найти достаточно проблематично. К тому же как мне показалось, он слишком хорош для такого проекта. Повторюсь, я чайник, и может есть какие-то более дешевые аналоги. Очень надеюсь на Вашу помощь. Заранее большое Вам спасибо! Прикладываю обещанный мною код: int vib = 4; int led = 0; long loopTime = 5000; void setup() { pinMode(led, OUTPUT); pinMode(vib, INPUT); } void loop() { if (digitalRead(vib)){ unsigned long currentMillis = millis(); while(millis()-currentMillis<=loopTime) { for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 0; fadeValue <=255; fadeValue+=5){ analogWrite(led,fadeValue); delay(2); } for(int fadeValue = 255; fadeValue >=0; fadeValue-=5){ analogWrite(led,fadeValue); delay(2); } digitalWrite(led, LOW); delay(600); } } } |
||
Оценка
|
Эксперт
Регистрация: 08.11.2009
Сообщений: 2,310
Репутация: 641
|
|
||
Оценка
|
Новичок
Регистрация: 16.03.2020
Сообщений: 18
Репутация: 10
|
Цитата:
|
||
Оценка
|
Гуру
Регистрация: 28.06.2012
Сообщений: 4,893
Репутация: 1177
|
Да, но ведь там на рисунке - три канала ! Т.е., для одного RGB - светодиода нужны три PWM - выхода. Но PWM (ШИМ) при желании несложно реализовать чисто программно, например, через прерывание от таймера ...
|
||
Оценка
|
Новичок
Регистрация: 16.03.2020
Сообщений: 18
Репутация: 10
|
Цитата:
Но вопрос про подбор МК остаётся открытым. Или 13 тинька лучшая в этом плане? |
||
Оценка
|
Гуру
Регистрация: 28.06.2012
Сообщений: 4,893
Репутация: 1177
|
"Кому нравится шампанское, кому - офицеры", как говорила одна моя знакомая ...
У меня любимый МК - ATMEGA8, я на нем по умолчанию все делаю, если нет спец. требований. И вообще, вы для разработки можете взять любой удобный для вас МК, а потом готовый проект перенести на тот, который планировали пустить в серию (если у вас серия). Просто потому, что дешевые МК с малым кол-вом ножек часто неудобны в разработке и прошивке (приходится искать всякий спец. инструментарий) ... |
||
Оценка
|
Новичок
Регистрация: 16.03.2020
Сообщений: 18
Репутация: 10
|
Цитата:
"Кому нравится шампанское, кому - офицеры", как говорила одна моя знакомая ...
У меня любимый МК - ATMEGA8, я на нем по умолчанию все делаю, если нет спец. требований. И вообще, вы для разработки можете взять любой удобный для вас МК, а потом готовый проект перенести на тот, который планировали пустить в серию (если у вас серия). Просто потому, что дешевые МК с малым кол-вом ножек часто неудобны в разработке и прошивке (приходится искать всякий спец. инструментарий) ... |
||
Оценка
|
Ответ |
Страница 1 из 4
|
Метки |
attiny, avr, микроконтроллер, устройство, шим |
Похожие темы |
|
|
Обратная связь РадиоЛоцман Вверх |