Cuprins:

Servo Positoning cu tastatură: 3 pași
Servo Positoning cu tastatură: 3 pași

Video: Servo Positoning cu tastatură: 3 pași

Video: Servo Positoning cu tastatură: 3 pași
Video: Costeo biju ‼️luat la palme de interlopi‼️#bucuresti #emipian #florinsalam #dans #interlopi 2024, Noiembrie
Anonim
Servo Positoning cu tastatură
Servo Positoning cu tastatură

În acest instructable vom crea un proiect care va controla un Micro-Servo cu o tastatură care îl rulează cu un Arduino Uno.

Materiale utilizate:

Arduino Uno

Pană de pâine

Tastatură 4x4

Micro-Servo

Pasul 1: conectați tastatura

Conectați tastatura
Conectați tastatura
Conectați tastatura
Conectați tastatura

Primul lucru pe care trebuie să-l faceți este să conectați șina de alimentare și șina de împământare pe placa dvs. de la Arduino

  1. Conectați pinul de 5V la șina de alimentare (roșu)
  2. Conectați un știft de împământare (GND) la șina de împământare (albastru)

Acum, când placa de alimentare are putere și este împământată, putem începe să ne conectăm componentele.

Cablarea tastaturii este ușoară, dar trebuie să luați notă de pinii de pe tastatură și arduino. Va fi util atunci când ne îndreptăm atenția asupra codului nostru.

Nu uitați să începeți din stânga când utilizați firele!

  • Primul pin merge la 13
  • Al doilea pin merge la 12
  • Al treilea pin ajunge la 11
  • Al patrulea pin ajunge la 10
  • Al cincilea pin la 9
  • Al șaselea pin la 8
  • Al șaptelea Pin la 7
  • Al optulea Pin la 6

Când conectați tastatura, nu uitați să păstrați un pin digital pwm deschis. Vom avea nevoie de ea pentru micro-servo

Înainte de a ajunge la cod, asigurați-vă că ați instalat Biblioteca tastaturii. Poate fi găsit în schița dvs., apoi în fila schiță, includeți biblioteca. Nu veți putea utiliza tastatura fără ea.

Acum, să apelăm la cod și să ne asigurăm că tastatura funcționează și oferă valorile frecvente

Note rapide: Asigurați-vă că aveți declarația if pentru a verifica tastatura, altfel nu va funcționa. De asemenea, aveți grijă de întârzieri, acestea se vor încurca cu butoanele înregistrate de la tastatură

#include

rânduri octet const = 4; // patru rânduri de când tastatura este plină

coloane byte const = 4; // patru coloane, la fel ca mai sus

butoane char [rânduri] [coloane] = {

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

octet rândP [rânduri] = {13, 12, 11, 10}; // pinii rândurilor tastaturii

coloane de octețiP [coloane] = {9, 8, 7, 6}; // pinii coloanei tastaturii

Tastatură tastatură = Tastatură (makeKeymap (butoane), rândP, coloaneP, rânduri, coloane); // creați tastatura

configurare nulă () {

Serial.begin (9600); }

bucla nulă () {

butonul char Apăsat = pad.getKey (); // obțineți caracterul de pe tastatură dacă (buton Apăsat) // arată ce buton a fost apăsat pe tastatură {Serial.println (buton Apăsat); }}

Pasul 2: Adăugați Micro Servo

Adăugați Micro Servo
Adăugați Micro Servo
Adăugați Micro Servo
Adăugați Micro Servo

Acum să adăugăm servomotorul. Acesta este foarte ușor de adăugat la proiectul nostru actual, deoarece micro serverul are doar trei fire.

  • Sârmă maro merge la șina de împământare de pe panou
  • Roșu merge la șina de alimentare
  • Orange merge la Pinul 3 de pe Arduino. Nu uitați că serverul micro trebuie să aibă un pin PWM pe Arduino. Acest lucru se datorează servo-ului care utilizează TIMER2

Acum, să ne asigurăm că am conectat micro servo dreapta și că acesta se mișcă

#include #include "Servo.h"

rânduri octet const = 4; // patru rânduri de când tastatura este plină

coloane byte const = 4; // patru coloane, la fel ca mai sus

butoane char [rânduri] [coloane] = {

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

octet rândP [rânduri] = {13, 12, 11, 10}; // pinii rândurilor tastaturii

coloane de octețiP [coloane] = {9, 8, 7, 6}; // pinii coloanei tastaturii

Tastatură tastatură = Tastatură (makeKeymap (butoane), rândP, coloaneP, rânduri, coloane); // creați tastatura

Servo currentServo; // creați un obiect servo pentru a controla un servo

// douăsprezece obiecte servo pot fi create pe majoritatea panourilor

int pos = 0; // variabilă pentru a stoca poziția servo

configurare nulă () {

Serial.begin (9600); currentServo.attach (3); // atașează servo pe pinul 9 la obiectul servo

}

bucla nulă () {

butonul char Apăsat = pad.getKey (); // obțineți caracterul de pe tastatură dacă (buton Apăsat) // arată ce buton a fost apăsat pe tastatură {Serial.println (buton Apăsat); }

currentServo.write (95);

}

Pasul 3: Modificați codul pentru a utiliza tastatura de pe servo

Știți că vom modifica codul nostru astfel încât atunci când apăsăm un anumit buton de pe tastatură, servo să se deplaseze într-o anumită poziție. Un lucru important mai întâi. Poziția servo pentru 0 a fost ciudată. Deoarece aveam un servo de rotație continuă, ori de câte ori se apropia de 0, servo tocmai a început să se rotească. Numărul pe care l-am introdus în cod a fost la fel de scăzut pe cât puteam merge fără ca acest lucru să se întâmple. Oricum, iată codul meu final:

#include #include

rânduri octet const = 4; // patru rânduri de când tastatura este plină

coloane byte const = 4; // patru coloane, la fel ca mai sus

butoane char [rânduri] [coloane] = {

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

octet rândP [rânduri] = {13, 12, 11, 10}; // pinii rândurilor tastaturii

coloane de octețiP [coloane] = {9, 8, 7, 6}; // pinii coloanei tastaturii

Tastatură tastatură = Tastatură (makeKeymap (butoane), rândP, coloaneP, rânduri, coloane); // creați tastatura

Servo myServo; //

configurare nulă () {

Serial.begin (9600); myServo.attach (5); // atașează servo pe pinul 9 la obiectul servo}

bucla nulă () {

cheie char = pad.getKey (); // obțineți caracterul de pe tastatură if (tastă == '0') {myServo.write (11); Serial.println ("0"); întârziere (15); } if (cheie == '1') {myServo.write (12); Serial.println („1”); întârziere (15); } if (cheie == '2') {myServo.write (24); Serial.println ("2"); întârziere (15); } if (cheie == '3') {myServo.write (36); Serial.println ("3"); întârziere (15); }

if (cheie == '4')

{myServo.write (48); Serial.println ("4"); întârziere (15); }

if (cheie == '5')

{myServo.write (60); Serial.println ("5"); întârziere (15); }

if (cheie == '6')

{myServo.write (72); Serial.println ("6"); întârziere (15); }

if (cheie == '7')

{myServo.write (84); Serial.println ("7"); întârziere (15); }

if (cheie == '8')

{myServo.write (96); Serial.println ("8"); întârziere (15); }

if (cheie == '9')

{myServo.write (108); Serial.println ("9"); întârziere (15); }

if (cheie == '*')

{myServo.write (120); Serial.println ("*"); întârziere (15); }

if (cheie == '#')

{myServo.write (132); Serial.println ("#"); întârziere (15); }

if (cheie == 'A')

{myServo.write (146); Serial.println ("A"); întârziere (15); }

if (cheie == 'B')

{myServo.write (158); Serial.println ("B"); întârziere (15); }

if (cheie == 'C')

{myServo.write (170); Serial.println ("C"); întârziere (15); }

if (cheie == 'D')

{myServo.write (180); Serial.println ("D"); întârziere (15); }}

Recomandat: