9zip.ru - технологии для людей
9zip.ru Инструкции Если не хватает выводов МК

Наткнулся я в очередной раз на типичную проблему. Надо было включить в схему несколько светодиодов, а ног нехватало. Переходить на другой процессор было неудобно, и пришлось выдумывать очередной финт (или "hint"?).

Подключение светодиодов к МК Оказалось, что можно включить светодиоды вот так.

Смотрите, если на одну ногу подать единичку, на другую - ноль, а третью оставить входом, загорится только один светодиод. Ну а уж про мультиплексный режим, я надеюсь, вам рассказывать не нужно.

Можно выдумать мультиплексный режим, при котором зажигаются одновременно по два светодиода. В таком случае общая яркость увеличится (скважность больше). К сожалению, при этом яркость каждого светодиода будет зависеть от светящейся комбинации. Хотя в большинстве случаев это несущественно.

Таким образом можно повесить шесть светодиодов на три ноги, двенадцать - на четыре и т.д. Впрочем, советую не увлекаться.

Особенно удобно использовать такую схему для включения двуцветных светодиодов, которые соединены внутри встречно-параллельно.

Ниже приведен пример программы. Он компилировался AVR-GCC 3.3 для ATmega163. Светодиоды были подключены к ногами PB.0 - PB.3. В этом примере одновременно зажигаются до двух светодиодов (скважность 1/3).

Собственно процедура регенерации выглядит примерно так:

unsigned char leds; // Bits are the leds states

void LEDs_refresh(void)
{
static unsigned char state; // Current refresh state

OFF(); // Turn all pins to High-Z

switch (state)
{
default:
CLR_0(); // Turn pin 0 low
if (leds & 1) {SET_1();} // Turn pin 1 high for led 1
if (leds & 2) {SET_2();} // Turn pin 2 high for led 2
state=1; // Next state
break;
case 1:
CLR_1(); // Turn pin 1 low
if (leds & 4) {SET_0();} // Turn pin 0 high for led 3
if (leds & 8) {SET_2();} // Turn pin 2 high for led 4
state=2; // Next state
break;
case 2:
CLR_2(); // Turn pin 2 low
if (leds & 16) {SET_0();} // Turn pin 0 high for led 5
if (leds & 32) {SET_1();} // Turn pin 1 high for led 6
state=0; // Next state
break;
}
}

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


13 нравится? 8


01.02.2015 © 9zip.ru
Авторские права охраняет Роскомнадзор

Понравилась статья?
Робот Вертер говорит:
поделись с друзьями!

Хочешь почитать ещё про инструкции? Вот что наиболее популярно на этой неделе:
Триодный усилитель 6Н7С и 6Н8С
Советы по доработкам усилителя Амфитон
Согласование усилителя с аккустической системой



Есть вопросы, комментарии? Напиши:

Имя
Комментарий
Длина текста:
число с картинки
Правила прочитал(а)
Как вставить картинку в свой комментарий?

Пользовательские теги: 9zip если не хватает ножек на микроконтроллере [ Что это? ]

Дальше в разделе Инструкции: Описание работы схемы центрифуги, Электродвигатель питается от сети переменного тока напряжением 220 В частотой 50 Гц. Под крышкой центрифуги установлен выключатель, блокирующий включение двигателя при открытой крышке. Установкой требуемой выдержки времени подготавливают цепи включения реле и нагревателя.

Главная 9zip.ru База знаний радиолюбителя Контакты
Девять кучек хлама:

Радиотехника, электроника и схемы своими руками Ремонт домашней электроники Виртуальный музей старых радиодеталей XX века Ламповый звук hi-end и ретро электроника Катушки Теслы Радиодетали и модули с Aliexpress Интернет и сети, компьютеры и программы Категория свободна Инструкции


Дайджест
радиосхем

Новые схемы интернета - в одном месте!

 5.9 USB программатор для микроконтроллеров AT89C на ...
 23.8 VTTC на 1с38а
 17.8 Часы на основе К176ИЕ12 адаптированные для работы ...

Задай вопрос радиолюбителям!


17.9 На плёночном конденсаторе такая маркировка: FL ...
1
28.8 Электродвигатель ЭГД-4 от советского проигрывателя ...
2
25.8 Я купил новые аккумуляторы 18650. Установил их в ...
4