Obsah:
- Krok 1: Připojte klávesnici
- Krok 2: Přidejte Micro Servo
- Krok 3: Upravte kód tak, aby používal klávesnici na servu
Video: Polohování serv pomocí klávesnice: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
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
Ú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
- Připojte kolík 5V k napájecí liště (červená)
- 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
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:
UChip - jednoduchý náčrt motorů a/nebo serv na dálkové ovládání pomocí rádia 2,4 GHz Tx -Rx!: 3 kroky
UChip - Jednoduchý náčrt motorů a/nebo serv na dálkové ovládání přes 2,4 GHz rádio Tx -Rx !: Mám rád RC svět. Používání RC hračky vám dává pocit, že máte pod kontrolou něco mimořádného, přestože se jedná o malou loď, auto nebo dron! Přizpůsobit si hračky a přimět je, aby dělaly, co chcete
Ovládejte spoustu serv pomocí Arduina!: 4 kroky (s obrázky)
Ovládejte spoustu serv pomocí Arduina!: Nejprve bych měl něco říct. Neměl jsem krásné obrázky. Takže jsem vzal obrázky z bildr.blog. Víme, že Arduino UNO nemá mnoho pwm pinů pro ovládání mnoha serv. Často tedy máme problém ovládat více servo pomocí arduina
Rozhraní klávesnice s 8051 a zobrazením čísel klávesnice v 7 segmentech: 4 kroky (s obrázky)
Rozhraní klávesnice s 8051 a zobrazením čísel klávesnice v 7 segmentech: V tomto tutoriálu vám povím, jak můžeme propojit klávesnici s 8051 a zobrazovat čísla klávesnic na 7segmentovém displeji
Klávesnice Quick and Dirty Das (prázdná klávesnice): 3 kroky
Quick and Dirty Das Keyboard (Blank Keyboard): A Das Keyboard je název nejpopulárnější klávesnice bez nápisů na klávesách (prázdná klávesnice). Klávesnice Das se prodává za 89,95 $. Tento instruktáž vás provede, když si ji vytvoříte sami pomocí jakékoli staré klávesnice, kolem které ležíte
Čištění hliníkové klávesnice Apple . nebo jakékoli jiné soft-touch klávesnice: 5 kroků
Čištění hliníkové klávesnice Apple …. nebo jakékoli jiné klávesnice s měkkým dotykem: Jakkoli se vy nebo já můžeme pokusit udržet naše hliníkové klávesnice Apple, začnou být po roce špinavé. Tento návod vám pomůže vyčistit ho. Buďte opatrní, protože nejsem zodpovědný, pokud se vám při tom rozbije klávesnice …. SUCKS F