Ich versuche, ein 5-V-Relais (SRD-05VDC-SL-C) mit dem ATtiny85 zu steuern. Ich habe eine einfache Skizze hochgeladen (Blink without Delay Beispiel):
const int ledPin = 0; // the number of the LED pin
int ledState = LOW; // ledState used to set the LED
unsigned long previousMillis = 0; // will store last time LED was updated
const long interval = 1000; // interval at which to blink (milliseconds)
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop()
{
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW)
ledState = HIGH;
else
ledState = LOW;
digitalWrite(ledPin, ledState);
}
}
Das Ganze wird von einem 18650 Li-Ion-Akku (3,7 V-4,2 V) betrieben und der gemessene Eingang beträgt durchschnittlich 3,88 V. Hier ist eine kurze Skizze, wie die Schaltung aussieht:
Einige Probleme treten auf, OHNE dass der Motor angeschlossen ist:
Sie sollten die Relaisspule nicht wirklich direkt vom Mikrocontroller-Pin ansteuern.
Stattdessen würde ich empfehlen, einen NPN-Transistor zwischen GND (Emitter) und der Spule (Kollektor) zu verwenden und dann die andere Seite der Spule direkt mit der positiven Versorgung zu verbinden.
Schließen Sie eine Diode rückwärts parallel zur Spule an (dh Diodenkathode an positive Versorgung, Diodenanode an Transistorkollektor). Dies ist eine "Fly-Back"-Diode zum Schutz vor der Gegen-EMK, die Sie mit den Spulenschaltern erhalten.
Setzen Sie so etwas wie einen 330-Ohm-Widerstand in Reihe zwischen der Transistorbasis und dem Mikrocontroller-Pin. Dies begrenzt den Strom in die Basis des Transistors auf ein Niveau, das innerhalb der Fähigkeiten des Mikrocontrollers liegt.
Das ist die gebräuchlichste Art, die ich kenne, um ein Relais mit einem GPIO-Pin eines Mikrocontrollers zu steuern.
Empfehlen Sie, dieser Skizze einige serielle Debug-Ausgaben hinzuzufügen. Motoren + Mikros ohne irgendeine Art von Versorgungsisolierung entsprechen normalerweise einem Mikrocontroller, der ständig zurückgesetzt wird. Die serielle Ausgabe der Schleifenzahl kann zeigen, dass sie einfach immer wieder zurückgesetzt wird.
Sie benötigen wahrscheinlich ein paar Kondensatoren, um es zu filtern. Vielleicht sogar ein LC-Filter.
Die Ausgangsschaltung des Prozessors ist kein Nullwiderstandsschalter. Es handelt sich um ein paar MOSFETs, die beim Einschalten einen endlichen Widerstand haben, und die Spannungsunterschiede, die Sie sehen, sind auf den Spannungsabfall am MOSFET zurückzuführen, der auf den Strom zurückzuführen ist, den Sie vom Ausgangsstift ziehen möchten. Das Datenblatt für den ATTiny sollte den maximal empfohlenen Ausgangsstrom und den Spannungsabfall bei diesem Strom angeben.
Sie sollten den Ausgangspin einen Transistor oder FET ansteuern lassen, der wiederum das Relais steuert. Dies sollte ermöglichen, dass fast die volle Vcc verfügbar ist, um das Relais anzusteuern.
PGT
PGT
Vicatcu