10. Arduino für die Produktion!! Wie man Eingaben von einem Pin für einen Taster (GPIO) auf dem ARM-Mikrocontroller empfängt
Teilen
Für den LED-Ausgang verwenden wir den gleichen Port und Pin, den wir im Lehrvideo für den LED-Ausgang verwendet haben, nämlich Port C Pin 6, der sich auf Pin 37 befindet. Wir werden einen Widerstand und eine LED verwenden, die mit Masse verbunden ist. Wenn wir eine 1 oder HIGH an diesen Pin ausgeben, leuchtet die LED auf, da sie mit Masse verbunden ist.
Für den Eingang verbinden wir den Taster mit Pin 37, Port B Pin 1. Die Schaltung des Tasters wird von Pin 27 kommen und einen Widerstand haben. Es wird ein 330-Ohm-Widerstand sein, dessen Zweck es ist, den Pin zu schützen. Vom Pin aus wird ein weiterer Widerstand mit Masse verbunden. Der Massenwiderstand wird einen hohen Widerstand haben, sodass er nicht viel Strom verbraucht, wenn der Schalter gedrückt wird. Dies wird ein 22k-Ohm-Widerstand sein.
Der Widerstand, der vom Pin kommt, ist ein 330-Ohm-Widerstand und wird nur verwendet, wenn er mit VCC verbunden ist. Im gedrückten Zustand haben Sie eine Verbindung zwischen Masse und VCC, die bei 220k Ohm liegt. Es wird auch mit dem Pin bei 330 Ohm Widerstand verbunden, sodass wir den Pin schützen, aber trotzdem das hohe Signal von VCC erhalten.
Wenn der Taster nicht gedrückt wird, ist der Pin direkt mit Masse verbunden. Ziehen Sie den Pin in einem natürlichen Zustand nach unten, anstatt ihn intern mit Software mit dem PUPD-Register herunterzuziehen, da dies ihn nur auf etwa 40 kOhm herunterzieht. Wir werden ihn auf 220 kOhm herunterziehen, was mehr Widerstand und weniger Stromaufnahme bietet, wenn der Taster gedrückt wird.
Wenn wir keinen externen Pull-Down-Widerstand und keinen intern gelösten Pull-Up-Pull-Down-Widerstand hätten, hätten wir einen schwebenden Zustand, wenn der Taster nicht gedrückt wird, was zu unvorhersehbarem Verhalten führen würde. Selbst das Winken mit der Hand über die Schaltung könnte zu unvorhersehbaren Ergebnissen führen.
Wenn Sie eine Schaltung mit einem Eingang zusammenstellen (ein Modus für diesen bestimmten Pin, der als Eingang eingestellt ist), möchten Sie sicherstellen, dass er entweder heruntergezogen oder hochgezogen und nicht in einem schwebenden Zustand ist. In einem schwebenden Zustand würde dieser Eingang wie eine Antenne wirken, die Rauschen aufnehmen kann. Wenn dieses Rauschen oberhalb oder unterhalb von TTL-Schaltungen liegt, würde es ein Ergebnis erzeugen.
Nachdem wir nun verstanden haben, wie die Schaltung funktioniert, können wir fortfahren, die Schaltung auf einem Breadboard zusammenzusetzen. Als Erstes möchten Sie Ihr Board so einrichten, dass alle Ihre Strom- und Stromschienen miteinander verbunden sind. Stellen Sie auch sicher, dass Boot 0 mit Masse über einen 510-Ohm-Widerstand verbunden ist. Die Schritt-für-Schritt-Anleitung zu dieser Vorbereitung finden Sie hier im ARM Microcontroller Tutorial 5.
Wir beginnen mit dem Anschluss der LED an Port C, Pin 6, der sich auf Pin 37 befindet. Stecken Sie den 330-Ohm-Widerstand über die beiden Klemmleisten und dann die LED mit der flachen Seite zur Masse hin.
Verbinden Sie nun den Schalter mit Pin 27, der Port B Pin 1 ist. Beginnen Sie mit dem 330-Ohm-Widerstand und den beiden Klemmleisten.
Als Nächstes setzen Sie den Schalter ein, sodass der Anschluss des Schalters hinten einen der Steckplätze mit der Klemmleiste mit dem Widerstand teilt, um genügend Platz für den anderen Widerstand zu lassen.
Als Nächstes legen Sie den 220-kOhm-Widerstand auf dieselbe Klemmleiste zur Masse.
Jetzt müssen wir nur noch die Verbindung von VCC zur anderen Seite des Schalters herstellen.
Wenn der Schalter nun gedrückt wird, werden die Leitungen verbunden, und VCC wird über den 220-kOhm-Widerstand mit Masse verbunden. Es wird auch mit Pin 27 über den 330-Ohm-Widerstand verbunden. Die Schaltung sollte nun betriebsbereit sein.
Im nächsten Tutorial werden wir über die Register sprechen, die wir zur Steuerung und zum Lesen des Eingangs verwenden müssen. Wir werden auch auf die Programmierung eingehen, beginnend mit Pseudocode.
[[TUTORIALMENU(tutorial-arm" frameborder="0" allowfullscreen>