Mikrocontroller-Anfangsstück 8: Hinzufügen einer Schaltfläche an den Mikrocontroller und damit etwas zu tun


Eine sehr einfach und leicht für menschliche Interaktion mit dem Mikrocontroller bieten lässt sich auf Tastendruck in den Stromkreis einfügen. Wir kommunizieren mit Computern über zwei wichtigsten Eingabegeräte: Maus und Tastatur. Eine Tastatur ist nichts anderes als eine Reihe von Tasten gelegt, um dem Benutzer erlauben, Eingabezeichen (ASCII) an den Computer. Wenn Sie sind auf dem ASCII-Teil am Kopf kratzen, keine Sorge – stellt nur den Code für jeden Charakter dar.

Zu diesem Zeitpunkt auf unserer Reise sollten Sie schon Setup Ihren Computer mit WINAVR (oder AVR-GCC für Linux) und in der Lage, Ihre Mikrocontroller zu programmieren. Sie sollten auch eine Schaltung aufgebaut mit einer LED an den Mikrocontroller angeschlossen haben. Sie haben auch die LED blinkt im vorherigen Tutorial.

Hinzufügen eine Schaltfläche oder einen Schalter, um die Schaltung ermöglicht den Mikrocontroller menschliches Zutun zu erhalten. Andere Formen der Eingabe für Mikrocontroller umfassen (sind aber sind nicht beschränkt auf) eine Tastatur oder eine Maus, Taster, Schalter, audio (über Mikrofon), Touch-Screen-Displays und Digitizer. Natürlich gibt es viele andere Geräte, die Beiträge zu einem Mikrocontroller liefern können, aber diese können nicht alle menschlichen Freiwilligkeit aktiviert werden. Ich legen diese andere Geräte in Kategorie "Fernerkundung", wie diese Geräte in der Regel Bedingungen oder Ereignisse Sinn und entsprechend zu reagieren. Ein paar solcher Beispiele umfassen Sensoren für Tilt (Beschleunigungssensoren), Erkennung von Infrarotenergie oder Temperaturüberwachung.

So, hier ist das dünne auf Tasten und mechanische Schalter: sie sind unvollkommen! Die beiden Familien von Mechanik und Elektronik gehören zusammen wie die Montagues und Capulets. Das heißt, sie nicht! Wenn du eine Taste drückst, erwarten Sie eine saubere Antwort elektronisch. Gut, springt tut mir leid, Überbringer von schlechten Nachrichten, aber das Signal oft einiges bevor es auf die richtige Spannung Stufe erledigt. In diesem Bild zeige ich dieses Phänomen. Wenn die Spannung auf 5 Volt eingestellt ist, bevor die Taste gedrückt wird und geht dann auf Null Volt, wenn die Taste gedrückt wird, werden eine "springenden" Wirkung der Spannung zwischen diesen beiden Werten. Also warum werden nicht alle unsere Küchengeräte oder weisen unsere Autos dieses Problem?

Wie Sie im Bild sehen können, habe ich einen Kondensator zwischen die beiden Bolzen eingefügt. Dies wird das Signal zu glätten. Die Wirkung dieser Kondensator kann auf einem Oszilloskop gesehen werden, wie im Video gezeigt. Aber wenn du ein Oszilloskop eigene hast, dann werden nur musst du mir vertrauen. Anders könnten wir dieses Problem beheben ist das Hinzufügen eine zeitlichen Verzögerung in das Programm kurz nach der Mikrocontroller das ersten Knopf-Presse-Event spürt. Aber das Hinzufügen einer diskreten Komponente an einen Stromkreis, so eine Elektronik-Problem zu lösen ist oft ein besseres als das Hinzufügen von Code zu verzögern – wie dieser Code eine weitere mögliche Quelle eines Fehlers ins Programm führt und auch mehr Prozessorzeit erfordert ausführen. Kann zusätzliche, diesen Code auch in der Entwicklung von anderen Problemen führen wie der Rest des Codes wird weiterhin ausgeführt.

Aber welchen Wert Kondensator sollten wir wählen? Dies hängt letztlich wie schlecht die Schaltfläche bezüglich dieses Problems führt. Einige Tasten können eine enorme springende Verhalten anzeigen, aber andere haben sehr wenig. Ein niedrigen Kondensator Wert wie 1.0nF (Nanofarads) reagiert sehr schnell, mit wenig oder keinen Effekt auf das Prellen. Dagegen ein höhere Kondensator Wert wie 220nF (die immer noch ziemlich klein in Bezug auf Kondensatoren) einen langsamen Übergang vom Ausgangspunkt der Endung Spannung bieten wird (d.h. 5v auf 0v). Der Übergang mit einer Kapazität 220nF gesehen ist aber immer noch ziemlich schnell im realen Sinn und kann somit auf leistungsschwachen Schaltflächen verwendet werden.

Sie könnte durch bemerkt haben, nun da das Steckbrett etwas, um der Schaltung ein sauberer aussehen geändert hat. Die bisherigen Kabel waren zu lang, und die Buildumgebung gestartet immer unordentlich, wie ich die Schaltung weitere Komponenten hinzugefügt. Daher war ein Re-design von dem Steckbrett in Ordnung, so dass ich eine zweite Steckbrett bis zum Ende der ersten schnappte. Aber Sie könnten fragen--warum ich das gäbe es ausreichende Bindungen an das andere Ende? Nun, ich tat es für Sauberkeit, und ich mochte auch, wo der Mikrocontroller positioniert wurde. Sie möglicherweise in der Lage zu sagen, dass ich es mit den Zahlen so ausgerichtet habe, dass brauche ich nicht zu Pins aller Zeiten--zählen lasse ich einfach die Steckbrett-Nummerierung, die mir sagen, wo jeder Pin auf der MCU. Ich auch all die positiven (+) Schienen auf beiden Boards zusammengebunden, und Tat das gleiche für alle der Schienen sowie Negative (-). Dies ermöglicht mir, VCC oder GND schließen, überall auf dem Steckbrett zu haben.

Also dann, wie programmieren wir den ATmega32 Mikrocontroller (oder anderen MCU, die Sie zu diesem Experiment anwenden können) zu verwenden der Schaltfläche neu? Nun ist es wirklich ganz einfach! Wir haben nur zwei Initialisierung Zeilen kurz vor der Endlosschleife und eine einzelne Bedingung Block innerhalb der Schleife hinzufügen. Die beiden Initialisierung Zeilen hinzugefügt, bevor die Schleife gehören eine Anweisung zur PINB1 für die Eingabe festlegen, indem sie eine "0" zugewiesen wie folgt:

 DDRB &= ~(1 << PINB1); 

Wir setzen auch Pin B1 "hoch", was bedeutet, dass die Pin 5 Volt gelesen wird, bis die Taste gedrückt wird; zu welchem Zeitpunkt wird die Pin Null Volt lesen. Um den Stift auf eine hohe Spannung von 5 Volt einzustellen, fügen wir diese Codezeile:

 PORTB |= 1 << PINB1; 

Im Rahmen des Programms muss eine Entscheidung: eine Entscheidung zur Code ausgeführt, wenn die Taste gedrückt wird, oder einige andere Code ausführen, wenn die Taste nicht gedrückt ist. Diese Aufgabe wird in Form von einer bedingten Anweisung bezeichnet eine "Wenn andere" Erklärung. Doch was genau sagt. Genau wie das englische Äquivalent... wenn (die Taste gedrückt wird), rauf und runter springen, sonst stehen auf dem Kopf. die Aktion "springen" rauf und runter"geschieht, solange die Taste gedrückt wird. Aber solange die Taste nicht gedrückt ist, wird die andere Aktion "Stand auf dem Kopf" geschehen. If Anweisung Code:

 if (bit_is_clear(PINB, 1)) 

gibt einen Test für eine Bedingung in der Klammer angegeben. Der Name "Bit_is_clear" ist eine Funktion, die zwei Argumente akzeptiert. In diesem Fall ist das erste Argument PINB, beschreibt den Satz von Pins, die wir angeben. Das zweite Argument ist die Pin, die wir prüfen und in diesem Fall befassen wir uns mit Pin #1 in der Gruppe.

Sie Fragen sich vielleicht, welche Art von Dingen, die wir in den Codeblock gesteuert durch die "if" Bedingung umsetzen können? Das hängt alles was Sie wollen Ihr Programm (und -Schaltung) zu tun. In diesem Fall als eine Möglichkeit zu zeigen, dass diese Taste etwas tut und arbeitet, habe ich die LED blinkt langsam (alle 100 ms), während die Taste nicht gedrückt ist, und blinkt schneller (alle 10ms) gedrückt.

Hier sind die Änderungen zum vorherigen blinkenden LED-Programm:

< avr/io.h > #include #include < util/delay.h > Int main(void) {DDRB | = 1 << PINB0; DDRB & = ~ (1 << PINB1); PORTB | = 1 << PINB1; während (1) {PORTB ^ = 1 << PINB0; #include <avr/io.h>#include <util/delay.h> int main(void){DDRB |= 1 << PINB0;DDRB &= ~(1 << PINB1); PORTB |= 1 << PINB1;while (1){ PORTB ^= 1 << PINB0; if (bit_is_clear(PINB, 1)) { _delay_ms(10); //Fast} else { _delay_ms(100); //Slow, from previous } }} 

Das ist es! Es gibt sehr wenig Programmierung erforderlich, um eine Schaltfläche zu verwenden, blinken der LED und machen Dinge!

In Verbindung stehende Artikel

Gewusst wie: Hinzufügen einer Schaltfläche in ein Freundschaftsarmband

Gewusst wie: Hinzufügen einer Schaltfläche in ein Freundschaftsarmband

In diesem Tutorial Ill zeigen Ihnen, wie hinzufügen eine Schaltfläche auf ein Freundschaftsarmband. Zubehör: Eine fertige Armband kleben Sie eine SchaltflächeSchritt 1: Finden Sie eine Schaltfläche Eine Schaltfläche, die ein wenig größer ist als die
Befestigen Sie eine Schaltfläche, um Ihre Hosen in Ihrem Serverraum mit CAT6 UTP

Befestigen Sie eine Schaltfläche, um Ihre Hosen in Ihrem Serverraum mit CAT6 UTP

hassen Sie es nur wenn Sie Ihr eigenes Geschäft hüten sind, versuchen, auf die Toilette zu gehen, wenn Ihr Hosenknopf entscheidet, eine Pause zu machen? Ich habe noch nicht herausgefunden, warum keine Bekleidungsunternehmen herausgefunden hat, ein We
Werkzeuge-CLOUD: Hinzufügen eines neuen Benutzers

Werkzeuge-CLOUD: Hinzufügen eines neuen Benutzers

Hinzufügen eines neuen Benutzers.Schritt 1: Wenn Sie den Admin für den Shop, klicken Sie auf Benutzer in das Menü "Konten".Schritt 2: Klicken Sie auf die Registerkarte "neue Benutzer erstellen".Schritt 3: Fügen Sie die Namen und e-Mail
Hinzufügen eines Bilds zu einem Facebook-Status-Update

Hinzufügen eines Bilds zu einem Facebook-Status-Update

meine Schwester vor kurzem ihre Haare schneiden. Ich will Bilder, aber sie weiß nicht, wie sie eine Facebook-Status-Update hinzugefügt.  Also, diese instructable ist für sie, und demonstriert, wie ein einzelnes Bild ein Facebook-Status-Update so schn
Perfekt für v-Day: Hinzufügen einer zerrissenen Herzen auf Ihre plain T!

Perfekt für v-Day: Hinzufügen einer zerrissenen Herzen auf Ihre plain T!

Gefühl der Liebe zum Valentinstag? Durch das Hinzufügen einer zerrissenen Herz-Design auf Ihrem t-Shirt Express
Gewusst wie: Hinzufügen einer Signatur

Gewusst wie: Hinzufügen einer Signatur

Hinzufügen einer Signatur mit Delphi neue Nachricht Formatierung Editor ist einfach.Schritt 1: Erste Schritte Wählen Sie die Signatur-Symbol aus der Bearbeitungs-Symbolleiste. Es sieht aus wie ein Füllfederhalter-Tipp und befindet sich zwischen dem S
Bauen Sie ein optisches Theremin--verbessern Ihre Snap Schaltungen durch Hinzufügen einer 555 Timer integrierte Schaltung II

Bauen Sie ein optisches Theremin--verbessern Ihre Snap Schaltungen durch Hinzufügen einer 555 Timer integrierte Schaltung II

In dieser Instructable erfahren Sie wie Ihre Sammlung von Snap Schaltungen Blöcke durch Hinzufügen einer 555 Timer IC und Gebäude eine optische Theremin zu verbessern. Sie lernen die Funktionen der Pins auf der 555 Chip. Sie werden lernen, dass wenn
Hinzufügen eines Joysticks der Raspberry Pi

Hinzufügen eines Joysticks der Raspberry Pi

Joysticks sind wirklich lustig zu verwenden. Sie sind auch viel intuitiver als andere Eingabegeräte. Hinzufügen eines Joysticks auf Ihre Raspberry Pi eröffnet viele neue Türen. Jetzt können Sie dem Raspberry Pi und dem Joystick einen Roboter, eine Ka
Hinzufügen einer Lichtquelle zu Ihrem Motorrad... kein Licht...

Hinzufügen einer Lichtquelle zu Ihrem Motorrad... kein Licht...

Indem Lichter an Ihrem Fahrrad fast scheint wie eine Kunst, wie es ist, was Sie fahren und wie oft. Ich arbeite auf dieser für ca. 6 Monate, bis ich auf diese Idee gekommen. Ich wollte eine Lichtquelle hinzufügen wo gibt es ein Reflektor hinter dem V
Hinzufügen einer Arbeitstabelle eine Sawbuck

Hinzufügen einer Arbeitstabelle eine Sawbuck

Was ist , ein Sawbuck sowieso?  Es ist eine Wiege, die macht es viel einfacher, Säge Stämme und Äste für Brennholz.Wenn Sie bereits eine Arbeitstabelle machen Sie es in einem Sawbuck durch Hinzufügen einer Platte aus Scheitholz.  Die Protokolle raue
Wolljersey Radfahren: Hinzufügen eines Reißverschlusses

Wolljersey Radfahren: Hinzufügen eines Reißverschlusses

Merino-Wolle ist ein ausgezeichnetes Material für kühles Wetter-outdoor-Bekleidung da es leicht, Feuchtigkeitstransport und immer noch ist seine isolierenden Eigenschaften bei Nässe hält. Im Gegensatz zu anderen Wolle Merino ist nicht "kratzig"
Hinzufügen einer Prothese Tastsinn

Hinzufügen einer Prothese Tastsinn

Wenn deine Hand hat jemals eingeschlafen oder aus irgendeinem Grund taub gegangen, wissen Sie, wie wie schwierig es ist, etwas ohne einen guten Sinn für Touch zu greifen. Nun stell dir vor, wie Amputierte fühlen könnte! Wissenschaftler arbeiten derze
Spion Video Trakr: Hinzufügen einer Lego-Kralle-Anlage

Spion Video Trakr: Hinzufügen einer Lego-Kralle-Anlage

zu Ehren der nationalen Woche der Robotik und der Instructables Robot Challenge bin ich ein paar Roboterdesigns Vorlage. Dieses Design (für Alter 13-18) nutzt Wild Planet Spy Video Trakr, die ist leicht programmierbar und gestaltet von den Entwickler
Gewusst wie: Hinzufügen eines Rahmens zu einem Quiltblock

Gewusst wie: Hinzufügen eines Rahmens zu einem Quiltblock

Einen Rahmen hinzufügen, um einen Quiltblock ist ein guter Weg um ein wenig Abwechslung in Ihre Quilt-Tops. Es ist auch eine gute Möglichkeit, einen Quiltblock, um daraus eine Platzierung, Einkaufstasche oder Kissen zu vergrößern. : DDas beste von al