Sadržaj:

Servo pozicioniranje s tastaturom: 3 koraka
Servo pozicioniranje s tastaturom: 3 koraka

Video: Servo pozicioniranje s tastaturom: 3 koraka

Video: Servo pozicioniranje s tastaturom: 3 koraka
Video: SKR 1.4 - Definitive User Guide 2024, Novembar
Anonim
Servo pozicioniranje pomoću tastature
Servo pozicioniranje pomoću tastature

U ovom uputstvu ćemo kreirati projekt koji će kontrolirati Micro-Servo sa tastaturom koja radi sa Arduino Uno.

Korišteni materijali:

Arduino Uno

Breadboard

4x4 tastatura

Mikro-servo

Korak 1: Povežite tastaturu

Ožičite tastaturu
Ožičite tastaturu
Ožičite tastaturu
Ožičite tastaturu

Prva pomisao koju trebate učiniti je ožičenje razvodnika i uzemljenja na vašoj ploči s vašeg Arduina

  1. Priključite pin 5V na razvodnik (crveno)
  2. Priključite pin za uzemljenje (GND) na šinu za uzemljenje (plava)

Sada kada matična ploča ima snagu i je uzemljena, možemo početi ožičavati naše komponente.

Ožičenje tastature je jednostavno, ali morate uzeti u obzir iglice na tastaturi i arduinu. To će nam dobro doći kada skrenemo pažnju na naš kôd.

Ne zaboravite početi s lijeve strane kada koristite svoje žice!

  • Prvi pin ide na 13
  • Drugi pin ide na 12
  • Treći pin ide na 11
  • Četvrti pin ide na 10
  • Peti pin na 9
  • Šesti pin do 8
  • Sedmi pin na 7
  • Osmi pin na 6

Prilikom povezivanja tastature ne zaboravite držati digitalni pwm pin otvoren. Trebat će nam za mikro servo

Prije nego što dođemo do koda, provjerite jeste li instalirali biblioteku tastature. Može se pronaći na skici, zatim na kartici skice, uključujući biblioteku. Bez nje nećete moći da koristite tastaturu.

Sada se okrenimo kodu i uvjerimo se da tastatura radi i daje vrijednosti koje posjećuje

Brze napomene: Provjerite imate li if naredbu za provjeru tastature, inače neće raditi. Takođe budite oprezni sa kašnjenjima, oni će se petljati u dugmad koja se registruju sa tastature

#include

redovi bajtova const = 4; // četiri reda jer je tastatura puna

const byte kolone = 4; // četiri kolone, isto kao gore

dugmad char [redovi] [kolone] = {

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

bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature

bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature

Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature

void setup () {

Serial.begin (9600); }

void loop () {{100} {101}

char buttonPressed = pad.getKey (); // dobivamo znak sa tastature if (buttonPressed) // prikazuje koje dugme je pritisnuto na tastaturi {Serial.println (buttonPressed); }}

Korak 2: Dodajte mikro servo

Dodajte mikro servo
Dodajte mikro servo
Dodajte mikro servo
Dodajte mikro servo

Sada dodajmo servo motor. Ovaj je zaista lako dodati našem trenutnom projektu jer mikro server ima samo tri žice.

  • Smeđa žica ide do uzemljenja na ploči
  • Crveno ide do Power rail -a
  • Narančasta ide na Pin 3 na Arduinu. Zapamtite da mikro server mora imati PWM pin na Arduinu. To je zbog servo korištenja TIMER2

Sada samo provjerimo da li smo mikro servo ožičili ispravno i da se kreće

#include #include "Servo.h"

redovi bajtova const = 4; // četiri reda jer je tastatura puna

const byte kolone = 4; // četiri kolone, isto kao gore

dugmad char [redovi] [kolone] = {

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

bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature

bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature

Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature

Servo strujaServo; // kreiranje servo objekta za upravljanje servo pogonom

// na većini ploča može se stvoriti dvanaest servo objekata

int pos = 0; // varijabla za spremanje servo pozicije

void setup () {

Serial.begin (9600); currentServo.attach (3); // priključuje servo na pin 9 na servo objekt

}

void loop () {{100} {101}

char buttonPressed = pad.getKey (); // dobijamo znak sa tastature if (buttonPressed) // prikazuje koje dugme je pritisnuto na tastaturi {Serial.println (buttonPressed); }

currentServo.write (95);

}

Korak 3: Izmijenite kôd da biste koristili tastaturu na Servo -u

Znajte da ćemo promijeniti kôd tako da se, kada pritisnemo određeno dugme na tastaturi, servo pomakne na određeni položaj. Prvo važna stvar. Servo pozicija za 0 je bila čudna. Pošto sam imao servo sa kontinuiranom rotacijom, kad god bi se približio 0, servo se počeo okretati. Broj koji sam stavio u kôd bio je najniži što sam mogao da uradim, a da se to ne dogodi. U svakom slučaju, evo mog konačnog koda:

#include #include

redovi bajtova const = 4; // četiri reda jer je tastatura puna

const byte kolone = 4; // četiri kolone, isto kao gore

dugmad char [redovi] [kolone] = {

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

bajtni redP [redovi] = {13, 12, 11, 10}; // redne pinove tastature

bajtni stupciP [kolone] = {9, 8, 7, 6}; // pinovi stupaca tastature

Tastatura = tastatura (makeKeymap (dugmad), rowP, columnsP, redovi, kolone); // kreiranje tastature

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // priključuje servo na pin 9 na servo objekt}

void loop () {{100} {101}

char ključ = pad.getKey (); // dobivamo char sa tipkovnice if (key == '0') {myServo.write (11); Serial.println ("0"); kašnjenje (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); kašnjenje (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); kašnjenje (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); kašnjenje (15); }

if (ključ == '4')

{myServo.write (48); Serial.println ("4"); kašnjenje (15); }

if (ključ == '5')

{myServo.write (60); Serial.println ("5"); kašnjenje (15); }

if (ključ == '6')

{myServo.write (72); Serial.println ("6"); kašnjenje (15); }

if (ključ == '7')

{myServo.write (84); Serial.println ("7"); kašnjenje (15); }

if (ključ == '8')

{myServo.write (96); Serial.println ("8"); kašnjenje (15); }

if (ključ == '9')

{myServo.write (108); Serial.println ("9"); kašnjenje (15); }

if (ključ == '*')

{myServo.write (120); Serial.println ("*"); kašnjenje (15); }

if (ključ == '#')

{myServo.write (132); Serial.println ("#"); kašnjenje (15); }

if (ključ == 'A')

{myServo.write (146); Serial.println ("A"); kašnjenje (15); }

if (ključ == 'B')

{myServo.write (158); Serial.println ("B"); kašnjenje (15); }

if (ključ == 'C')

{myServo.write (170); Serial.println ("C"); kašnjenje (15); }

if (ključ == 'D')

{myServo.write (180); Serial.println ("D"); kašnjenje (15); }}

Preporučuje se: