Sadržaj:

Servo pozicioniranje s tipkovnicom: 3 koraka
Servo pozicioniranje s tipkovnicom: 3 koraka

Video: Servo pozicioniranje s tipkovnicom: 3 koraka

Video: Servo pozicioniranje s tipkovnicom: 3 koraka
Video: КАК НАСТРОИТЬ L4D2 2024, Studeni
Anonim
Servo pozicioniranje s tipkovnicom
Servo pozicioniranje s tipkovnicom

U ovom uputstvu stvarat ćemo projekt koji će kontrolirati Micro-Servo s tipkovnicom koja radi s Arduino Uno.

Korišteni materijali:

Arduino Uno

Oglasna ploča

4x4 tipkovnica

Mikro-servo

Korak 1: Povežite tipkovnicu

Ožičite tipkovnicu
Ožičite tipkovnicu
Ožičite tipkovnicu
Ožičite tipkovnicu

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

  1. Spojite 5V pin na električni vod (crveno)
  2. Spojite pin za uzemljenje (GND) na uzemljenje (plavo)

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

Ožičenje tipkovnice je jednostavno, ali morate uzeti u obzir iglice na tipkovnici i arduinu. Dobro će nam doći kada svoju pozornost usmjerimo na svoj 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 na 8
  • Sedmi pin na 7
  • Osmi pin na 6

Prilikom povezivanja tipkovnice 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 knjižnicu tipkovnice. Može se pronaći na skici, zatim na kartici skice, uključi biblioteku. Bez nje nećete moći koristiti tipkovnicu.

Sada se okrenimo kodu i provjerite radi li tipkovnica i daje prisutne vrijednosti

Brze napomene: Provjerite imate li if naredbu za provjeru tipkovnice, inače neće raditi. Također budite oprezni s kašnjenjima, zabrljat će s gumbima koji se registriraju s tipkovnice

#uključi

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

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

gumbi char [retci] [stupci] = {

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

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

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

Tipkovnica = Tipkovnica (makeKeymap (gumbi), rowP, columnsP, retci, stupci); // izrada tipkovnice

void setup () {

Serial.begin (9600); }

void loop () {{100} {101}

char buttonPressed = pad.getKey (); // dobivamo char s tipkovnice if (buttonPressed) // prikazuje koja je tipka pritisnuta na tipkovnici {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 poslužitelj ima samo tri žice.

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

Sada samo provjerimo je li mikro servo ožičen ispravno i da li se pomiče

#include #include "Servo.h"

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

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

gumbi char [retci] [stupci] = {

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

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

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

Tipkovnica = Tipkovnica (makeKeymap (gumbi), rowP, columnsP, retci, stupci); // izrada tipkovnice

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

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

int pos = 0; // varijabla za spremanje položaja serva

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 (); // dobivamo char s tipkovnice if (buttonPressed) // prikazuje koja je tipka pritisnuta na tipkovnici {Serial.println (buttonPressed); }

currentServo.write (95);

}

Korak 3: Izmijenite kôd za korištenje tipkovnice na servo servisu

Znajte da ćemo promijeniti kôd tako da se, kada pritisnemo određeni gumb na tipkovnici, servo pomakne na određeni položaj. Prva stvar od važnosti. Položaj serva za 0 bio je čudan. Budući da sam imao servo s kontinuiranom rotacijom, kad god bi se približio 0, servo se samo počeo vrtjeti. Broj koji sam stavio u kôd bio je najniži što sam mogao, a da se to ne dogodi. U svakom slučaju, evo mog konačnog koda:

#include #include

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

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

gumbi char [retci] [stupci] = {

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

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

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

Tipkovnica = Tipkovnica (makeKeymap (gumbi), rowP, columnsP, retci, stupci); // izrada tipkovnice

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 s 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čeni: