Inhaltsverzeichnis:

Servopositionierung mit einer Tastatur - Gunook
Servopositionierung mit einer Tastatur - Gunook

Video: Servopositionierung mit einer Tastatur - Gunook

Video: Servopositionierung mit einer Tastatur - Gunook
Video: Servomotor erklärt 2024, November
Anonim
Servopositionierung mit einer Tastatur
Servopositionierung mit einer Tastatur

In diesem anweisbaren werden wir ein Projekt erstellen, das ein Micro-Servo mit einer Tastatur steuert, die es mit einem Arduino Uno ausführt.

Verwendete Materialien:

Arduino Uno

Steckbrett

4x4 Tastatur

Mikro-Servo

Schritt 1: Verdrahten Sie die Tastatur

Verdrahten Sie die Tastatur
Verdrahten Sie die Tastatur
Verdrahten Sie die Tastatur
Verdrahten Sie die Tastatur

Der allererste Gedanke, den Sie tun müssen, ist, die Stromschiene und die Erdungsschiene auf Ihrem Steckbrett von Ihrem Arduino zu verdrahten

  1. Verbinden Sie den 5V-Pin mit der Stromschiene (rot)
  2. Verbinden Sie einen Erdungsstift (GND) mit der Erdungsschiene (blau)

Nachdem das Steckbrett nun mit Strom versorgt und geerdet ist, können wir mit der Verdrahtung unserer Komponenten beginnen.

Die Verdrahtung der Tastatur ist einfach, aber Sie müssen die Pins auf der Tastatur und im Arduino beachten. Es wird sich als nützlich erweisen, wenn wir unsere Aufmerksamkeit auf unseren Code richten.

Denken Sie daran, links zu beginnen, wenn Sie Ihre Drähte verwenden!

  • Erster Pin geht auf 13
  • Zweiter Pin geht auf 12
  • Dritter Pin geht auf 11
  • Vierter Pin geht auf 10
  • Fünfter Pin bis 9
  • Sechster Pin bis 8
  • Siebter Pin bis 7
  • Achter Pin bis 6

Denken Sie beim Verdrahten der Tastatur daran, einen digitalen PWM-Pin offen zu halten. Wir werden es für das Mikro-Servo brauchen

Bevor wir zum Code kommen, stellen Sie sicher, dass Sie die Keypad Library installiert haben. Es befindet sich in Ihrer Skizze, dann auf der Registerkarte Skizze, Bibliothek einschließen. Ohne sie können Sie die Tastatur nicht verwenden.

Wenden wir uns nun dem Code zu und stellen Sie sicher, dass die Tastatur funktioniert und die überwachten Werte anzeigt

Kurze Hinweise: Stellen Sie sicher, dass Sie die if-Anweisung haben, um die Tastatur zu überprüfen, andernfalls funktioniert sie nicht. Passen Sie auch auf Verzögerungen auf, sie werden die Tasten durcheinander bringen, die über die Tastatur registriert werden

#enthalten

const-Byte-Reihen = 4; // vier Zeilen, da die Tastatur voll ist

const-Byte-Spalten = 4; //vier Spalten, wie oben

Zeichentasten[Zeilen][Spalten] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

Byte ReiheP[Reihen] = {13, 12, 11, 10}; // Reihenstifte der Tastatur

Byte SpaltenP[Spalten] = {9, 8, 7, 6}; //Spaltenstifte der Tastatur

Tastaturblock = Tastatur (makeKeymap (Tasten), ReiheP, SpaltenP, Reihen, Spalten); // Tastatur erstellen

Void-Setup () {

Serial.begin (9600); }

Leere Schleife () {

char buttonPressed = pad.getKey(); // das Zeichen von der Tastatur abrufen if (buttonPressed) // zeigen, welche Taste auf der Tastatur gedrückt wurde {Serial.println (buttonPressed); } }

Schritt 2: Fügen Sie den Mikro-Servo hinzu

Fügen Sie den Mikro-Servo hinzu
Fügen Sie den Mikro-Servo hinzu
Fügen Sie den Mikro-Servo hinzu
Fügen Sie den Mikro-Servo hinzu

Jetzt fügen wir den Servomotor hinzu. Dieser ist sehr einfach zu unserem aktuellen Projekt hinzuzufügen, da der Mikroserver nur drei Drähte hat.

  • Brauner Draht geht zur Erdungsschiene auf dem Steckbrett
  • Rot geht an die Stromschiene
  • Orange geht an Pin 3 auf dem Arduino. Denken Sie daran, dass der Mikroserver einen PWM-Pin auf dem Arduino haben muss. Dies liegt daran, dass das Servo TIMER2 verwendet

Stellen wir nun sicher, dass wir das Mikroservo richtig verdrahtet haben und es sich bewegt

#include #include "Servo.h"

const-Byte-Reihen = 4; // vier Zeilen, da die Tastatur voll ist

const-Byte-Spalten = 4; //vier Spalten, wie oben

Zeichentasten[Zeilen][Spalten] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

Byte ReiheP[Reihen] = {13, 12, 11, 10}; // Reihenstifte der Tastatur

Byte SpaltenP[Spalten] = {9, 8, 7, 6}; //Spaltenstifte der Tastatur

Tastaturblock = Tastatur (makeKeymap(Tasten), ReiheP, SpaltenP, Reihen, Spalten); // Tastatur erstellen

ServostromServo; // Servo-Objekt erstellen, um ein Servo zu steuern

// auf den meisten Boards können zwölf Servoobjekte erstellt werden

intpos = 0; // Variable zum Speichern der Servoposition

Void-Setup () {

Serial.begin (9600); currentServo.attach(3); // befestigt das Servo an Pin 9 an das Servoobjekt

}

Leere Schleife () {

char buttonPressed = pad.getKey(); // das Zeichen von der Tastatur abrufen if (buttonPressed) // zeigen, welche Taste auf der Tastatur gedrückt wurde {Serial.println (buttonPressed); }

currentServo.write(95);

}

Schritt 3: Ändern Sie den Code, um die Tastatur des Servos zu verwenden

Wissen Sie, dass wir unseren Code so ändern werden, dass sich das Servo beim Drücken einer bestimmten Taste auf der Tastatur in eine bestimmte Position bewegt. Eine Sache von Bedeutung zuerst. Die Servoposition für 0 war seltsam. Da ich ein Servo mit kontinuierlicher Rotation hatte, begann das Servo immer dann, wenn es nahe 0 kam, sich zu drehen. Die Zahl, die ich in den Code eingegeben habe, war so niedrig wie möglich, ohne dass dies passiert. Wie auch immer, hier ist mein endgültiger Code:

#einschließen #einschließen

const-Byte-Reihen = 4; // vier Zeilen, da die Tastatur voll ist

const-Byte-Spalten = 4; //vier Spalten, wie oben

Zeichentasten[Zeilen][Spalten] = {

{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', ' C'}, {'*', '0', '#', 'D'} };

Byte ReiheP[Reihen] = {13, 12, 11, 10}; // Reihenstifte der Tastatur

Byte SpaltenP[Spalten] = {9, 8, 7, 6}; //Spaltenstifte der Tastatur

Tastaturblock = Tastatur (makeKeymap (Tasten), ReiheP, SpaltenP, Reihen, Spalten); // Tastatur erstellen

Servo myServo; //

Void-Setup () {

Serial.begin (9600); myServo.attach(5); // befestigt das Servo an Pin 9 an das Servoobjekt}

Leere Schleife () {

char-Taste = pad.getKey(); // Holen Sie sich das Zeichen von der Tastatur if (key == '0') { myServo.write (11); Serial.println("0"); Verzögerung(15); aufrechtzuerhalten. Wenn (Schlüssel == '1') { myServo.write (12); Serial.println("1"); Verzögerung(15); aufrechtzuerhalten. Wenn (Schlüssel == '2') { myServo.write (24); Serial.println("2"); Verzögerung(15); aufrechtzuerhalten. Wenn (Schlüssel == '3') { myServo.write (36); Serial.println("3"); Verzögerung(15); }

if(Schlüssel == '4')

{ myServo.write (48); Serial.println("4"); Verzögerung(15); }

if(Schlüssel == '5')

{ myServo.write (60); Serial.println("5"); Verzögerung(15); }

if(Schlüssel == '6')

{ myServo.write (72); Serial.println("6"); Verzögerung(15); }

if(Schlüssel == '7')

{ myServo.write (84); Serial.println("7"); Verzögerung(15); }

if(Schlüssel == '8')

{ myServo.write (96); Serial.println("8"); Verzögerung(15); }

if(Schlüssel == '9')

{ myServo.write(108); Serial.println("9"); Verzögerung(15); }

if(schlüssel == '*')

{ myServo.write (120); Serial.println("*"); Verzögerung(15); }

if(schlüssel == '#')

{ myServo.write(132); Serial.println("#"); Verzögerung(15); }

if(Schlüssel == 'A')

{ myServo.write(146); Serial.println("A"); Verzögerung(15); }

if(Schlüssel == 'B')

{ myServo.write(158); Serial.println("B"); Verzögerung(15); }

if(Schlüssel == 'C')

{ myServo.write(170); Serial.println("C"); Verzögerung(15); }

if(Schlüssel == 'D')

{ myServo.write(180); Serial.println("D"); Verzögerung(15); } }

Empfohlen: