Obsah:

Posuv servo s klávesnicou: 3 kroky
Posuv servo s klávesnicou: 3 kroky

Video: Posuv servo s klávesnicou: 3 kroky

Video: Posuv servo s klávesnicou: 3 kroky
Video: Internet Technologies - Computer Science for Business Leaders 2016 2024, November
Anonim
Posuv servo s klávesnicou
Posuv servo s klávesnicou

V tomto návode vytvoríme projekt, ktorý bude ovládať mikro-servo pomocou klávesnice, na ktorej je spustené Arduino Uno.

Použitý materiál:

Arduino Uno

Breadboard

Klávesnica 4x4

Micro-servo

Krok 1: Pripojte klávesnicu

Pripojte klávesnicu
Pripojte klávesnicu
Pripojte klávesnicu
Pripojte klávesnicu

Úplne prvá myšlienka, ktorú musíte urobiť, je prepojiť napájaciu a uzemňovaciu koľajnicu na vašom doske z Arduina

  1. Pripojte 5V kolík k napájacej lište (červená)
  2. Pripojte uzemňovací kolík (GND) k uzemňovacej lište (modrá)

Teraz, keď je doštička napájania a je uzemnená, môžeme začať zapojovať naše komponenty.

Zapojenie klávesnice je jednoduché, ale musíte si všimnúť kolíky na klávesnici a arduino. Bude sa nám to hodiť, keď obrátime svoju pozornosť na náš kód.

Pri použití vodičov nezabudnite začať vľavo!

  • Prvý kolík ide na 13
  • Druhý kolík ide na 12
  • Tretí kolík smeruje k 11
  • Štvrtý kolík smeruje k 10
  • Piaty kolík k 9
  • Šiesty pin na 8
  • Siedmy pin do 7
  • Ôsmy pin na 6

Pri pripájaní klávesnice ponechajte digitálny kolík PWM otvorený. Budeme to potrebovať pre mikro-servo

Predtým, ako sa dostaneme k kódu, skontrolujte, či máte nainštalovanú knižnicu klávesníc. Nájdete ho vo svojom náčrte, potom na karte skica a vrátane knižnice. Bez nej nebudete môcť používať klávesnicu.

Teraz sa obrátime na kód a ubezpečíme sa, že klávesnica funguje a poskytuje požadované hodnoty

Rýchle poznámky: Uistite sa, že máte príkaz if na kontrolu klávesnice, inak nebude fungovať. Dávajte si tiež pozor na meškania, pretože sa budú tlačiť pri tlačidlách registrovaných z klávesnice

#zahrnúť

konštantné bajtové riadky = 4; // štyri riadky, pretože klávesnica je plná

stĺpce konštantných bajtov = 4; // štyri stĺpce, rovnaké ako vyššie

tlačidlá znakov [riadky] [stĺpce] = {

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

bajtový riadokP [riadky] = {13, 12, 11, 10}; // riadkové piny klávesnice

bajtové stĺpceP [stĺpce] = {9, 8, 7, 6}; // stĺpce kolíka klávesnice

Klávesnica = Klávesnica (makeKeymap (tlačidlá), riadok P, stĺpce P, riadky, stĺpce); // vytvorenie klávesnice

neplatné nastavenie () {

Serial.begin (9600); }

prázdna slučka () {

char buttonPressed = pad.getKey (); // získanie znaku z klávesnice, ak (buttonPressed) // ukáže, aké tlačidlo bolo stlačené na klávesnici {Serial.println (buttonPressed); }}

Krok 2: Pridajte mikro servo

Pridajte mikro servo
Pridajte mikro servo
Pridajte mikro servo
Pridajte mikro servo

Teraz pridáme servomotor. Ten je skutočne ľahké pridať do nášho súčasného projektu, pretože mikro server má iba tri vodiče.

  • Hnedý drôt prechádza na uzemňovaciu koľajnicu na doske
  • Červená ide na Power rail
  • Orange ide na Pin 3 na Arduine. Pamätajte, že mikro server musí mať na Arduine pin PWM. Dôvodom je servo využívajúce TIMER2

Teraz sa len uistite, že sme mikro servo zapojili správne a aby sa pohybovalo

#include #include "Servo.h"

konštantné bajtové riadky = 4; // štyri riadky, pretože klávesnica je plná

stĺpce konštantných bajtov = 4; // štyri stĺpce, rovnaké ako vyššie

tlačidlá znakov [riadky] [stĺpce] = {

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

bajtový riadokP [riadky] = {13, 12, 11, 10}; // riadkové piny klávesnice

bajtové stĺpceP [stĺpce] = {9, 8, 7, 6}; // stĺpce kolíka klávesnice

Klávesnica = Klávesnica (makeKeymap (tlačidlá), riadok P, stĺpce P, riadky, stĺpce); // vytvorenie klávesnice

Servo prúd Servo; // vytvorenie objektu serva na ovládanie serva

// Na väčšine dosiek je možné vytvoriť dvanásť servo objektov

int pos = 0; // premenná na uloženie polohy serva

neplatné nastavenie () {

Serial.begin (9600); currentServo.attach (3); // pripevní servo na kolíku 9 k objektu serva

}

prázdna slučka () {

char buttonPressed = pad.getKey (); // získanie znaku z klávesnice, ak (buttonPressed) // ukáže, aké tlačidlo bolo stlačené na klávesnici {Serial.println (buttonPressed); }

currentServo.write (95);

}

Krok 3: Upravte kód tak, aby používal klávesnicu na serve

Vedzte, že upravíme náš kód tak, že keď stlačíme konkrétne tlačidlo na klávesnici, servo sa presunie do konkrétnej polohy. Najdôležitejšia vec. Poloha servo pre 0 bola divná. Pretože som mal servo s nepretržitým otáčaním, kedykoľvek sa priblížilo k 0, servo sa začalo točiť. Číslo, ktoré som zadal do kódu, bolo také nízke, ako som mohol bez toho, aby sa to stalo. Každopádne, tu je môj konečný kód:

#include #include

konštantné bajtové riadky = 4; // štyri riadky, pretože klávesnica je plná

stĺpce konštantných bajtov = 4; // štyri stĺpce, rovnaké ako vyššie

tlačidlá znakov [riadky] [stĺpce] = {

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

bajtový riadokP [riadky] = {13, 12, 11, 10}; // riadkové piny klávesnice

bajtové stĺpceP [stĺpce] = {9, 8, 7, 6}; // stĺpce kolíka klávesnice

Klávesnica = Klávesnica (makeKeymap (tlačidlá), riadok P, stĺpce P, riadky, stĺpce); // vytvorenie klávesnice

Servo myServo; //

neplatné nastavenie () {

Serial.begin (9600); myServo.attach (5); // prichytenie serva na pine 9 k objektu serva}

prázdna slučka () {

char key = pad.getKey (); // získajte znak z klávesnice, ak (kláves == '0') {myServo.write (11); Serial.println ("0"); oneskorenie (15); } if (key == '1') {myServo.write (12); Serial.println ("1"); oneskorenie (15); } if (key == '2') {myServo.write (24); Serial.println ("2"); oneskorenie (15); } if (key == '3') {myServo.write (36); Serial.println ("3"); oneskorenie (15); }

if (kľúč == '4')

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

if (kľúč == '5')

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

if (kľúč == '6')

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

if (kľúč == '7')

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

if (kľúč == '8')

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

if (kľúč == '9')

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

if (key == '*')

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

if (key == '#')

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

if (key == 'A')

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

if (kľúč == 'B')

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

if (key == 'C')

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

if (key == 'D')

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

Odporúča: