Atmega88: световые змейки и воздушные дисплеи

Здравствуйте, представляю вам световые эффекты на ATmega88, ниже можно скачать готовые hex файлы, а также asm и inc.

Некоторые программы для ATmega88 для загрузки:
– Программа для отображения в воздухе – DANYK.WZ.CZ (мой старый домен) и улыбка (m88_adresa_smajl.hex)
– 1 светодиодная змея (m88_had1.hex)
– 4 светодиодных змеи (m88_had4.hex)
– 7 светодиодных змей (m88_had7.hex)
– Падающие кирпичи (m88_cihly.hex)
– Двоичный счетчик (m8_binarni_pocitadlo.hex)
– 2 блохи, бегущие друг против друга (m88_2blechy.hex)
– Световая змея (1 горящий светодиод) с плавным движением (яркость с модуляцией PWM) (m88_pwm8.hex)
– Улучшенная ШИМ гладкая змея, 3 светодиода горят (m88_pwm8_kvadr_3led_koment.hex)

Скачать все HEX файлы одним zip архивам можно – здесь

Скачать все ASM + inc файл одним zip архивом можно – здесь.

Схема подключения ATmega88 для программирования и разработки. Используется весь порт D. Выходы являются общими с программирующими выводами, и поэтому во время программирования необходимо отключать светодиоды.

Недавно я начал программировать микроконтроллеры Atmel AVR. Я купил несколько штук ATmega и ATtiny. Я создал простой программатор, подключенный через LPT. По сути, это соединительный кабель, несколько резисторов и источник питания 5 В (с 7805, конечно). В качестве среды разработки и моделирования я использую AVR Studio, загруженную с Atmel, а для программирования я использую PonyProg. Программирование осуществляется путем подключения сигналов MISO, MOSI, SCK и RESET к соответствующим контактам микропроцессора, а также подключения источника питания.
Первые эксперименты привели к появлению легких змей с ATmega8, AVR с 28 контактами и 8 КБ памяти. Я использую порт D, который имеет все 8 контактов и остается свободным даже во время разработки. В порту C немного отсутствует PC7, а PC6 используется в качестве сброса, поэтому у него всего 6 свободных контактов. Порт B используется для программирования и для кристалла для точной синхронизации, поэтому свободными остаются только 3 контакта. После экспериментов со световыми змеями я пришел к дисплею air light. Это матричный дисплей с механическим сканированием, полоса светодиодов отображает текст или изображения в воздухе благодаря постоянству зрения человеческого глаза или камеры. Сначала я попробовал параллельное сканирование, при котором все светодиоды могут гореть одновременно, но это не сработало. Поэтому я перенес последовательное сканирование, характерное тем, что всегда горит не более одного светодиода одновременно, и, таким образом, отображение получается четким (создаются не горизонтальные линии, а точки). Еще одним преимуществом является использование одного резистора для всех светодиодов. Схему программирования и разработки с помощью ATmega8 AVR и аналогичных устройств вы можете увидеть на схеме ниже.

Я также протестировал snakes и aerial display с небольшим 8-контактным разъемом ATtiny13, который имеет 1 КБ памяти и может использовать только 5 контактов (порт B). Выходы являются общими с программирующими выводами, и поэтому во время программирования необходимо отключать светодиоды. Сначала я сделал это вручную, но затем я нашел автоматический способ сделать это: сброс будет регистрировать 0 во время программирования, и поэтому NPN-транзистор закрывается и отключает светодиоды. В остальном все практически так же, как и в случае с другими AVR. Эту схему я мог бы использовать для отображения чисел с помощью 5 светодиодов разных цветов. Даже это дисплей использует последовательное сканирование, при котором одновременно загорается только один светодиод.
Наконец, я перешел к схеме ATmega32. Это большой 40-контактный микропроцессор со всеми четырьмя 8-контактными портами и памятью 32 КБ. В качестве порта программирования используется только порт B. Вход СБРОСА отдельный, не разделяемый с другой функцией. Эту схему я использовал для воздушного дисплея с 16 светодиодами на портах C и D. Необходимо было отключить установочный бит JTAGEN, который связывал контакты PC2…5 с альтернативными функциями. В этой схеме я использовал двойное последовательное сканирование. На каждом из двух портов всегда горит не более одного светодиода. Каждый 8 светодиодов имеет общий резистор. В дополнение к ручному сканированию (размахивание схемой в воздухе) я попытался присоединить печатную плату к двигателю и раскрутить ее, чтобы сформировать дисплей пропеллера. Я использовал мотор от 8-сантиметрового вентилятора ПК и механическую передачу мощности. Для этого двигателя это была большая нагрузка, и он вращался довольно медленно. В следующий раз я планирую использовать более мощный двигатель и индуктивную передачу напряжения с помощью катушек. Схема программатора ATmega32 аналогична схеме ATmega8, но в ней больше неиспользуемых контактов. Распиновку можно найти в техническом описании.

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

OLYMPUS DIGITAL CAMERA

Ps: скачать pdf версию оригинала статьи можно – здесь.

Arduino88

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