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

Рис: Рапиновка транзистора n-p-n-типа.

Рис: Рапиновка транзистора p-n-p-типа.

Рис: Подключение к микроконтроллеру транзистора n-p-n-типа.

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

Пример:
— включения мощного светодиода через транзисторный ключ.

Рис: Подключение к микроконтроллеру светодиода через транзисторный ключ n-p-n-типа.
Данные на светодиод:
— напряжение источника питания – 5В;
— прямое падения напряжения на светодиоде – 1,35В(Берётся с datasheet на светодиод);
— прямой ток на светодиоде – 120мА (Берётся с datasheet на светодиод);
— коэффициент надежности роботы светодиода – 75% (Берётся с datasheet на светодиод);
Данные на транзистор BC547 берем из Datasheet-BC547:

Данные на микроконтроллер:
— напряжение источника питания – 5В;
— падение напряжения на линии порта ввода/вывода – 0,5В (Берётся с datasheet на микроконтроллер: Vol(output low voltage) – если ток втекает, и Voh (output high voltage) – если ток вытекает);
Рассчитываем сопротивление R1:

Таким образом, номинал резистора R1 = 38.33 Om, подбирается ближайшее большее значение сопротивления, например 39 Ом.
Определив номинал резистора R1, необходимо рассчитать мощность P1, измеряемая в ваттах, которая будет выделяться в резисторе, в виде тепла при протекании тока в цепи.

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

Таким образом, номинал резистора R2 = 4750 Om, подбирается ближайшее меньшее значение сопротивления, например 4,7 кОм.
Определив номинал резистора R2, необходимо рассчитать мощность P2, измеряемая в ваттах, которая будет выделяться в резисторе, в виде тепла при протекании тока в цепи.

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

— подключения транзистора p-n-p-типа к линии порта ввода/вывода:

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

Рис: Рапиновка транзистора n-p-n-типа.

Рис: Рапиновка транзистора p-n-p-типа.

Рис: Подключение к микроконтроллеру транзистора n-p-n-типа.

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

Пример:
— включения мощного светодиода через транзисторный ключ.

Рис: Подключение к микроконтроллеру светодиода через транзисторный ключ n-p-n-типа.
Данные на светодиод:
— напряжение источника питания – 5В;
— прямое падения напряжения на светодиоде – 1,35В(Берётся с datasheet на светодиод);
— прямой ток на светодиоде – 120мА (Берётся с datasheet на светодиод);
— коэффициент надежности роботы светодиода – 75% (Берётся с datasheet на светодиод);
Данные на транзистор BC547 берем из Datasheet-BC547:

Данные на микроконтроллер:
— напряжение источника питания – 5В;
— падение напряжения на линии порта ввода/вывода – 0,5В (Берётся с datasheet на микроконтроллер: Vol(output low voltage) – если ток втекает, и Voh (output high voltage) – если ток вытекает);
Рассчитываем сопротивление R1:

Таким образом, номинал резистора R1 = 38.33 Om, подбирается ближайшее большее значение сопротивления, например 39 Ом.
Определив номинал резистора R1, необходимо рассчитать мощность P1, измеряемая в ваттах, которая будет выделяться в резисторе, в виде тепла при протекании тока в цепи.

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

Таким образом, номинал резистора R2 = 4750 Om, подбирается ближайшее меньшее значение сопротивления, например 4,7 кОм.
Определив номинал резистора R2, необходимо рассчитать мощность P2, измеряемая в ваттах, которая будет выделяться в резисторе, в виде тепла при протекании тока в цепи.

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

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

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