14 апреля 2015

Устройство и работа портов ввода-вывода микроконтроллеров AVR. Часть 3

Программирование
Tutorial
Recovery mode
Подключение транзистора к линии порта ввода/вывода

Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров 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-типа.

Данные на светодиод:
— напряжение источника питания – ;
— прямое падения напряжения на светодиоде – 1,35В(Берётся с datasheet на светодиод);
— прямой ток на светодиоде – 120мА (Берётся с datasheet на светодиод);
— коэффициент надежности роботы светодиода – 75% (Берётся с datasheet на светодиод);

Данные на транзистор BC547 берем из Datasheet-BC547:



Данные на микроконтроллер:
— напряжение источника питания – ;
— падение напряжения на линии порта ввода/вывода – 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) 
 { 
 } 
}

Теги:программированиепрограммирование микроконтроллеровпрограммирование avrмикроконтроллеры avrподключение кнопки к avrподключение светодиода к avr
Хабы: Программирование
+4
32,5k 176
Комментарии 21
Похожие публикации
Лучшие публикации за сутки