El transistor 2N2222A no aceptará la entrada base de arduino

Soy nuevo en electronica. Leí el libro "Construcción de robots para principiantes" y estoy tratando de hacer un circuito seguidor de línea. En lugar de LM393 y 2N2907A, estoy usando arduino nano y 2N2222A. Aquí está mi código:

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);
}

Y aquí está mi circuito (no dibujé otras partes del circuito porque funcionan bien):

esquemático

simular este circuito : esquema creado con CircuitLab

Si conecto un LED sin transistor a la salida de arduino funciona, si conecto la base del transistor al terminal positivo se encienden tres LED, pero cuando conecto la base a arduino no funciona. El multímetro muestra que hay 5 V en la base del transistor pero no hay corriente.

Respuestas (2)

cual es el vf de los leds. si desea encender el transistor, su base debe estar alrededor de 0,7 V por encima del emisor. eso significa que la salida de la MCU debe ser (0.7 + (3x Vf_LED)).

En otras palabras: para que esto funcione, coloque los LED y la resistencia en el cable del colector, no en el cable del emisor.
Los LED son amarillos y verdes de 5 mm, si vf significa voltaje directo, creo que es alrededor de 2V.
entonces eso explica. lo más fácil de hacer es lo que dice @wouter. Mueva el transistor al lado bajo; es decir, tiene emisor de transistor a tierra y colector a cátodo del tercer LED. Y así los primeros LED conectados a VCC
Se supone que los transistores también funcionan con motores, no puedo poner LED en el colector. Reduje los LED a dos y ahora funcionan, gracias chicos
@Navario eso es bastante interesante. ¿Por qué se soluciona el problema poniéndolos del lado del colector? ¿No está en serie y el Vce será de todos modos 0.7V? Encuentro bastante interesante este punto. ¡No sabía nada de eso!
¿Motores? También en el emisor?? Pobres transistores... Si tienes un problema, ¡siempre da el contexto completo!
@ManuelJoaquín mira la figura publicada abajo por ANDY. Vbe necesita entonces ser solo 0.7V.

si conecto la base del transistor al terminal positivo, se encienden tres LED

Sí, eso probablemente funcionará a pesar de que el transistor esté conectado como un seguidor de emisor.

pero cuando conecto base a arduino no funciona. El multímetro muestra que hay 5 V en la base del transistor pero no hay corriente.

Debido a que el transistor está cableado como un seguidor de emisor, el emisor "sigue" el voltaje base pero aproximadamente 0,7 voltios menos. Entonces, con 5 voltios en la base, habrá alrededor de 4,3 voltios en el emisor y cada LED compartirá ese voltaje porque están en serie.

Eso es aproximadamente 1,43 voltios en cada LED y, a menos que sean dispositivos infrarrojos (que requieren un voltaje directo más bajo para iluminarse), no verá ningún brillo.

La forma más adecuada de conducir los LED en una situación como esta es colocarlos en el colector de esta manera: -

ingrese la descripción de la imagen aquí

Ahora el BJT se enciende por completo en prácticamente un cortocircuito (tal vez 100 mV a través de él) y hay casi los 9 voltios completos en la resistencia limitadora de corriente y los LED. Por lo general, también es la forma más apropiada de simplemente impulsar motores, excepto que consideraría usar un MOSFET de canal N en lugar de un BJT.

Gracias por tu respuesta. Hice todo como dice el libro. Pero como no tenía LM393 y 2N2907A, opté por arduino y 2N2222A. Dos o tres LED no son gran cosa, hay un motor paralelo a cada línea de LED y mueven el robot en función de la lectura de fotorresistores conectados a pines analógicos.