Tartalomjegyzék:

Szervo pozicionálás billentyűzettel: 3 lépés
Szervo pozicionálás billentyűzettel: 3 lépés

Videó: Szervo pozicionálás billentyűzettel: 3 lépés

Videó: Szervo pozicionálás billentyűzettel: 3 lépés
Videó: Fordítókorong vezérlése Arduinoval 1. 2024, November
Anonim
Szervo pozicionálás billentyűzettel
Szervo pozicionálás billentyűzettel

Ebben az utasításban egy olyan projektet hozunk létre, amely egy Micro-Servo vezérlését fogja végezni, Arduino Uno billentyűzettel.

Felhasznált anyagok:

Arduino Uno

Kenyeretábla

4x4 -es billentyűzet

Mikroszervó

1. lépés: Csatlakoztassa a billentyűzetet

Csatlakoztassa a billentyűzetet
Csatlakoztassa a billentyűzetet
Csatlakoztassa a billentyűzetet
Csatlakoztassa a billentyűzetet

A legelső gondolat, amit meg kell tennie, az Arduino -ról be kell vezetni a tápkábelt és a földelő sínt a kenyérszekrényre.

  1. Csatlakoztassa az 5 V -os csatlakozót a tápegységhez (piros)
  2. Csatlakoztasson egy földelőcsapot (GND) a földelő sínhez (kék)

Most, hogy a kenyértáblának van áramellátása és földelve van, elkezdhetjük az alkatrészek bekötését.

A billentyűzet bekötése egyszerű, de figyelembe kell vennie a billentyűzet és az arduino csapjait. Hasznos lesz, ha figyelmünket a kódunkra fordítjuk.

Ne felejtse el balról kezdeni a vezetékek használatakor!

  • Az első csap 13 -ra megy
  • A második csap 12 -re megy
  • A harmadik csap 11 -re megy
  • A negyedik csap 10 -re megy
  • Ötödik csap 9 -ig
  • Hatodik tű 8 -ig
  • Hetedik tű 7 -ig
  • Nyolcadik tű 6 -ig

A billentyűzet bekötésekor ne felejtse el nyitva tartani a digitális pwm -tűt. Szükségünk lesz rá a mikroszervóhoz

Mielőtt rátérnénk a kódra, győződjön meg arról, hogy telepítette a Billentyűzet könyvtárat. Ez megtalálható a vázlatában, majd a vázlat fülön, beleértve a könyvtárat. Enélkül nem tudja használni a billentyűzetet.

Most forduljunk a kódhoz, és győződjünk meg arról, hogy a billentyűzet működik, és megadja a figyelt értékeket

Gyors megjegyzések: Győződjön meg róla, hogy rendelkezik az if utasítással a billentyűzet ellenőrzéséhez, különben nem fog működni. Vigyázzon a késésekre is, mert zavarni fogják a billentyűzetről regisztrált gombokat

#befoglalni

const bájtsorok = 4; // négy sor, mivel a billentyűzet megtelt

const bájt oszlopok = 4; // négy oszlop, ugyanaz, mint fent

char gombok [sorok] [oszlopok] = {

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

bájtos sorP [sorok] = {13, 12, 11, 10}; // a billentyűzet sorcsapjai

bájt oszlopokP [oszlopok] = {9, 8, 7, 6}; // a billentyűzet oszlopcsapjai

Kezelőpad = billentyűzet (makeKeymap (gombok), sorP, oszlopP, sorok, oszlopok); // billentyűzet létrehozása

void setup () {

Sorozat.kezdet (9600); }

void loop () {

char gomb Lenyomva = pad.getKey (); // szerezze be a karaktert a billentyűzetről, ha (buttonPressed) // mutassa meg, melyik gombot nyomta meg a billentyűzeten {Serial.println (buttonPressed); }}

2. lépés: Adja hozzá a Micro Servot

Adja hozzá a Micro Servot
Adja hozzá a Micro Servot
Adja hozzá a Micro Servot
Adja hozzá a Micro Servot

Most adjuk hozzá a szervomotort. Ezt nagyon könnyű hozzáadni a jelenlegi projektünkhöz, mivel a mikroszerveren csak három vezeték van.

  • A barna huzal a kenyértáblán lévő földelő sínhez megy
  • Piros a Power sínre megy
  • Narancssárga az Arduino 3 -as csapjához megy. Ne feledje, hogy a mikroszervernek rendelkeznie kell PWM tűvel az Arduino -n. Ennek oka a TIMER2 -t használó szervó

Most csak győződjünk meg arról, hogy a mikroszervót megfelelően bekötöttük, és hogy mozog

#befoglalni #befoglalni a "Servo.h" -t

const bájtsorok = 4; // négy sor, mivel a billentyűzet megtelt

const bájt oszlopok = 4; // négy oszlop, ugyanaz, mint fent

char gombok [sorok] [oszlopok] = {

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

bájtos sorP [sorok] = {13, 12, 11, 10}; // a billentyűzet sorcsapjai

bájt oszlopokP [oszlopok] = {9, 8, 7, 6}; // a billentyűzet oszlopcsapjai

Kezelőpad = billentyűzet (makeKeymap (gombok), sorP, oszlopP, sorok, oszlopok); // billentyűzet létrehozása

SzervoáramServo; // szervo objektum létrehozása a szervó vezérlésére

// a legtöbb táblán tizenkét szervo objektum hozható létre

int pos = 0; // változó a szervo pozíció tárolására

void setup () {

Sorozat.kezdet (9600); currentServo.attach (3); // a 9 -es csap szervóját a szervo -objektumhoz rögzíti

}

void loop () {

char gomb Lenyomva = pad.getKey (); // szerezze be a karaktert a billentyűzetről, ha (buttonPressed) // mutassa meg, melyik gombot nyomta meg a billentyűzeten {Serial.println (buttonPressed); }

currentServo.write (95);

}

3. lépés: Módosítsa a kódot a szervo billentyűzetének használatához

Tudja, hogy módosítani fogjuk a kódunkat, hogy amikor megnyomunk egy adott gombot a billentyűzeten, a szervó egy adott pozícióba kerül. Először egy fontos dolog. A szervo helyzet 0 -ra furcsa volt. Mivel folyamatosan forgó szervóm volt, valahányszor 0 közelébe került, a szervó csak elkezdett forogni. A kód, amit beírtam, olyan alacsony volt, amennyire csak tudtam, anélkül, hogy ez megtörténne. Egyébként itt a végső kódom:

#befoglalni #befoglalni

const bájtsorok = 4; // négy sor, mivel a billentyűzet megtelt

const bájt oszlopok = 4; // négy oszlop, ugyanaz, mint fent

char gombok [sorok] [oszlopok] = {

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

bájtos sorP [sorok] = {13, 12, 11, 10}; // a billentyűzet sorcsapjai

bájt oszlopokP [oszlopok] = {9, 8, 7, 6}; // a billentyűzet oszlopcsapjai

Kezelőpad = billentyűzet (makeKeymap (gombok), sorP, oszlopP, sorok, oszlopok); // billentyűzet létrehozása

Szervo myServo; //

void setup () {

Sorozat.kezdet (9600); myServo.attach (5); // a szervót a 9 -es tűn rögzíti a szervo -objektumhoz}

void loop () {

char gomb = pad.getKey (); // lekérheti a karaktert a billentyűzetről, ha (kulcs == '0') {myServo.write (11); Serial.println ("0"); késleltetés (15); } if (kulcs == '1') {myServo.write (12); Serial.println ("1"); késleltetés (15); } if (kulcs == '2') {myServo.write (24); Serial.println ("2"); késleltetés (15); } if (kulcs == '3') {myServo.write (36); Serial.println ("3"); késleltetés (15); }

ha (kulcs == '4')

{myServo.write (48); Serial.println ("4"); késleltetés (15); }

ha (kulcs == '5')

{myServo.write (60); Serial.println ("5"); késleltetés (15); }

ha (kulcs == '6')

{myServo.write (72); Serial.println ("6"); késleltetés (15); }

ha (kulcs == '7')

{myServo.write (84); Serial.println ("7"); késleltetés (15); }

ha (kulcs == '8')

{myServo.write (96); Serial.println ("8"); késleltetés (15); }

ha (kulcs == '9')

{myServo.write (108); Serial.println ("9"); késleltetés (15); }

ha (kulcs == '*')

{myServo.write (120); Serial.println ("*"); késleltetés (15); }

ha (kulcs == '#')

{myServo.write (132); Serial.println ("#"); késleltetés (15); }

ha (kulcs == 'A')

{myServo.write (146); Serial.println ("A"); késleltetés (15); }

ha (kulcs == 'B')

{myServo.write (158); Serial.println ("B"); késleltetés (15); }

ha (kulcs == 'C')

{myServo.write (170); Soros.println ("C"); késleltetés (15); }

ha (kulcs == 'D')

{myServo.write (180); Serial.println ("D"); késleltetés (15); }}

Ajánlott: