Orodha ya maudhui:

Servo Positoning na Keypad: 3 Hatua
Servo Positoning na Keypad: 3 Hatua

Video: Servo Positoning na Keypad: 3 Hatua

Video: Servo Positoning na Keypad: 3 Hatua
Video: Управление серводвигателем с помощью кнопки: перемещение сервопривода и возврат SPB-1 2024, Julai
Anonim
Servo Positoning na Kitufe
Servo Positoning na Kitufe

Katika hii tunaweza kufundisha tutafanya mradi ambao utadhibiti Micro-Servo na kitufe kinachoendesha na Arduino Uno.

Vifaa vilivyotumika:

Arduino Uno

Bodi ya mkate

Kitufe cha 4x4

Micro-Servo

Hatua ya 1: Funga keypad

Waya Kitufe
Waya Kitufe
Waya Kitufe
Waya Kitufe

Ya kwanza kabisa kufikiria unahitaji kufanya ni kuweka waya wa umeme na reli ya kutuliza kwenye ubao wako wa mkate kutoka Arduino yako

  1. Unganisha pini ya 5V kwenye reli ya umeme (nyekundu)
  2. Unganisha pini ya chini (GND) kwa reli ya kutuliza (bluu)

Sasa kwa kuwa ubao wa mkate una nguvu na umewekwa chini, tunaweza kuanza kuunganisha vifaa vyetu.

Wiring Keypad ni rahisi lakini unahitaji kuzingatia pini kwenye keypad na arduino. Itakuja kwa urahisi tutakapoleta umakini wetu kwa nambari yetu.

Kumbuka kuanza kushoto wakati unatumia waya zako!

  • Pini ya kwanza huenda kwa 13
  • Pini ya pili huenda kwa 12
  • Pini ya tatu huenda kwa 11
  • Pini ya nne huenda kwa 10
  • Pini ya tano hadi 9
  • Pini ya sita hadi 8
  • Pini ya saba hadi 7
  • Pini ya nane hadi 6

Wakati wa kuunganisha keypad, kumbuka kuweka pini ya dijiti ya pwm wazi. Tutahitaji kwa micro-servo

Kabla ya kufikia nambari, hakikisha kuwa umesakinisha Maktaba ya vitufe. Inaweza kupatikana kwenye mchoro wako, kisha kichupo cha sketch, pamoja na maktaba. Hutaweza kutumia keypad bila hiyo.

Sasa hebu tugeukie msimbo na uhakikishe kitufe kinafanya kazi na inatoa maadili yaliyohudhuria

Vidokezo vya Haraka: Hakikisha unayo taarifa ya kuangalia kibodi, vinginevyo haifanyi kazi. Pia kuwa mwangalifu wa ucheleweshaji, watasumbua na vifungo vimesajiliwa kutoka kwa kitufe

# pamoja

safu za const byte = 4; // safu nne tangu kitufe kimejaa

nguzo za const byte = 4; // nguzo nne, sawa na hapo juu

vifungo vya char [safu] [safu] = {

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

safu ya baitiP [safu] = {13, 12, 11, 10}; pini // safu ya kitufe

nguzo za byteP [nguzo] = {9, 8, 7, 6}; Pini za safu ya // ya keypad

Kitufe cha keypad = Keypad (makeKeymap (vifungo), rowP, nguzoP, safu, nguzo); // tengeneza keypad

usanidi batili () {

Serial. Kuanza (9600); }

kitanzi batili () {

kitufe cha char Bonyeza = pedi.getKey (); // pata char kutoka kwa kitufe ikiwa (kifungo kimeshinikizwa) // onyesha kitufe gani kilichobanwa kwenye kitufe cha {Serial.println (buttonPressed); }}

Hatua ya 2: Ongeza Micro Servo

Ongeza Micro Servo
Ongeza Micro Servo
Ongeza Micro Servo
Ongeza Micro Servo

Sasa hebu ongeza gari la servo. Hii ni rahisi sana kuongeza kwenye mradi wetu wa sasa kwani seva ndogo ina waya tatu tu.

  • Waya ya hudhurungi huenda kwa reli ya kutuliza kwenye ubao wa mkate
  • Nyekundu huenda kwa reli ya Nguvu
  • Chungwa huenda kwa Pini 3 kwenye Arduino. Kumbuka seva ndogo inapaswa kuwa na pini ya PWM kwenye Arduino. Hii ni kwa sababu ya servo inayotumia TIMER2

Sasa wacha tu uhakikishe kuwa tumeunganisha servo ndogo na kwamba inasonga

# pamoja na # pamoja na "Servo.h"

safu za const byte = 4; // safu nne tangu kitufe kimejaa

nguzo za const byte = 4; // nguzo nne, sawa na hapo juu

vifungo vya char [safu] [safu] = {

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

safu ya baitiP [safu] = {13, 12, 11, 10}; pini // safu ya kitufe

nguzo za baiti P [nguzo] = {9, 8, 7, 6}; Pini za safu ya // ya keypad

Kitufe cha keypad = Keypad (makeKeymap (vifungo), rowP, nguzoP, safu, nguzo); // tengeneza keypad

Servo ya sasaServo; // tengeneza kitu cha servo kudhibiti servo

// vitu kumi na mbili vya servo vinaweza kuundwa kwenye bodi nyingi

int pos = 0; // kutofautisha kuhifadhi nafasi ya servo

usanidi batili () {

Serial. Kuanza (9600); ambatisha sasaServo (3); // inaunganisha servo kwenye pini 9 kwa kitu cha servo

}

kitanzi batili () {

kitufe cha char Bonyeza = pedi.getKey (); // pata char kutoka kwa kitufe ikiwa (kifungo kimeshinikizwa) // onyesha kitufe gani kilichobanwa kwenye kitufe cha {Serial.println (buttonPressed); }

andika sasaServo (95);

}

Hatua ya 3: Badilisha Nambari ili utumie keypad kwenye Servo

Jua tutabadilisha nambari yetu ili wakati tunabonyeza kitufe fulani kwenye kitufe, servo inahamia kwenye nafasi fulani. Jambo la umuhimu kwanza. Nafasi ya servo kwa 0 ilikuwa ya kushangaza. Kwa kuwa nilikuwa na servo inayoendelea ya kuzunguka, kila ilipofika karibu na 0, servo ilianza tu kuzunguka. Nambari niliyoweka kwenye nambari ilikuwa chini sana kama ningeweza kwenda bila hiyo kutokea. Kwa vyovyote vile, hushughulikia nambari yangu ya mwisho:

#jumuisha #jumuisha

safu za const byte = 4; // safu nne tangu kitufe kimejaa

nguzo za const byte = 4; // nguzo nne, sawa na hapo juu

vifungo vya char [safu] [safu] = {

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

safu ya baitiP [safu] = {13, 12, 11, 10}; pini // safu ya kitufe

nguzo za byteP [nguzo] = {9, 8, 7, 6}; Pini za safu ya // ya keypad

Kitufe cha keypad = Keypad (makeKeymap (vifungo), rowP, nguzoP, safu, nguzo); // tengeneza keypad

Servo myServo; //

usanidi batili () {

Serial. Kuanza (9600); ambatisha myServo (5); // inaambatisha servo kwenye pini 9 kwa kitu cha servo}

kitanzi batili () {

kitufe cha char = pedi.getKey (); // pata char kutoka kwa keypad if (key == '0') {myServo.write (11); Serial.println ("0"); kuchelewesha (15); } ikiwa (ufunguo == '1') {myServo.write (12); Serial.println ("1"); kuchelewesha (15); } ikiwa (ufunguo == '2') {myServo.write (24); Serial.println ("2"); kuchelewesha (15); } ikiwa (ufunguo == '3') {myServo.write (36); Serial.println ("3"); kuchelewesha (15); }

ikiwa (ufunguo == '4')

{myServo.andika (48); Serial.println ("4"); kuchelewesha (15); }

ikiwa (ufunguo == '5')

{myServo.andika (60); Serial.println ("5"); kuchelewesha (15); }

ikiwa (ufunguo == '6')

{myServo.andika (72); Serial.println ("6"); kuchelewesha (15); }

ikiwa (ufunguo == '7')

{myServo.andika (84); Serial.println ("7"); kuchelewesha (15); }

ikiwa (ufunguo == '8')

{myServo.andika (96); Serial.println ("8"); kuchelewesha (15); }

ikiwa (ufunguo == '9')

{myServo.andika (108); Serial.println ("9"); kuchelewesha (15); }

ikiwa (ufunguo == '*')

{myServo.andika (120); Serial.println ("*"); kuchelewesha (15); }

ikiwa (ufunguo == '#')

{myServo.andika (132); Serial.println ("#"); kuchelewesha (15); }

ikiwa (ufunguo == 'A')

{myServo.andika (146); Serial.println ("A"); kuchelewesha (15); }

ikiwa (ufunguo == 'B')

andika {myServo (158); Serial.println ("B"); kuchelewesha (15); }

ikiwa (ufunguo == 'C')

{myServo.andika (170); Serial.println ("C"); kuchelewesha (15); }

ikiwa (ufunguo == 'D')

{myServo.andika (180); Serial.println ("D"); kuchelewesha (15); }}

Ilipendekeza: