Апр 072013
 
Транзистор — один из базовых элементов для управления элементами схемы. Поэтому надо уметь с ними обращаться. Необходимость у меня такая возникла когда я планировал постройку робота колесного. Для того, чтоб вращать колеса будущего робота необходимо было сделать правильную схему подачи напряжения.
У меня есть 4 колеса, каждое только с двумя контактами.

Я хочу, чтоб колеса не только крутились вперед или не крутились. Я хочу, чтоб они крутились назад или вперед, а для этого надо сделать так, чтоб на один контакт сначала приходил плюс, а на другой минус. А потом наоборот. Для решения данной проблемы я придумал такую схему на 4-х транзисторах и двух диодах. Дополнительно, для теста, понадобились два светодиода и один резистор.


Для вращения колес, Ардуино не сможет дать необходимое количество тока — придется использовать батарейки с большим напряжением. Управление током осуществляется транзисторами. Они могут пропускать или не пропускать через себя ток, когда на один из контактов подается напряжение.

Для того, чтоб понять как работает конкретный транзистор, читаем даташит. Я использовал NPN-транзисторы KSP2222A от Fairchild. Транзистор имеет три ноги: Коллектор, База и Эмиттер. На коллектор приходит напряжение, через эмиттер выходит, база отвечает за пропускание тока от коллектора к эмиттеру. По характеристикам даташита можно понят, что транзистор может коммутировать ток до 40вольт/600mA. Ток будет идти только в случае когда на базу подается напряжение.

Еще один важный элемент схемы — диод. Диод имеет разное сопротивление при пропускании тока в разные стороны — от анода к катоду сопротивление минимальное, а от катода к аноду максимальное. Можно даже сказать, что он пропускает ток только в одну сторону.

К схеме.
Ардуино управляет транзисторами через 4 контакта с 4-го по 7-ой.
T1-T4 — транзисторы.
Diode1, Diode2 — диоды.
LED1, LED2 — светодиоды.
R1 — 200 Ом резистор.

Блог о компьютерах  и компьютерной технике, Москва, Владимир Лукьянов, Arduino

Напряжение на контакты Ардуино подаются поочередно и попарно. Сначала только на 4 и 5, потом только на 6 и 7.
В схеме по шагам, происходит следующее:
1) когда на 4 и 5 контакты подается напряжение открываются транзисторы T3 и T4
2) ток проходит через транзистор T3
3а) через Diode2 и светодиод LED2
3б) LED1 не пропускает ток в обратную сторону
4) дальше Diode1 не пускает ток в сторону T1
5) ток проходит через открытый транзистор T4 к резистору R1 и дальше к земле.

Во следующем шаге цикла происходят изменения:
0) напряжение с контактов 4 и 5 больше не подается
1) напряжение подается на 6 и 7 контакты и открываются транзисторы T3 и T4
2) ток проходит через транзистор T1
3а) через Diode1 и светодиод LED1
3б) LED2 не пропускает ток в обратную сторону
4) дальше Diode2 не пускает ток в сторону T3
5) ток проходит через открытый транзистор T2 к резистору R1 и дальше к земле.

Если не будет диодов схему может замкнуть и Ардуино возможно пострадает.

Скетч весьма прост:

/*
reverse current
http://compblog.vlukyanov.com
*/

//объявляем переменные для обозначения контактов
byte pin7 = 7; // раньше я объявляя переменные делал их int,
byte pin6 = 6; // но так как у Ардуино мало памяти следует ее экономить
byte pin5 = 5; // размера byte достаточно, чтоб хранит номер контакта
byte pin4 = 4; // на плате.

void setup() 
{
  pinMode(pin7, OUTPUT); // все контакты используются для вывода
  pinMode(pin6, OUTPUT);
  pinMode(pin5, OUTPUT);
  pinMode(pin4, OUTPUT);
}

void loop() 
{
  //первый шаг
  digitalWrite(pin7, LOW);  // убираем напряжение с 6 и 7 контактов
  digitalWrite(pin6, LOW); 
  delay(150);               // задержка между переключением
  digitalWrite(pin5, HIGH); // подаем напряжение на 4 и 5 контакты
  digitalWrite(pin4, HIGH);
  delay(1000);              // ждем секунду
  
  //второй шаг, запускаем ток в обратную сторону.
  digitalWrite(pin5, LOW);  // убираем напряжение с 4 и 5 контактов
  digitalWrite(pin4, LOW);
  delay(150);               // задержка между переключением
  digitalWrite(pin7, HIGH); // подаем напряжение на 6 и 7 контакты
  digitalWrite(pin6, HIGH);
  delay(1000);              // ждем секунду 
}

Данная электронная схема не слишком удобна для управления моторами колес, т.к. занимает 4 бесценных контакта на плате. Но при этом весьма наглядна для понимания принципа действия транзисторов. Для управления моторами есть драйверы моторов, например, такой — L239D. Его можно купить в Чип и Дипе, но там он стоит дико дорого. Если есть возможность подождать, то лучше заказать на eBay за те же деньги, тут их можно купить 5 штук!!!

  6 комментариев to “Управление транзисторами”

  1. В. интернете есть уже готовые светодиоды которые мигают и при чем с такой частотой с которой вам будет надою

    • Сдается мне вы не прочитали статью. Абсолютно мимо смысла в контексте написанного.

  2. Здравствуйте! Можете скинуть полный видео урок как подключается..я новичок в робототехнике. хотелосьб попробовать сделать..

    • Здравствуйте! Видеоурока я не делал. Но там все действительно просто если читать и делать последовательно. Если появятся вопросы я могу ответить.

  3. Нельзя подключить транзисторы попарно к 6 и 5 пинам соответственно и не задействовать 4 и 7?

    • Конечно можно. Не обязательно разводить их на отдельные контакты. Раздельное использование пинов здесь обусловлено скорее исторически, т.к. схема и программа менялись постепенно с работой над данной задачей.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)