Përmbajtje:

Servo Pozitimi me një tastierë: 3 hapa
Servo Pozitimi me një tastierë: 3 hapa

Video: Servo Pozitimi me një tastierë: 3 hapa

Video: Servo Pozitimi me një tastierë: 3 hapa
Video: Уроки Arduino - управление сервомашинкой 2024, Nëntor
Anonim
Servo Pozitimi me një tastierë
Servo Pozitimi me një tastierë

Në këtë udhëzues ne do të krijojmë një projekt që do të kontrollojë një Mikro-Servo me një tastierë që e drejton atë me një Arduino Uno.

Materialet e përdorura:

Arduino Uno

Breadboard

Tastiera 4x4

Mikro-Servo

Hapi 1: Teli i tastierës

Teli i tastierës
Teli i tastierës
Teli i tastierës
Teli i tastierës

Mendimi i parë që duhet të bëni është të lidhni hekurudhën e energjisë dhe shiritin e tokëzimit në tabelën tuaj të bukës nga Arduino juaj

  1. Lidhni pinin 5V me hekurudhën e energjisë (e kuqe)
  2. Lidhni një kunj tokëzimi (GND) me hekurudhën e tokëzimit (blu)

Tani që bordi i bukës ka fuqi dhe është i bazuar, ne mund të fillojmë të instalojmë telat e përbërësve tanë.

Instalimi i tastierës është i lehtë, por duhet të keni parasysh kunjat në tastierë dhe arduino. Do të na vijë në ndihmë kur t'i kushtojmë vëmendje kodit tonë.

Mos harroni të filloni në të majtë kur përdorni telat tuaj!

  • Kunja e parë shkon në 13
  • Kunja e dytë shkon në 12
  • Kunja e tretë shkon në 11
  • Kunja e katërt shkon në 10
  • Kunja e pestë në 9
  • Kunja e gjashtë në 8
  • Kunja e shtatë në 7
  • Kunja e tetë në 6

Kur lidhni tastierën, mos harroni të mbani të hapur një kunj dixhital pwm. Do të na duhet për mikro-servo

Para se të arrijmë te kodi, sigurohuni që keni instaluar Bibliotekën e Tastierës. Mund të gjendet në skicën tuaj, pastaj skedën skicë, përfshini bibliotekën. Ju nuk do të jeni në gjendje të përdorni tastierën pa të.

Tani le t'i drejtohemi kodit dhe të sigurohemi që tastiera funksionon dhe jep vlerat e ndjekura

Shënime të shpejta: Sigurohuni që keni deklaratën if për të kontrolluar tastierën, përndryshe nuk do të funksionojë. Gjithashtu kini kujdes nga vonesat, ato do të ngatërrohen me butonat që regjistrohen nga tastiera

#përfshi

rreshta const byte = 4; // katër rreshta pasi tastiera është plot

const kolona byte = 4; // katër kolona, njësoj si më sipër

butonat e karbonit [rreshtat] [kolonat] = {

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

byte rowP [rreshta] = {13, 12, 11, 10}; // kunjat e rreshtit të tastierës

byte kolonaP [kolona] = {9, 8, 7, 6}; // kunjat e kolonave të tastierës

Tastiera e tastierës = Tastiera (makeKeymap (butona), rowP, kolonaP, rreshta, kolona); // krijoni tastierën

void setup () {

Serial.filloj (9600); }

lak void () {

char buttonPressed = pad.getKey (); // merrni shkrirjen nga tastiera nëse (buttonPressed) // tregoni se çfarë butoni është shtypur në tastierë {Serial.println (buttonPressed); }}

Hapi 2: Shtoni Mikro Servo

Shtoni Mikro Servo
Shtoni Mikro Servo
Shtoni Mikro Servo
Shtoni Mikro Servo

Tani le të shtojmë servo motorin. Ky është vërtet i lehtë për tu shtuar në projektin tonë aktual pasi mikro serveri ka vetëm tre tela.

  • Teli kafe shkon në hekurudhën e tokëzimit në dërrasën e bukës
  • E kuqja shkon në hekurudhën e energjisë
  • Portokalli shkon në Pin 3 në Arduino. Mos harroni se mikro serveri duhet të ketë një pin PWM në Arduino. Kjo është për shkak të servo që përdor TIMER2

Tani le të sigurohemi që ne e lidhëm mikro -servo në mënyrë të duhur dhe se ai lëviz

#përfshi #përfshi "Servo.h"

rreshta const byte = 4; // katër rreshta pasi tastiera është plot

const kolona byte = 4; // katër kolona, njësoj si më sipër

butonat e karbonit [rreshtat] [kolonat] = {

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

byte rowP [rreshta] = {13, 12, 11, 10}; // kunjat e rreshtit të tastierës

byte kolonaP [kolona] = {9, 8, 7, 6}; // kunjat e kolonave të tastierës

Tastiera e tastierës = Tastiera (makeKeymap (butona), rowP, kolonaP, rreshta, kolona); // krijoni tastierën

Servo aktualeServo; // krijoni një servo objekt për të kontrolluar një servo

// Dymbëdhjetë servo objekte mund të krijohen në shumicën e dërrasave

int pos = 0; // ndryshore për të ruajtur pozicionin servo

void setup () {

Serial.filloj (9600); currentServo.tash (3); // i bashkon servo -në pin 9 me objektin servo

}

lak void () {

char buttonPressed = pad.getKey (); // merrni shkrirjen nga tastiera nëse (buttonPressed) // tregoni se çfarë butoni është shtypur në tastierë {Serial.println (buttonPressed); }

currentServo.vrite (95);

}

Hapi 3: Ndryshoni kodin për të përdorur tastierën në Servo

E dini që ne do të modifikojmë kodin tonë në mënyrë që kur shtypim një buton të veçantë në tastierë, servo të lëvizë në një pozicion të caktuar. Një gjë me rëndësi së pari. Pozicioni servo për 0 ishte i çuditshëm. Meqenëse kisha një servo rrotullimi të vazhdueshëm, sa herë që afrohej 0, servo sapo filloi të rrotullohej. Numri që vendosa në kod ishte aq i ulët sa mund të shkoja pa ndodhur kjo. Sidoqoftë, këtu është kodi im përfundimtar:

#përfshi #përfshi

rreshta const byte = 4; // katër rreshta pasi tastiera është plot

const kolona byte = 4; // katër kolona, njësoj si më sipër

butonat e karbonit [rreshtat] [kolonat] = {

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

byte rowP [rreshta] = {13, 12, 11, 10}; // kunjat e rreshtit të tastierës

byte kolonaP [kolona] = {9, 8, 7, 6}; // kunjat e kolonave të tastierës

Tastiera e tastierës = Tastiera (makeKeymap (butona), rowP, kolonaP, rreshta, kolona); // krijoni tastierën

Servo myServo; //

void setup () {

Serial.filloj (9600); myServo.tash (5); // i bashkon servo -në pin 9 tek servo objekti}

lak void () {

çelësi char = pad.getKey (); // merrni shenjën nga tastiera nëse (çelësi == '0') {myServo.write (11); Serial.println ("0"); vonesa (15); } if (kyç == '1') {myServo.write (12); Serial.println ("1"); vonesa (15); } if (kyç == '2') {myServo.write (24); Serial.println ("2"); vonesa (15); } if (kyç == '3') {myServo.write (36); Serial.println ("3"); vonesa (15); }

nëse (çelësi == '4')

{myServo.vrite (48); Serial.println ("4"); vonesa (15); }

nëse (çelësi == '5')

{myServo.vrite (60); Serial.println ("5"); vonesa (15); }

nëse (çelësi == '6')

{myServo.shkruaj (72); Serial.println ("6"); vonesa (15); }

nëse (çelësi == '7')

{myServo.vrite (84); Serial.println ("7"); vonesa (15); }

nëse (çelësi == '8')

{myServo.vrite (96); Serial.println ("8"); vonesa (15); }

nëse (çelësi == '9')

{myServo.vrite (108); Serial.println ("9"); vonesa (15); }

nëse (çelësi == '*')

{myServo.vrite (120); Serial.println ("*"); vonesa (15); }

nëse (çelësi == '#')

{myServo.vrite (132); Serial.println ("#"); vonesa (15); }

nëse (çelësi == 'A')

{myServo.vrite (146); Serial.println ("A"); vonesa (15); }

nëse (çelësi == 'B')

{myServo.vrite (158); Serial.println ("B"); vonesa (15); }

nëse (çelësi == 'C')

{myServo.vrite (170); Serial.println ("C"); vonesa (15); }

nëse (çelësi == 'D')

{myServo.vrite (180); Serial.println ("D"); vonesa (15); }}

Recommended: