Подключение светодиода к линии порта ввода/вывода
Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров AVR.
Пример будем рассматривать на микроконтроллере ATMega8.
Программу писать будем в Atmel Studio 6.0.
Эмулировать схему будем в Proteus 7 Professional.
Первым примером в изучении микроконтроллеров является подключение и управление светодиодом, это самый простой и наглядный пример. Этот пример стал классическим при изучении микроконтроллеров, как программа «Hello World!» при изучении прочих языков программирования.
Максимальный ток, который способен пропустить каждый порт ввода/вывода составляет 40 mA.
Максимальный ток, который способна пропускать каждая линия порта ввода/вывода составляет 20 mA.
Прежде чем подключать нагрузку, в том числе и светодиод к линиям порта ввода/вывода нужно знать, что можно спалить микроконтроллер превысив допустимую нагрузку на линию порта ввода/вывода.
Что бы ограничить ток, который протекает через линии порта ввода/вывода микроконтроллера нужно рассчитать и подключить резистор.

Рис: Рапиновка светодиода.

Рис: Подключение светодиода анодом к микроконтроллеру.

Рис: Подключение светодиода катодом к микроконтроллеру.
Сопротивление токоограничивающего резистора подключаемого к линиям портов ввода/вывода при подключении светодиода рассчитывается по формуле:

где:
— Vs — напряжение источника питания;
— Vsp — падение напряжения на линии порта ввода/вывода;
— Vd — прямое падения напряжения на светодиоде;
— Id — прямой ток на светодиоде;
— Кn — коэффициент надежности роботы светодиода;
Пример:
— напряжение источника питания – 5В;
— прямое падения напряжения на светодиоде – 2В (Берётся с datasheet на светодиод);
— прямой ток на светодиоде – 10мА (Берётся с datasheet на светодиод);
— коэффициент надежности роботы светодиода – 75% (Берётся с datasheet на светодиод);
— падение напряжения на линии порта ввода/вывода – 0,5В (Берётся с datasheet на микроконтроллер: Vol(output low voltage) – если ток втекает, и Voh (output high voltage) – если ток вытекает);

Таким образом номинал резистора R = 166,66 Om, подбирается ближайшее большее значение сопротивления.
Если не известно прямое напряжение светодиода, сопротивление можно рассчитать по закону Ома.

где:
— U — напряжение, приложенное к участку цепи;
— I — номинальный ток линии порта ввода/вывода.
Пример:
— напряжение, приложенное к участку цепи – 4,5В;
— номинальный ток линии порта ввода/вывода – 20мА.

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

где:
— U – напряжение, приложенное к участку цепи;
— I — номинальный ток линии порта ввода/вывода.
Пример:
— напряжение, приложенное к участку цепи – 4,5В;
— прямой ток на светодиоде – 20мА.

Рассчитав выделяемую мощность на резисторе, выбираем ближайшее большее значение мощности резистора. Если рассеиваемой мощности резистора будет недостаточной, то он может выйти из строя.
— подключения маломощного светодиода анодом к линии порта ввода/вывода:

— подключения маломощного светодиода катодом к линии порта ввода/вывода:

— подключения маломощного светодиода анодом и катодом к линии порта ввода/вывода:
Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров AVR.
- Часть 1. Работа портов ввода/вывода
- Часть 2. Подключение светодиода к линии порта ввода/вывода
- Часть 3. Подключение транзистора к линии порта ввода/вывода
- Часть 4. Подключение кнопки к линии порта ввода/вывода
Пример будем рассматривать на микроконтроллере ATMega8.
Программу писать будем в Atmel Studio 6.0.
Эмулировать схему будем в Proteus 7 Professional.
Первым примером в изучении микроконтроллеров является подключение и управление светодиодом, это самый простой и наглядный пример. Этот пример стал классическим при изучении микроконтроллеров, как программа «Hello World!» при изучении прочих языков программирования.
Максимальный ток, который способен пропустить каждый порт ввода/вывода составляет 40 mA.
Максимальный ток, который способна пропускать каждая линия порта ввода/вывода составляет 20 mA.
Прежде чем подключать нагрузку, в том числе и светодиод к линиям порта ввода/вывода нужно знать, что можно спалить микроконтроллер превысив допустимую нагрузку на линию порта ввода/вывода.
Что бы ограничить ток, который протекает через линии порта ввода/вывода микроконтроллера нужно рассчитать и подключить резистор.

Рис: Рапиновка светодиода.

Рис: Подключение светодиода анодом к микроконтроллеру.

Рис: Подключение светодиода катодом к микроконтроллеру.
Сопротивление токоограничивающего резистора подключаемого к линиям портов ввода/вывода при подключении светодиода рассчитывается по формуле:

где:
— Vs — напряжение источника питания;
— Vsp — падение напряжения на линии порта ввода/вывода;
— Vd — прямое падения напряжения на светодиоде;
— Id — прямой ток на светодиоде;
— Кn — коэффициент надежности роботы светодиода;
Пример:
— напряжение источника питания – 5В;
— прямое падения напряжения на светодиоде – 2В (Берётся с datasheet на светодиод);
— прямой ток на светодиоде – 10мА (Берётся с datasheet на светодиод);
— коэффициент надежности роботы светодиода – 75% (Берётся с datasheet на светодиод);
— падение напряжения на линии порта ввода/вывода – 0,5В (Берётся с datasheet на микроконтроллер: Vol(output low voltage) – если ток втекает, и Voh (output high voltage) – если ток вытекает);

Таким образом номинал резистора R = 166,66 Om, подбирается ближайшее большее значение сопротивления.
Если не известно прямое напряжение светодиода, сопротивление можно рассчитать по закону Ома.

где:
— U — напряжение, приложенное к участку цепи;
— I — номинальный ток линии порта ввода/вывода.
Пример:
— напряжение, приложенное к участку цепи – 4,5В;
— номинальный ток линии порта ввода/вывода – 20мА.

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

где:
— U – напряжение, приложенное к участку цепи;
— I — номинальный ток линии порта ввода/вывода.
Пример:
— напряжение, приложенное к участку цепи – 4,5В;
— прямой ток на светодиоде – 20мА.

Рассчитав выделяемую мощность на резисторе, выбираем ближайшее большее значение мощности резистора. Если рассеиваемой мощности резистора будет недостаточной, то он может выйти из строя.
— подключения маломощного светодиода анодом к линии порта ввода/вывода:

// Подключаем внешние библиотеки
#include <AVR/io.h>
#include <stdint.h>
// Основная программа
int main(void)
{
// Настраиваем порты ввода/вывода
DDRC = 0b11111111; //Настраиваем все разрады порта С на режим "Выход"
PORTC = 0b11111111; //Устанавливаем все разряды порта C в лог.«1» (Навыходе порта напряжение равное Vcc)
// Вечный цикл
while (1)
{
}
}
— подключения маломощного светодиода катодом к линии порта ввода/вывода:

// Подключаем внешние библиотеки
#include <AVR/io.h>
#include <stdint.h>
// Основная программа
int main(void)
{
// Настраиваем порты ввода/вывода
DDRC = 0b11111111; //Настраиваем все разряды порта С на режим "Выход"
PORTC = 0b00000000; //Устанавливаем все разряды порта C в лог.«0» (На выходе порта напряжение равное GND)
// Вечный цикл
while (1)
{
}
}
— подключения маломощного светодиода анодом и катодом к линии порта ввода/вывода:

// Подключаем внешние библиотеки
#include <AVR/io.h>
#include <stdint.h>
// Основная программа
int main(void)
{
// Настраиваем порты ввода/вывода
DDRD = 0b11111111; //Настраиваем все разряды порта D на режим "Выход"
PORTD = 0b11111111; //Устанавливаем все разряды порта D в лог.«1» (На выходе порта напряжение равное Vcc)
DDRC = 0b11111111; //Настраиваем все разряды порта C на режим "Выход"
PORTC = 0b00000000; //Устанавливаем все разряды порта C в лог.«0» (На выходе порта напряжение равное GND)
// Вечный цикл
while (1)
{
}
}