Obsah:

Polohování serv pomocí klávesnice: 3 kroky
Polohování serv pomocí klávesnice: 3 kroky

Video: Polohování serv pomocí klávesnice: 3 kroky

Video: Polohování serv pomocí klávesnice: 3 kroky
Video: Python začátečníci: Těchto 5 tipů z vás udělá lepší programátory 2024, Listopad
Anonim
Polohování serva s klávesnicí
Polohování serva s klávesnicí

V tomto pokynu vytvoříme projekt, který bude ovládat Micro-Servo pomocí klávesnice, na které bude spuštěno Arduino Uno.

Použité materiály:

Arduino Uno

Prkénko

Klávesnice 4x4

Micro-servo

Krok 1: Připojte klávesnici

Připojte klávesnici
Připojte klávesnici
Připojte klávesnici
Připojte klávesnici

Úplně první myšlenka, kterou musíte udělat, je připojit napájecí lištu a uzemňovací lištu na váš prkénko z vašeho Arduina

  1. Připojte kolík 5V k napájecí liště (červená)
  2. Připojte zemnicí kolík (GND) k uzemňovací liště (modrá)

Nyní, když má prkénko napájení a je uzemněno, můžeme začít zapojovat naše komponenty.

Zapojení klávesnice je snadné, ale musíte si všimnout kolíků na klávesnici a arduino. Bude se nám to hodit, když obrátíme pozornost k našemu kódu.

Při používání vodičů nezapomeňte začít vlevo!

  • První pin jde na 13
  • Druhý pin jde na 12
  • Třetí pin jde na 11
  • Čtvrtý pin jde na 10
  • Pátý kolík k 9
  • Šestý pin na 8
  • Sedmý pin na 7
  • Osmý kolík k 6

Při zapojování klávesnice mějte digitální pwm pin otevřený. Budeme to potřebovat pro mikro-servo

Než se dostaneme ke kódu, ujistěte se, že jste nainstalovali knihovnu klávesnic. Najdete ho v náčrtu, pak na kartě skica, včetně knihovny. Bez něj nebudete moci používat klávesnici.

Nyní se podívejme na kód a ujistěte se, že klávesnice funguje a poskytuje hodnoty, které obsluhuje

Rychlé poznámky: Ujistěte se, že máte příkaz if pro kontrolu klávesnice, jinak nebude fungovat. Dávejte si také pozor na zpoždění, budou si hrát s tlačítky registrovanými z klávesnice

#zahrnout

konstantní bajtové řádky = 4; // čtyři řádky, protože klávesnice je plná

sloupce const byte = 4; // čtyři sloupce, stejné jako výše

znaková tlačítka [řádky] [sloupce] = {

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

bajtový řádekP [řádky] = {13, 12, 11, 10}; // řádkové piny klávesnice

bajtové sloupceP [sloupce] = {9, 8, 7, 6}; // piny sloupců klávesnice

Klávesnice = Klávesnice (makeKeymap (tlačítka), řádek P, sloupce P, řádky, sloupce); // vytvoření klávesnice

neplatné nastavení () {

Serial.begin (9600); }

prázdná smyčka () {

char buttonPressed = pad.getKey (); // získejte znak z klávesnice, pokud (buttonPressed) // ukáže, jaké tlačítko bylo stisknuto na klávesnici {Serial.println (buttonPressed); }}

Krok 2: Přidejte Micro Servo

Přidejte mikro servo
Přidejte mikro servo
Přidejte mikro servo
Přidejte mikro servo

Nyní přidáme servomotor. Tenhle je opravdu snadné přidat do našeho aktuálního projektu, protože mikro server má pouze tři vodiče.

  • Hnědý drát vede k uzemňovací liště na prkénku
  • Červená jde na napájecí kolejnici
  • Orange jde na Pin 3 na Arduinu. Pamatujte, že mikro server musí mít na Arduinu pin PWM. To je způsobeno servem využívajícím TIMER2

Nyní se jen ujistěte, že jsme mikro servo zapojili správně a že se pohybuje

#include #include "Servo.h"

konstantní bajtové řádky = 4; // čtyři řádky, protože klávesnice je plná

sloupce const byte = 4; // čtyři sloupce, stejné jako výše

znaková tlačítka [řádky] [sloupce] = {

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

bajtový řádekP [řádky] = {13, 12, 11, 10}; // řádkové piny klávesnice

bajtové sloupceP [sloupce] = {9, 8, 7, 6}; // piny sloupců klávesnice

Klávesnice = Klávesnice (makeKeymap (tlačítka), řádek P, sloupce P, řádky, sloupce); // vytvoření klávesnice

Servo aktuální Servo; // vytvoření objektu serva pro ovládání serva

// Na většině desek lze vytvořit dvanáct objektů serva

int pos = 0; // proměnná pro uložení polohy serva

neplatné nastavení () {

Serial.begin (9600); currentServo.attach (3); // připojí servo na pinu 9 k objektu serva

}

prázdná smyčka () {

char buttonPressed = pad.getKey (); // získejte znak z klávesnice, pokud (buttonPressed) // ukáže, jaké tlačítko bylo stisknuto na klávesnici {Serial.println (buttonPressed); }

currentServo.write (95);

}

Krok 3: Upravte kód tak, aby používal klávesnici na servu

Víme, že upravíme náš kód tak, že když stiskneme konkrétní tlačítko na klávesnici, servo se přesune do určité polohy. Nejdříve důležitá věc. Poloha serva pro 0 byla divná. Protože jsem měl servo s nepřetržitým otáčením, kdykoli se přiblížilo k 0, servo se právě začalo točit. Číslo, které jsem vložil do kódu, bylo tak nízké, jak jsem jen mohl, aniž by k tomu došlo. Každopádně zde je můj konečný kód:

#include #include

konstantní řádky bajtů = 4; // čtyři řádky, protože klávesnice je plná

sloupce const byte = 4; // čtyři sloupce, stejné jako výše

znaková tlačítka [řádky] [sloupce] = {

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

bajtový řádekP [řádky] = {13, 12, 11, 10}; // řádkové piny klávesnice

bajtové sloupceP [sloupce] = {9, 8, 7, 6}; // piny sloupců klávesnice

Klávesnice = Klávesnice (makeKeymap (tlačítka), řádek P, sloupce P, řádky, sloupce); // vytvoření klávesnice

Servo myServo; //

neplatné nastavení () {

Serial.begin (9600); myServo.attach (5); // připojí servo na pinu 9 k objektu serva}

prázdná smyčka () {

char key = pad.getKey (); // získejte znak z klávesnice if (key == '0') {myServo.write (11); Serial.println ("0"); zpoždění (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); zpoždění (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); zpoždění (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); zpoždění (15); }

if (klíč == '4')

{myServo.write (48); Serial.println ("4"); zpoždění (15); }

if (klíč == '5')

{myServo.write (60); Serial.println ("5"); zpoždění (15); }

if (klíč == '6')

{myServo.write (72); Serial.println ("6"); zpoždění (15); }

if (klíč == '7')

{myServo.write (84); Serial.println ("7"); zpoždění (15); }

if (klíč == '8')

{myServo.write (96); Serial.println ("8"); zpoždění (15); }

if (klíč == '9')

{myServo.write (108); Serial.println ("9"); zpoždění (15); }

if (klíč == '*')

{myServo.write (120); Serial.println ("*"); zpoždění (15); }

if (klíč == '#')

{myServo.write (132); Serial.println ("#"); zpoždění (15); }

if (klíč == 'A')

{myServo.write (146); Serial.println ("A"); zpoždění (15); }

if (klíč == 'B')

{myServo.write (158); Serial.println ("B"); zpoždění (15); }

if (klíč == 'C')

{myServo.write (170); Serial.println ("C"); zpoždění (15); }

if (klíč == 'D')

{myServo.write (180); Serial.println ("D"); zpoždění (15); }}

Doporučuje: