Транзистор 2N2222A не принимает базовый вход от ардуино

Я новичок в электронике. Я прочитал книгу «Создание роботов для начинающих» и пытаюсь сделать схему повторителя линии. Вместо LM393 и 2N2907A я использую arduino nano и 2N2222A. Вот мой код:

const int leftPin = 9;
const int rightPin = 2;

int leftSensor;
int rightSensor;

bool switchLine = HIGH;

void setup() {
  pinMode(11, INPUT_PULLUP);

  pinMode(rightPin,OUTPUT);
  pinMode(leftPin,OUTPUT);
  digitalWrite(rightPin,LOW);
  digitalWrite(leftPin,LOW);
}

void loop() {
  switchLine = digitalRead(11);

  leftSensor = analogRead(6);
  rightSensor = analogRead(5);

  if(leftSensor > rightSensor)
  {
    if(switchLine)
    {
      digitalWrite(rightPin,LOW);
      digitalWrite(leftPin,HIGH);
    } 
    else
    {
      digitalWrite(rightPin,HIGH);
      digitalWrite(leftPin,LOW);
    };
  }

  if(leftSensor < rightSensor)
  {
    if(switchLine) 
    {
      digitalWrite(rightPin,HIGH);
      digitalWrite(leftPin,LOW);
    } 
    else
    {
      digitalWrite(rightPin,LOW);
      digitalWrite(leftPin,HIGH);
    };
  }
  delay(20);
}

А вот и моя схема (другие части схемы я не рисовал, потому что они работают нормально):

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Если я подключаю один светодиод без транзистора к выходу Arduino, он работает, если я подключаю базу транзистора к положительной клемме, загораются три светодиода, но когда я подключаю базу к Arduino, он не работает. Мультиметр показывает, что на базе транзистора есть 5В, но тока нет.

Ответы (2)

что такое vf светодиодов. если вы хотите включить транзистор, его база должна быть примерно на 0,7 В выше эмиттера. это означает, что выход MCU должен быть (0,7 + (3x Vf_LED)).

Другими словами: чтобы это заработало, поместите светодиоды и резистор в провод коллектора, а не в провод эмиттера.
Светодиоды 5 мм желтого и зеленого цвета, если vf означает прямое напряжение, я думаю, что это около 2 В.
так это объясняет. проще всего сделать то, что говорит @wouter. Переместите транзистор в сторону низкого уровня; то есть эмиттер транзистора к земле и коллектор к катоду третьего светодиода. Таким образом, первый светодиод подключен к VCC.
Транзисторы также должны запускать двигатели, я не могу поставить светодиоды на коллектор. Я уменьшил количество светодиодов до двух, и теперь они работают, спасибо, ребята.
@Наваро, это довольно интересно. Почему проблема решается размещением их на стороне коллектора? Разве это не последовательно, и Vce все равно будет 0,7 В? Я нахожу довольно интересным этот момент. Не знал об этом!
Моторы? Тоже на излучателе?? Бедные транзисторы... Если у вас есть проблема, всегда давайте полный контекст!
@ManuelJoaquín смотрите рисунок ниже, опубликованный ANDY. Тогда Vbe должно быть всего 0,7 В.

если я подключаю базу транзистора к плюсовой клемме, загораются три светодиода

Да, это, вероятно, сработает, несмотря на то, что транзистор подключен как эмиттерный повторитель.

но когда я подключаю базу к ардуино, это не работает. Мультиметр показывает, что на базе транзистора есть 5В, но тока нет.

Поскольку транзистор подключен как эмиттерный повторитель, эмиттер «следует» за базовым напряжением, но примерно на 0,7 вольт ниже. Таким образом, при 5 вольтах на базе будет около 4,3 вольта на эмиттере, и каждый светодиод будет разделять это напряжение, потому что они включены последовательно.

Это примерно 1,43 вольта на каждый светодиод, и, если только они не являются инфракрасными устройствами (для освещения которых требуется более низкое прямое напряжение), вы не увидите никакого свечения.

Наиболее подходящим способом управления светодиодами в такой ситуации является размещение их в коллекторе следующим образом:

введите описание изображения здесь

Теперь BJT полностью включается практически на короткое замыкание (может быть 100 мВ по нему) и почти полные 9 вольт на токоограничивающий резистор и светодиоды. Обычно это наиболее подходящий способ просто управлять двигателями, за исключением того, что я бы подумал об использовании N-канального MOSFET вместо BJT.

Спасибо за Ваш ответ. Я сделал все, как написано в книге. Но так как у меня не было LM393 и 2N2907A, я выбрал arduino и 2N2222A. Два или три светодиода не имеют большого значения, есть двигатель, параллельный каждой светодиодной линии, и они перемещают робота на основе считывания с фоторезисторов, подключенных к аналоговым контактам.