Sisällysluettelo:

Servoasetus näppäimistöllä: 3 vaihetta
Servoasetus näppäimistöllä: 3 vaihetta

Video: Servoasetus näppäimistöllä: 3 vaihetta

Video: Servoasetus näppäimistöllä: 3 vaihetta
Video: КОГДА МЕХАНИКА СЛИШКОМ ГРОМКАЯ! SteelSeries Apex 3 2024, Marraskuu
Anonim
Servo Positoning Näppäimistöllä
Servo Positoning Näppäimistöllä

Tässä ohjeessa luomme projektin, joka ohjaa Micro-Servoa näppäimistöllä, joka käyttää sitä Arduino Unolla.

Käytetyt materiaalit:

Arduino Uno

Leipälauta

4x4 -näppäimistö

Mikro-servo

Vaihe 1: Johdot näppäimistöllä

Johdot näppäimistö
Johdot näppäimistö
Johdot näppäimistö
Johdot näppäimistö

Aivan ensimmäinen ajatus, joka sinun on tehtävä, on kytkeä sähkökisko ja maadoituskisko leipälevyllesi Arduinosta

  1. Liitä 5V -nasta virtakiskoon (punainen)
  2. Liitä maadoitustappi (GND) maadoituskiskoon (sininen)

Nyt kun leipälaudalla on virtaa ja se on maadoitettu, voimme aloittaa komponenttien johdotuksen.

Näppäimistön kytkeminen on helppoa, mutta sinun on otettava huomioon näppäimistön ja arduinon nastat. Siitä on hyötyä, kun kiinnitämme huomiomme koodiin.

Muista aloittaa vasemmalta, kun käytät johtojasi!

  • Ensimmäinen nasta menee kohtaan 13
  • Toinen nasta menee 12: een
  • Kolmas nasta menee kohtaan 11
  • Neljäs nasta menee 10: een
  • Viides nasta yhdeksään
  • Kuudes nasta 8
  • Seitsemäs nasta 7
  • Kahdeksas nasta 6

Kun kytket näppäimistön, muista pitää digitaalinen pwm -nasta auki. Tarvitsemme sitä mikroservolle

Ennen kuin pääsemme koodiin, varmista, että olet asentanut näppäimistökirjaston. Se löytyy luonnoksestasi ja sitten luonnosvälilehdestä, sisältäen kirjaston. Et voi käyttää näppäimistöä ilman sitä.

Siirrytään nyt koodiin ja varmistetaan, että näppäimistö toimii ja antaa osallistuneet arvot

Pikahuomautuksia: Varmista, että sinulla on if -lause näppäimistön tarkistamiseksi, muuten se ei toimi. Varo myös viiveitä, ne sekoittavat näppäimistön rekisteröimät painikkeet

#sisältää

const tavu rivit = 4; // neljä riviä, koska näppäimistö on täynnä

const tavu sarakkeet = 4; // neljä saraketta, sama kuin yllä

char -painikkeet [rivit] [sarakkeet] = {

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

tavu rivi P [rivit] = {13, 12, 11, 10}; // näppäimistön rivinapit

tavu sarakkeetP [sarakkeet] = {9, 8, 7, 6}; // näppäimistön sarakkeen nastat

Näppäimistötyyppi = Näppäimistö (makeKeymap (painikkeet), rivi P, sarakkeet P, rivit, sarakkeet); // näppäimistön luominen

void setup () {

Sarja.alku (9600); }

void loop () {

char -painikePainettu = pad.getKey (); // hae char näppäimistöltä jos (buttonPressed) // näytä mitä näppäimistön painiketta on painettu {Serial.println (buttonPressed); }}

Vaihe 2: Lisää Micro Servo

Lisää Micro Servo
Lisää Micro Servo
Lisää Micro Servo
Lisää Micro Servo

Lisää nyt servomoottori. Tämä on todella helppo lisätä nykyiseen projektiin, koska mikropalvelimessa on vain kolme johtoa.

  • Ruskea johto menee leipälevyn maadoituskiskoon
  • Punainen menee Power -kiskoon
  • Oranssi menee Arduinon nastaan 3. Muista, että mikropalvelimella on oltava PWM -pin Arduinossa. Tämä johtuu TIMER2: ta käyttävästä servosta

Nyt varmistetaan vain, että olemme liittäneet mikropalvelun oikein ja että se liikkuu

#Sisällytä #Sisällytä "Servo.h"

const tavu rivit = 4; // neljä riviä, koska näppäimistö on täynnä

const tavu sarakkeet = 4; // neljä saraketta, sama kuin yllä

char -painikkeet [rivit] [sarakkeet] = {

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

tavu rivi P [rivit] = {13, 12, 11, 10}; // näppäimistön rivinapit

tavu sarakkeetP [sarakkeet] = {9, 8, 7, 6}; // näppäimistön sarakkeen nastat

Näppäimistötyyppi = Näppäimistö (makeKeymap (painikkeet), rivi P, sarakkeet P, rivit, sarakkeet); // näppäimistön luominen

ServovirtaServo; // luoda servo -objekti servoa ohjaamaan

// Useimmille levyille voidaan luoda kaksitoista servo -objektia

int pos = 0; // muuttuja servoaseman tallentamiseen

void setup () {

Sarja.alku (9600); currentServo.attach (3); // kiinnittää nastan 9 servon servo -objektiin

}

void loop () {

char -painikePainettu = pad.getKey (); // hae char näppäimistöltä jos (buttonPressed) // näytä mitä näppäimistön painiketta on painettu {Serial.println (buttonPressed); }

currentServo.write (95);

}

Vaihe 3: Muokkaa koodia käyttämään Servon näppäimistöä

Tiedä, että aiomme muuttaa koodiamme niin, että kun painamme tiettyä näppäimistön painiketta, servo siirtyy tiettyyn asentoon. Ensiksi tärkeä asia. Servoasento 0: lle oli outo. Koska minulla oli jatkuvan pyörimisen servo, aina kun se lähestyi 0: ta, servo alkoi vain pyöriä. Koodiin kirjoittamani numero oli niin pieni kuin voisin mennä ilman, että näin tapahtuisi. Tässä kuitenkin lopullinen koodini:

#Sisällytä #Sisällytä

const tavu rivit = 4; // neljä riviä, koska näppäimistö on täynnä

const tavu sarakkeet = 4; // neljä saraketta, sama kuin yllä

char -painikkeet [rivit] [sarakkeet] = {

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

tavu rivi P [rivit] = {13, 12, 11, 10}; // näppäimistön rivinastat

tavu sarakkeetP [sarakkeet] = {9, 8, 7, 6}; // näppäimistön sarakkeen nastat

Näppäimistötyyppi = Näppäimistö (makeKeymap (painikkeet), rivi P, sarakkeet P, rivit, sarakkeet); // näppäimistön luominen

Servo myServo; //

void setup () {

Sarja.alku (9600); myServo.attach (5); // kiinnittää nastan 9 servon servo -objektiin}

void loop () {

char -näppäin = pad.getKey (); // hae char näppäimistöltä if (key == '0') {myServo.write (11); Serial.println ("0"); viive (15); } jos (avain == '1') {myServo.write (12); Serial.println ("1"); viive (15); } jos (avain == '2') {myServo.write (24); Serial.println ("2"); viive (15); } jos (avain == '3') {myServo.write (36); Serial.println ("3"); viive (15); }

jos (avain == '4')

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

jos (avain == '5')

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

jos (avain == '6')

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

jos (avain == '7')

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

jos (avain == '8')

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

jos (avain == '9')

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

jos (avain == '*')

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

jos (avain == '#')

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

jos (avain == 'A')

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

jos (avain == 'B')

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

jos (avain == 'C')

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

jos (avain == 'D')

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

Suositeltava: