Во главе. с завихрением

Во главе. с завихрением
Во главе. с завихрением
Anonim

LED Chaser. With Twist

Осветите MCU и ЖК-дисплей вместе с счетчиками 4017.

Требования

  • Компьютер с MPLAB X и компилятором XC8
  • PICKit 3 или эквивалентное устройство для программирования микроконтроллера
  • PIC16F877A
  • Ленточные кабели, штыревые разъемы, ЖК-дисплей 16x2 и кнопочные переключатели
  • Макеты и провода перемычек, если вы хотите макет
  • Детали из списка запасных частей

Введение

Интернет переполняется светодиодами, Knight Riders и различными способами мигать рядом светодиодов по определенной схеме. В этой статье я собираюсь сделать еще один светодиодный чейзер, или Knight Rider, но этот с небольшим завихрением: мы сделаем ЖК-дисплей с меню, которое позволит вам выбирать разные модели и скорости.

Этот проект имеет пять печатных плат: четыре печатных платы со светодиодами и один с микроконтроллером. На печатной плате светодиода есть две микросхемы: счетчик Johnson HCF4017BE. Счетчик имеет один тактовый входной контакт и 10 выходных контактов. Для каждого высокого импульса, полученного на тактовом штыре, следующий выходной контакт устанавливается высоким, начиная с выходного вывода 0. Читайте больше о IC в ссылке.

Последняя печатная плата имеет микроконтроллер PIC16F877A. К этому микроконтроллеру я подключил несколько переключателей, потенциометр и ЖК-дисплей. Часы микроконтроллера на каждом счетчике IC находятся в другом порядке. Микроконтроллер также может сбросить счетчики. В программном обеспечении есть меню, которое позволяет вам выбирать между некоторыми предопределенными шаблонами. Вы перемещаетесь одним из переключателей и выбираете меню с другим. Третий переключатель - это переключатель сброса. Один из шаблонов позволяет использовать потенциометр для изменения скорости для «работающих» светодиодов. Это делается с помощью встроенного модуля ADC микроконтроллера. ADC не будет обсуждаться в этой статье.

аппаратные средства

Чтобы светодиоды «бегали» вперед и назад, я использовал два 4017s для каждого 8 светодиодов. На первом 4017 IC я подключил Q1 к светодиоду один, Q2 к светодиоду два и так далее. Выход на второй 4017 IC подключен в противоположном направлении. Q1 - светодиод восемь, Q2 - светодиод семь и т. Д. Я сделал четыре печатных платы на основе этой схемы:

Image
Image

Нажмите на изображение для полного разрешения

Затем я сделал одну печатную плату из этой схемы:

Image
Image

Нажмите на изображение для полного разрешения

Чтобы сэкономить место, я использовал некоторые SMD-компоненты. Конденсаторы на кристалле микроконтроллера имеют размер 0603. Я никогда не паял ничего такого крошечного, и я был удивлен, насколько это было легко. Мне просто нужна небольшая практика. Другие компоненты SMD имеют размер 0805, кроме очевидных сквозных отверстий.

Список деталей

Вот отредактированный список деталей, созданный EagleCAD. Помните, что вам нужно умножить светодиодную печатную плату на четыре.

Image
Image

Программного обеспечения

Я использую библиотеку Microchip для ЖК-дисплея. Все файлы исходного кода копируются в один большой файл lcd.c, а файл lcd.h редактируется в соответствии с моими подключениями. Меню создается с использованием двух переключателей. Первый цикл обновляет ЖК-дисплей соответствующим текстом и присваивает значение переменной (MenuItem). Когда нажимается переключатель MENUENTER, значение в MenuItem передается на следующий контур переключателя, который выполняет желаемый параметр.

4017 имеет тактовый штырь и штырь сброса. Все штырьки 4017s подключены к разным контактам на микроколлеллере. Все выводы сброса связаны друг с другом и подключены к одному выводу на микроконтроллере. С этой конфигурацией я могу синхронизировать отдельные микросхемы 4017. Поскольку все выводы сброса привязаны к одному выводу на микроконтроллере, мне нужно только надавить на этот вывод, чтобы сбросить все 4017 ИС.

Перемещение по меню осуществляется с помощью кнопки. Для вас одно нажатие может выглядеть как одно нажатие, но для микроконтроллера есть другая история. Коммутатор будет отскакивать, заставляя микроконтроллер думать, что вы нажимаете кнопку много раз, что называется отскоком переключателя. Подробнее об этом здесь: Switch Bounce и как справиться с этим. Я имею дело с этим в программном обеспечении.

У вас есть 14 различных шаблонов в программном обеспечении. Это строка, которая делает параметры меню:


// MENUOPTION STRINGS char prg1() = "RUN 1. 4017 "; // Clocks the first CD4017 char prg2() = "RUN 2. 4017 "; // Clocks the second CD4017 char prg3() = "RUN 3. 4017 "; // … and so on … char prg4() = "RUN 4. 4017 "; char prg5() = "RUN 5. 4017 "; char prg6() = "RUN 6. 4017 "; char prg7() = "RUN 7. 4017 "; char prg8() = "RUN 8. 4017 "; char prg9() = "UP - DOWN "; // LEDs "run" up and down endlessly char prg10() = "USER SPEED "; // User set the speed char prg11() = "RUN ODD "; // Clock only ODD number CD4017 -> 1, 3, 5, 7 char prg12() = "RUN EVEN "; // Clock only EVEN number CD4017 -> 2, 4, 6, 8 char prg13() = "RUN EVEN - ODD "; // Clock first EVEN numbers then ODD numbers -> 2, 4, 6, 8, 7, 5, 3, 1 char prg14() = "RUN ODD - EVEN "; // Clock firs ODD numbers then EVEN numbers -> 7, 5, 3, 1, 2, 4, 6, 8

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

Исходный код

Вывод

В этой статье я сделал еще один светодиодный лабиринт для Интернета, но маленький поворот здесь - это ЖК-дисплей с меню. В общей сложности 32 светодиода работают вверх и вниз или в разных шаблонах. Микроконтроллер имеет несколько неиспользуемых контактов, что означает, что вы можете добавить еще больше печатных плат со светодиодами. Вы за это?

Фотографии и видео

SOT-23 и 0805-резистор:

Image
Image

Я сделал четыре из этих плат:

Image
Image

Это панель управления:

Image
Image
Image
Image

16 x 2 LCD:

Image
Image

Попробуйте этот проект сами! Получить спецификацию.