Table des matières:

Positionnement servo avec un clavier : 3 étapes
Positionnement servo avec un clavier : 3 étapes

Vidéo: Positionnement servo avec un clavier : 3 étapes

Vidéo: Positionnement servo avec un clavier : 3 étapes
Vidéo: Arduino43-Le programme pour contrôler le servomoteur par le biais du potentiomètre-PROGRAMMATION 2024, Novembre
Anonim
Servo positionnement avec un clavier
Servo positionnement avec un clavier

Dans ce instructable, nous allons créer un projet qui contrôlera un Micro-Servo avec un clavier l'exécutant avec un Arduino Uno.

Les matériaux utilisés:

Arduino Uno

Planche à pain

Clavier 4x4

Micro-Servo

Étape 1: câbler le clavier

Câbler le clavier
Câbler le clavier
Câbler le clavier
Câbler le clavier

La toute première chose à faire est de câbler le rail d'alimentation et le rail de mise à la terre sur votre maquette à partir de votre Arduino

  1. Connectez la broche 5V au rail d'alimentation (rouge)
  2. Connectez une broche de terre (GND) au rail de mise à la terre (bleu)

Maintenant que la maquette est alimentée et mise à la terre, nous pouvons commencer à câbler nos composants.

Le câblage du clavier est facile, mais vous devez prendre note des broches du clavier et de l'arduino. Cela nous sera utile lorsque nous porterons notre attention sur notre code.

N'oubliez pas de commencer par la gauche lorsque vous utilisez vos fils !

  • La première broche va à 13
  • La deuxième broche va à 12
  • La troisième broche va à 11
  • La quatrième broche va à 10
  • Cinquième broche à 9
  • Sixième broche à 8
  • Septième broche à 7
  • Huitième broche à 6

Lors du câblage du clavier, n'oubliez pas de garder une broche pwm numérique ouverte. Nous en aurons besoin pour le micro-servo

Avant d'aborder le code, assurez-vous d'avoir installé la bibliothèque de claviers. Il peut être trouvé dans votre croquis, puis dans l'onglet croquis, inclure la bibliothèque. Vous ne pourrez pas utiliser le clavier sans lui.

Passons maintenant au code et assurez-vous que le clavier fonctionne et donne les valeurs attendues

Notes rapides: Assurez-vous d'avoir l'instruction if pour vérifier le clavier, sinon cela ne fonctionnera pas. Faites également attention aux retards, ils perturberont les boutons enregistrés à partir du clavier

#comprendre

lignes d'octets const = 4; //quatre lignes car le clavier est plein

colonnes d'octets const = 4; //quatre colonnes, comme ci-dessus

boutons de caractères[lignes][colonnes] = {

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

octet ligneP[lignes] = {13, 12, 11, 10}; //ligne des broches du clavier

octet colonnesP[colonnes] = {9, 8, 7, 6}; //colonne des broches du clavier

Pavé numérique = Pavé numérique(makeKeymap(boutons), rowP, columnP, rows, column); //créer un clavier

void setup(){

Serial.begin(9600); }

boucle vide(){

char buttonPressed = pad.getKey(); // obtenir le caractère du clavier if(buttonPressed) //afficher quel bouton a été pressé sur le clavier { Serial.println(buttonPressed); } }

Étape 2: ajouter le micro servo

Ajouter le micro servo
Ajouter le micro servo
Ajouter le micro servo
Ajouter le micro servo

Ajoutons maintenant le servomoteur. Celui-ci est vraiment facile à ajouter à notre projet actuel puisque le micro serveur n'a que trois fils.

  • Le fil marron va au rail de mise à la terre sur la planche à pain
  • Le rouge va au rail d'alimentation
  • Orange va à la broche 3 sur l'Arduino. N'oubliez pas que le micro serveur doit avoir une broche PWM sur l'Arduino. Ceci est dû au servo utilisant TIMER2

Maintenant, assurons-nous simplement que nous avons bien câblé le micro servo et qu'il bouge

#include #include "Servo.h"

lignes d'octets const = 4; //quatre lignes car le clavier est plein

colonnes d'octets const = 4; //quatre colonnes, comme ci-dessus

char boutons[lignes][colonnes] = {

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

octet ligneP[lignes] = {13, 12, 11, 10}; //ligne des broches du clavier

octet colonnesP[colonnes] = {9, 8, 7, 6}; //colonne des broches du clavier

Pavé numérique = Pavé numérique (makeKeymap (boutons), rowP, columnP, rows, column); //créer un clavier

Courant ServoServo; // créer un objet servo pour contrôler un servo

// douze objets servo peuvent être créés sur la plupart des cartes

int pos = 0; // variable pour stocker la position du servo

void setup(){

Serial.begin(9600); currentServo.attach(3); // attache le servo sur la broche 9 à l'objet servo

}

boucle vide(){

char buttonPressed = pad.getKey(); // obtient le caractère du clavier if(buttonPressed) //show quel bouton a été pressé sur le clavier { Serial.println(buttonPressed); }

currentServo.write(95);

}

Étape 3: Modifier le code pour utiliser le clavier sur le servo

Sachez que nous allons modifier notre code pour que lorsque nous appuyons sur un bouton particulier du clavier, le servo se déplace vers une position particulière. Une chose importante d'abord. La position du servo pour 0 était bizarre. Comme j'avais un servo à rotation continue, chaque fois qu'il se rapprochait de 0, le servo commençait à tourner. Le nombre que j'ai mis dans le code était aussi bas que possible sans que cela se produise. Quoi qu'il en soit, voici mon code final:

#include #include

lignes d'octets const = 4; //quatre lignes car le clavier est plein

colonnes d'octets const = 4; //quatre colonnes, comme ci-dessus

boutons de caractères[lignes][colonnes] = {

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

octet ligneP[lignes] = {13, 12, 11, 10}; //ligne des broches du clavier

octet colonnesP[colonnes] = {9, 8, 7, 6}; //colonne des broches du clavier

Pavé numérique = Pavé numérique (makeKeymap (boutons), rowP, columnP, rows, column); //créer un clavier

Servo myServo; //

void setup(){

Serial.begin(9600); monServo.attach(5); // attache le servo sur la broche 9 à l'objet servo }

boucle vide(){

clé de caractère = pad.getKey(); // obtient le caractère du clavier if(key == '0') { myServo.write(11); Serial.println("0"); retard(15); } if(clé == '1') { monServo.write(12); Serial.println("1"); retard(15); } if(clé == '2') { monServo.write(24); Serial.println("2"); retard(15); } if(clé == '3') { monServo.write(36); Serial.println("3"); retard(15); }

if(clé == '4')

{ monServo.write(48); Serial.println("4"); retard(15); }

if(clé == '5')

{ monServo.write(60); Serial.println("5"); retard(15); }

if(clé == '6')

{ monServo.write(72); Serial.println("6"); retard(15); }

if(clé == '7')

{ monServo.write(84); Serial.println("7"); retard(15); }

if(clé == '8')

{ monServo.write(96); Serial.println("8"); retard(15); }

if(clé == '9')

{ monServo.write(108); Serial.println("9"); retard(15); }

if(clé == '*')

{ monServo.write(120); Serial.println("*"); retard(15); }

if(clé == '#')

{ monServo.write(132); Serial.println("#"); retard(15); }

if(clé == 'A')

{ monServo.write(146); Serial.println("A"); retard(15); }

if(clé == 'B')

{ monServo.write(158); Serial.println("B"); retard(15); }

if(clé == 'C')

{ monServo.write(170); Serial.println("C"); retard(15); }

if(clé == 'D')

{ monServo.write(180); Serial.println("D"); retard(15); } }

Conseillé: