Der Transistor 2N2222A akzeptiert keinen Basiseingang von Arduino

Ich bin neu in der Elektronik. Ich habe das Buch "Robot Building for Beginners" gelesen und versuche, eine Line-Follower-Schaltung zu erstellen. Anstelle von LM393 und 2N2907A verwende ich Arduino Nano und 2N2222A. Hier ist mein Code:

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

Und hier ist meine Schaltung (ich habe andere Teile der Schaltung nicht gezeichnet, weil sie gut funktionieren):

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Wenn ich eine LED ohne Transistor an den Arduino-Ausgang anschließe, funktioniert es, wenn ich die Basis des Transistors an den Pluspol anschließe, leuchten drei LEDs, aber wenn ich die Basis an Arduino anschließe, funktioniert es nicht. Das Multimeter zeigt an, dass an der Basis des Transistors 5 V anliegen, aber kein Strom.

Antworten (2)

was ist die vf der leds. Wenn Sie den Transistor einschalten möchten, sollte seine Basis etwa 0,7 V über dem Emitter liegen. das heißt, der Ausgang der MCU sollte (0,7 + (3x Vf_LED)) sein.

Mit anderen Worten: Damit dies funktioniert, stecken Sie die LEDs und den Widerstand in den Kollektordraht, nicht in den Emitterdraht.
LEDs sind 5 mm gelb und grün, wenn vf Durchlassspannung bedeutet, denke ich, dass es ungefähr 2 V sind.
das erklärt also. Am einfachsten ist es, was @wouter sagt. Bewegen Sie den Transistor auf die niedrige Seite; das heißt, Transistoremitter an Masse und Kollektor an Kathode der dritten LED. Und damit die ersten LEDs mit VCC verbunden
Die Transistoren sollen auch Motoren betreiben, ich kann keine LEDs auf den Kollektor legen. Ich reduziere LEDs auf zwei und jetzt funktionieren sie, danke Jungs
@Navaro, das ist ziemlich interessant. Warum wird das Problem gelöst, indem sie auf die Kollektorseite gelegt werden? Ist es nicht in Serie und die Vce wird sowieso 0,7 V betragen? Ich finde diesen Punkt sehr interessant. Wusste nichts davon!
Motoren? Auch am Emitter?? Schlechte Transistoren ... Wenn Sie ein Problem haben, geben Sie immer den vollständigen Kontext an!
@ManuelJoaquín siehe die unten von ANDY gepostete Abbildung. Vbe muss dann nur noch 0,7V betragen.

Wenn ich die Basis des Transistors mit dem Pluspol verbinde, leuchten drei LEDs

Ja, das wird wahrscheinlich funktionieren, obwohl der Transistor als Emitterfolger verdrahtet ist.

Aber wenn ich die Basis mit Arduino verbinde, funktioniert es nicht. Das Multimeter zeigt an, dass an der Basis des Transistors 5 V anliegen, aber kein Strom.

Da der Transistor als Emitterfolger verdrahtet ist, "folgt" der Emitter der Basisspannung, ist aber etwa 0,7 Volt niedriger. Bei 5 Volt an der Basis liegen also etwa 4,3 Volt am Emitter an, und jede LED teilt diese Spannung, da sie in Reihe geschaltet sind.

Das sind ungefähr 1,43 Volt an jeder LED, und wenn es sich nicht um Infrarotgeräte handelt (die zum Aufleuchten eine niedrigere Durchlassspannung benötigen), sehen Sie kein Leuchten.

Der geeignetste Weg, LEDs in einer solchen Situation anzusteuern, besteht darin, sie wie folgt in den Kollektor zu stecken: -

Geben Sie hier die Bildbeschreibung ein

Jetzt schaltet sich der BJT vollständig auf praktisch einen Kurzschluss ein (vielleicht 100 mV darüber) und es liegen fast die vollen 9 Volt über dem Strombegrenzungswiderstand und den LEDs an. Es ist normalerweise der am besten geeignete Weg, auch Motoren einfach anzutreiben, außer ich würde die Verwendung eines N-Kanal-MOSFET anstelle eines BJT in Betracht ziehen.

Danke für deine Antwort. Ich habe alles so gemacht, wie es im Buch steht. Aber da ich LM393 und 2N2907A nicht hatte, ging ich mit Arduino und 2N2222A. Zwei oder drei LEDs sind keine große Sache, es gibt einen Motor parallel zu jeder LED-Linie und sie bewegen den Roboter basierend auf dem Lesen von Fotowiderständen, die mit analogen Pins verbunden sind.