Главная » Микроконтроллеры » Простая имитация чайной свечи на основе ATtiny13A. Схема

Простая имитация чайной свечи на основе ATtiny13A. Схема

Тестер транзисторов / ESR-метр / генератор
Многофункциональный прибор для проверки транзисторов, диодов, тиристоров...
Подробнее

Код моделирования основан на великой работе Марка Шермана. Для большинства светодиодных свечей случайное мерцание довольно примитивное, и они лишены довольно «жуткого» элемент света свечи: движущейся тени, отбрасываемой свечой.

В данной конструкции четыре светодиода расположены в квадрате, их яркость образует «центр» светового баланса, который можно плавно перемещать.

Этот «основанный на физике» свет свечи обладает следующими свойствами:

  • У «пламени» есть положение и скорость.
  • Если положение не отцентрировано, скорость будет увеличиваться к центру пропорционально смещению (закон пружин Гука).
  • Случайные «толчки» в центральное положение света выполняются для имитации случайных сквозняков.
  • Сила сквозняков периодически меняется (чередование периодов затишья и ветра).

Простая имитация чайной свечи на основе ATtiny13A. Схема

Генератор псевдослучайных чисел

Реализация моделирования свечи требует случайных чисел для реалистичного мерцания свечи. Однако обычные библиотеки для генерации случайных чисел требуют относительно большого объема памяти. К счастью, Лукаш Подкалицкий разработал легкий генератор случайных чисел на основе сдвигового регистра с линейной обратной связью Галуа для ATtiny13A.

Этот метод гнерации используется и в конструкции данной светодиодной свечи, но с небольшими изменениями. При компиляции этой функции требуется всего 86 байт флэш-памяти.

//Начальное состояние (подойдет любое ненулевое значение)
uint16_t rn = 0xACE1;

// Генератор псевдослучайных чисел
uint16_t prng(uint16_t maxvalue) {
rn = (rn >> 0x01) ^ (-(rn & 0x01) & 0xB400);
return(rn % maxvalue);
}

Компиляция и загрузка прошивки с использованием Arduino IDE

  • Убедитесь, что вы установили MicroCore .
  • Перейдите в Инструменты -> Плата -> MicroCore и выберите ATtiny13.
  • Перейдите в Инструменты и выберите следующие параметры платы: (Clock: 1.2 MHz internal osc.; BOD: disabled; Timing: Micros disabled)
  • Подключите программатор к компьютеру и к разъему ICSP на плате.
  • Перейдите в Инструменты -> Программатор и выберите свой ISP-программатор (например, USBasp ).
  • Перейдите в Инструменты -> Записать загрузчик, чтобы записать фьюзы.
  • Откройте Candle.ino и нажмите « Загрузить».

Скачать файлы проекта (60,0 KiB, скачано: 66)




Добавить комментарий