Ви не увійшли.
Розроблений прототип генератора на ATMEGA328P з OLED 0.96" та енкодером споживає біля 15 міліампер. Потрібно удосконалити - мінімізувати споживання єнергії або розробити новий на іншій апаратній базі.
Технічне завдання
Опис завдання
Метою є розробка регульованого генератора прямокутних імпульсів з індикацією на OLED/E-Ink - дисплеї, який працюватиме в двох режимах: асинхронному або синхронному. Налаштування частоти коливань генератора – енкодером з кнопкою. Додатково пристрій повинен контролювати рівень напруги батареї і видавати звуковий сигнал у разі низького рівня. Енергоспоживання пристрою не повинно перевищувати силу струму 5 мА при 3.3 вольт. Мікроконтролер AVR, MPS430 або інші .Дисплей: Oled – 0.96” 128x64, E-ink – 1.54”
Вимоги до функціоналу
1. Генератор імпульсів:
Діапазон частоти: 30 - 300 імпульсів на хвилину.
Регулювання частоти здійснюється користувачем.
Індикація поточної частоти на OLED/E-ink дисплеї.
2. Режими роботи:
Асинхронний режим:
Генератор працює незалежно.
Синхронний режим:
Генератор працює у відповідь на синхронізаційні імпульси.
Алгоритм роботи у синхронному режимі буде надано окремо.
Перемикання між режимами здійснюється апаратним перемикачем.
3. Контроль напруги:
Періодичний контроль рівня напруги батареї.
В разі низького рівня напруги (нижче певного порогу) видавати звуковий сигнал через пьєзовипромінювач.
Індикація рівня напруги на OLED /E-ink дисплеї.
Технічні характеристики
1. Живлення:
Автономне - номінальна напруга: 3.3 В.
Максимальна сила струму: 5 мА.
2. Компоненти:
Мікроконтролер з низьким енергоспоживанням.
OLED/E-ink дисплей для відображення частоти імпульсів та стану батареї.
Енкодер із кнопкою.
Пьєзовипромінювач для звукових сигналів.
Апаратний перемикач для вибору режиму роботи.
Вимоги до програмного забезпечення
1. Інтерфейс:
Інтерфейс для користувача має бути простим та інтуїтивно зрозумілим.
OLED/E-ink дисплей повинен відображати поточну частоту імпульсів, режим роботи асинхронний/синхронний та стан батареї.
2. Енергоспоживання:
Використання режимів сну мікроконтролера для зниження енергоспоживання в періоди бездіяльності.
Оптимізація програмного коду для мінімізації споживання енергії.
Алгоритми:
1. Асинхронний режим:
Генерація імпульсів з заданою частотою незалежно від зовнішніх сигналів.
2. Синхронний режим:
Очікування синхронізаційного імпульсу.
Генерація імпульсів у відповідь на синхронізаційні імпульси.
Детальний алгоритм буде надано окремо.
3. Контроль напруги:
Періодичне вимірювання напруги батареї(раз на годину).
Видача звукового сигналу при низькому рівні напруги.
Відображення стану батареї на дисплеї.
Тестування
1. Функціональне тестування:
Перевірка коректності генерації імпульсів в обох режимах.
Перевірка правильності відображення частоти на дисплеї.
2. Тестування енергоспоживання:
Перевірка відповідності заявленим характеристикам енергоспоживання.
3. Навантажувальне тестування:
Тестування системи під різними умовами навантаження.
Документація
1. Технічна документація:
Опис апаратної та програмної архітектури системи в довільній формі.
Вимоги до розробника
1. Досвід роботи з мікроконтролерами та периферійними пристроями (OLED, E-ink, енкодерами).
2. Навички програмування на мовах C/C++ для мікроконтролерів.
3. Знання принципів енергозбереження в системах на основі мікроконтролерів.
Термін виконання
Термін виконання завдання - 7 днів з моменту укладання угоди.
Оплата по домовленості
Для додаткових запитань та уточнень, будь ласка, зв'яжіться зі мною по e-mail.
Неактивний
Сама Atmega328p при 16 МГц і споживає біля 10-14 мА в активному режимі. На чому написана прошивка? Якщо це ардуіна, то мабуть крутиться постійно в активному режимі, без будь-якої сплячки.
Спробуйте в setup() додати:
set_sleep_mode(SLEEP_MODE_IDLE);
а в loop():
sleep_mode();
Переривання від таймера все одно буде виводити процесор зі сплячки приблизно кожну мілісекунду, для опитування кнопок і енкодера має вистачати.
Може й вдастся знизити в середньому до 2-5 мА.
В даташиті є цілий розділ "9.10 Minimizing Power Consumption" з рекомендаціями, як знизити споживання. Повідключайте непротрібну периферію. Зменшіть тактову частоту ядра.
Плюс OLED може суттєво споживати, в залежності від кількості активних пікселів та яскравості. Можна зменшити яскравіть. Можна вимикати через деякий час неактивності.
Неактивний
Дякую за повідомлення.
Код писався в Arduino IDE під Nano. Розумію, що можливо досягти мети, так як режим роботи статичний (подав напругу, вибрав при потребі відповідну частоту, включив дисплей на 10-20 сек і працюємо в такому режимі до змін в налаштуванні. Ще можливо перевести мікроконтролер на частоту 8 мГЦ.
З повагою,
Юрій (початківець, з перервою в програмуванні на ASM в 30 років).
Запитання: Вибачте не знаю як до Вас звертатись. Якщо у Вас є бажання та час на співпрацю за кошти - то будь ласка напишіть
Неактивний
Запитання: Вибачте не знаю як до Вас звертатись. Якщо у Вас є бажання та час на співпрацю за кошти - то будь ласка напишіть
Дмитро. Нажаль, часу займатись ще одним проектом не маю. Можу тільки іноді давати безкоштовні поради з метою підвищення кваліфікації спеціалістів у галузі
Неактивний
Вопросы?
1. Какова требуемая точность частоты? (от этого зависит нужен ли кварц)
2. Скважность импульсов - 50% ?
3. Выходное напряжение - 3.3V?
В плане минипотребления при питании в 3.3V рекомендую обратить внимание на stm32. Ну или на seeduino/Arduino Pico, хотя они слабее по документации и удобству программирования.
Неактивний
Здравствуйте Theoristos!
Как Вы заметили процессы медленные.
** Стабильность Частоты +/- 5%, можно использовать внутренюю RC
** Длительность импульсов во всем диапазоне - 2 милисекунды
**Выходное напряжение 3.3 вольта
По поводу потребления, видел проекты наручных часов с Atmega328P и OLED SSD1306 с потреблением до 2 мили ампер при питании 2.5 вольта (если интересно сброшу ссылку).
К сожелению я не спец в программировании и не получаеться корректно использовать "сон" и "прерывания.
Готов обсудить Ваши предложения. С уважением Юрий
Неактивний