Sisukord:

Servo positoneerimine klahvistikuga: 3 sammu
Servo positoneerimine klahvistikuga: 3 sammu

Video: Servo positoneerimine klahvistikuga: 3 sammu

Video: Servo positoneerimine klahvistikuga: 3 sammu
Video: Ring guides track systems, Precision rotary circular guide rail conveyor line 2024, November
Anonim
Servo positsioneerimine klaviatuuriga
Servo positsioneerimine klaviatuuriga

Selles juhendis loome projekti, mis juhib mikro-servot klaviatuuriga, mis töötab koos Arduino Unoga.

Kasutatud materjalid:

Arduino Uno

Leivalaud

4x4 klaviatuur

Mikroservo

Samm: ühendage klaviatuur juhtmega

Ühendage klaviatuur juhtmega
Ühendage klaviatuur juhtmega
Ühendage klaviatuur juhtmega
Ühendage klaviatuur juhtmega

Kõige esimene mõte, mida peate tegema, on ühendada Arduino toiteplaat ja maandusliin oma leivaplaadil

  1. Ühendage 5V pin toiteliiniga (punane)
  2. Ühendage maandusnõel (GND) maandusrööpaga (sinine)

Nüüd, kui leivaplaadil on võimsus ja see on maandatud, võime hakata komponente ühendama.

Klaviatuuri ühendamine on lihtne, kuid peate teadma klaviatuuri ja arduino nööpnõelad. See tuleb kasuks, kui pöörame tähelepanu oma koodile.

Ärge unustage juhtmete kasutamisel alustada vasakult!

  • Esimene tihvt läheb 13 -le
  • Teine tihvt läheb 12 -le
  • Kolmas tihvt läheb 11 -le
  • Neljas tihvt läheb 10 -le
  • Viies tihvt 9 -ni
  • Kuues pin 8 -ni
  • Seitsmes pin kuni 7
  • Kaheksas pin kuni 6

Klaviatuuri ühendamisel ärge unustage hoida digitaalset pwm -nööpi lahti. Me vajame seda mikroservo jaoks

Enne koodi juurde jõudmist veenduge, et olete klaviatuuri kogu installinud. Selle leiate oma visandist, seejärel vahekaardilt Eskiis, sealhulgas kogu. Ilma selleta ei saa te klaviatuuri kasutada.

Nüüd pöördume koodi poole ja veenduge, et klaviatuur töötab ja annab külastatud väärtused

Kiirmärkused: veenduge, et klaviatuuri kontrollimiseks on olemas if -avaldus, vastasel juhul see ei tööta. Olge ettevaatlik ka viivituste suhtes, sest need segavad klahvistikult registreeritud nuppe

#kaasake

const baidiridad = 4; // neli rida, kuna klahvistik on täis

const baidi veerud = 4; // neli veergu, sama nagu eespool

char nupud [read] [veerud] = {

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

bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad

baidiveerudP [veerud] = {9, 8, 7, 6}; // klahvistiku veergpoldid

Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine

tühine seadistus () {

Seriaalne algus (9600); }

void loop () {

char nupp Vajutatud = pad.getKey (); // võta sümbol klaviatuurilt, kui (buttonPressed) // näita, millist nuppu klahvistikul vajutati {Serial.println (buttonPressed); }}

Samm: lisage mikroservo

Lisage Micro Servo
Lisage Micro Servo
Lisage Micro Servo
Lisage Micro Servo

Nüüd lisame servomootori. Seda on meie praegusele projektile tõesti lihtne lisada, kuna mikroserveril on ainult kolm juhet.

  • Pruun traat läheb leivaplaadi maandusrööpale
  • Punane läheb Power rööpale
  • Oranž läheb Arduino nööpnõelale 3. Pidage meeles, et mikroserveril peab Arduino peal olema PWM -pin. Selle põhjuseks on TIMER2 kasutav servo

Nüüd veenduge, et ühendasime mikroservo õigesti ja et see liigub

#sisalda #sisalda "Servo.h"

const baidiridad = 4; // neli rida, kuna klahvistik on täis

const baidi veerud = 4; // neli veergu, sama nagu eespool

char nupud [read] [veerud] = {

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

bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad

baidiveerudP [veerud] = {9, 8, 7, 6}; // klaviatuuri veergpoldid

Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine

ServovoolServo; // luua servoobjekt servo juhtimiseks

// enamikule tahvlitele saab luua kaksteist servo -objekti

int pos = 0; // muutuja servoasendi salvestamiseks

tühine seadistus () {

Seriaalne algus (9600); currentServo.attach (3); // kinnitab tihvti 9 servo servoobjekti külge

}

void loop () {

char nupp Vajutatud = pad.getKey (); // võta sümbol klaviatuurilt, kui (buttonPressed) // näita, millist nuppu klahvistikul vajutati {Serial.println (buttonPressed); }

currentServo.write (95);

}

Samm: muutke koodi, et kasutada servo klaviatuuri

Tea, et muudame oma koodi nii, et kui vajutame klahvistiku teatud nuppu, liigub servo teatud asendisse. Kõigepealt oluline asi. Servoasend 0 jaoks oli imelik. Kuna mul oli pideva pöörlemise servo, siis kui see jõudis 0 lähedale, hakkas servo lihtsalt pöörlema. Number, mille ma koodi sisestasin, oli nii madal kui võimalik, ilma et seda juhtuks. Igatahes, siin on minu viimane kood:

#kaasama #kaasama

const baidiridad = 4; // neli rida, kuna klahvistik on täis

const baidi veerud = 4; // neli veergu, sama nagu eespool

char nupud [read] [veerud] = {

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

bait ridaP [read] = {13, 12, 11, 10}; // klaviatuuri rea nööpnõelad

baidiveerudP [veerud] = {9, 8, 7, 6}; // klaviatuuri veergpoldid

Klaviatuuripadi = Klaviatuur (makeKeymap (nupud), rida P, veerudP, read, veerud); // klahvistiku loomine

Servo myServo; //

tühine seadistus () {

Seriaalne algus (9600); myServo.attach (5); // kinnitab tihvti 9 servo servoobjektile}

void loop () {

char võti = pad.getKey (); // võta sümbol klaviatuurilt if (key == '0') {myServo.write (11); Serial.println ("0"); viivitus (15); } if (võti == '1') {myServo.write (12); Serial.println ("1"); viivitus (15); } if (võti == '2') {myServo.write (24); Serial.println ("2"); viivitus (15); } if (võti == '3') {myServo.write (36); Serial.println ("3"); viivitus (15); }

kui (võti == '4')

{myServo.write (48); Serial.println ("4"); viivitus (15); }

kui (võti == '5')

{myServo.write (60); Serial.println ("5"); viivitus (15); }

kui (võti == '6')

{myServo.write (72); Serial.println ("6"); viivitus (15); }

kui (võti == '7')

{myServo.write (84); Serial.println ("7"); viivitus (15); }

kui (võti == '8')

{myServo.write (96); Serial.println ("8"); viivitus (15); }

kui (võti == '9')

{myServo.write (108); Serial.println ("9"); viivitus (15); }

kui (võti == '*')

{myServo.write (120); Serial.println ("*"); viivitus (15); }

kui (võti == '#')

{myServo.write (132); Serial.println ("#"); viivitus (15); }

kui (võti == 'A')

{myServo.write (146); Serial.println ("A"); viivitus (15); }

kui (võti == 'B')

{myServo.write (158); Serial.println ("B"); viivitus (15); }

kui (võti == 'C')

{myServo.write (170); Serial.println ("C"); viivitus (15); }

kui (võti == 'D')

{myServo.write (180); Serial.println ("D"); viivitus (15); }}

Soovitan: