Turinys:

Servo pozicionavimas su klaviatūra: 3 žingsniai
Servo pozicionavimas su klaviatūra: 3 žingsniai

Video: Servo pozicionavimas su klaviatūra: 3 žingsniai

Video: Servo pozicionavimas su klaviatūra: 3 žingsniai
Video: Web Development - Computer Science for Business Leaders 2016 2024, Liepa
Anonim
Servo pozicionavimas su klaviatūra
Servo pozicionavimas su klaviatūra

Šioje instrukcijoje mes sukursime projektą, kuris valdys „Micro-Servo“su klaviatūra, veikiančia su „Arduino Uno“.

Naudotos medžiagos:

Arduino Uno

Bandomoji Lenta

4x4 klaviatūra

Mikro servo

1 veiksmas: prijunkite klaviatūrą

Prijunkite klaviatūrą
Prijunkite klaviatūrą
Prijunkite klaviatūrą
Prijunkite klaviatūrą

Pati pirmoji mintis, kurią jums reikia padaryti, yra prijungti maitinimo bėgelį ir įžeminimo bėgelį ant savo duonos lentos iš „Arduino“

  1. Prijunkite 5V kaištį prie maitinimo tinklo (raudona)
  2. Prijunkite įžeminimo kaištį (GND) prie įžeminimo bėgio (mėlynas)

Dabar, kai duonos lenta turi galią ir yra įžeminta, galime pradėti prijungti komponentus.

Klaviatūros prijungimas yra lengvas, tačiau turite atkreipti dėmesį į klaviatūros ir arduino kaiščius. Tai pravers, kai atkreipsime dėmesį į savo kodą.

Naudodami laidus, nepamirškite pradėti nuo kairės pusės!

  • Pirmasis smeigtukas eina į 13
  • Antrasis kaištis eina į 12
  • Trečias smeigtukas eina į 11
  • Ketvirtasis kaištis eina į 10
  • Penktasis kaištis iki 9
  • Šeštasis kaištis iki 8
  • Septintasis kaištis iki 7
  • Aštuntasis kaištis iki 6

Prijungdami klaviatūrą, nepamirškite atidaryti skaitmeninio pwm kaiščio. Mums to reikės mikro servo

Prieš pereidami prie kodo, įsitikinkite, kad įdiegėte klaviatūros biblioteką. Jį galima rasti eskize, tada eskizo skirtuke, įskaitant biblioteką. Be jo negalėsite naudotis klaviatūra.

Dabar pereikime prie kodo ir įsitikinkime, kad klaviatūra veikia ir pateikia lankomas vertes

Greitos pastabos: įsitikinkite, kad turite teiginį if, kad patikrintumėte klaviatūrą, kitaip ji neveiks. Taip pat būkite atsargūs dėl vėlavimo, nes jie suklaidins mygtukus, užregistruotus iš klaviatūros

#įtraukti

const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna

const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau

char mygtukai [eilutės] [stulpeliai] = {

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

baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai

baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai

Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą

void setup () {

Serial.begin (9600); }

void loop () {

char mygtukasPaspaustas = pad.getKey (); // gauti char iš klaviatūros, jei (buttonPressed) // parodyti, koks mygtukas buvo paspaustas klaviatūroje {Serial.println (buttonPressed); }}

2 veiksmas: pridėkite „Micro Servo“

Pridėkite „Micro Servo“
Pridėkite „Micro Servo“
Pridėkite „Micro Servo“
Pridėkite „Micro Servo“

Dabar pridėkime servo variklį. Tai labai lengva pridėti prie mūsų dabartinio projekto, nes mikro serveris turi tik tris laidus.

  • Ruda viela eina į duonos lentos įžeminimo bėgelį
  • Raudona eina į „Power rail“
  • Oranžinė eina į „Arduino“3 kaištį. Atminkite, kad „Arduino“mikro serveryje turi būti PWM kaištis. Taip yra dėl servo, naudojančio TIMER2

Dabar tik įsitikinkime, kad tinkamai prijungėme mikro servo sistemą ir kad ji juda

#įtraukti #įtraukti „Servo.h“

const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna

const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau

char mygtukai [eilutės] [stulpeliai] = {

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

baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai

baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai

Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą

Servo srovėServo; // sukurti servo objektą valdyti servo

// Daugumoje lentų galima sukurti dvylika servo objektų

int pos = 0; // kintamasis servo padėčiai išsaugoti

void setup () {

Serial.begin (9600); currentServo.attach (3); // prie servo objekto pritvirtina 9 kaiščio servo

}

void loop () {

char mygtukasPaspaustas = pad.getKey (); // gauti char iš klaviatūros, jei (buttonPressed) // parodyti, koks mygtukas buvo paspaustas klaviatūroje {Serial.println (buttonPressed); }

currentServo.write (95);

}

3 veiksmas: pakeiskite kodą, kad galėtumėte naudoti „Servo“klaviatūrą

Žinokite, kad pakeisime savo kodą taip, kad kai paspausime tam tikrą klaviatūros mygtuką, servo sistema pereis į tam tikrą padėtį. Pirmiausia svarbus dalykas. Servo padėtis 0 buvo keista. Kadangi turėjau nepertraukiamo sukimosi servą, kai jis priartėdavo prie 0, servo tiesiog pradėdavo suktis. Skaičius, kurį įvedžiau į kodą, buvo toks mažas, kaip galėjau eiti be to. Bet kokiu atveju, čia yra mano galutinis kodas:

#įtraukti #įtraukti

const baitų eilutės = 4; // keturios eilutės, nes klaviatūra pilna

const baitų stulpeliai = 4; // keturi stulpeliai, tokie patys kaip aukščiau

char mygtukai [eilutės] [stulpeliai] = {

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

baitų eilutėP [eilutės] = {13, 12, 11, 10}; // klaviatūros eilutės kaiščiai

baitų stulpeliaiP [stulpeliai] = {9, 8, 7, 6}; // klaviatūros stulpelių kaiščiai

Klaviatūros klaviatūra = klaviatūra („makeKeymap“(mygtukai), eilutė P, stulpeliaiP, eilutės, stulpeliai); // sukurti klaviatūrą

Servo myServo; //

void setup () {

Serial.begin (9600); myServo.attach (5); // prie servo objekto pritvirtina 9 kaiščio servo}

void loop () {

char klavišas = pad.getKey (); // gauti simbolį iš klaviatūros, jei (klavišas == '0') {myServo.write (11); Serial.println ("0"); vėlavimas (15); } if (raktas == '1') {myServo.write (12); Serial.println ("1"); vėlavimas (15); } if (raktas == '2') {myServo.write (24); Serial.println ("2"); vėlavimas (15); } if (raktas == '3') {myServo.write (36); Serial.println ("3"); vėlavimas (15); }

jei (raktas == '4')

{myServo.write (48); Serial.println ("4"); vėlavimas (15); }

jei (raktas == '5')

{myServo.write (60); Serial.println ("5"); vėlavimas (15); }

jei (raktas == '6')

{myServo.write (72); Serial.println ("6"); vėlavimas (15); }

jei (raktas == '7')

{myServo.write (84); Serial.println ("7"); vėlavimas (15); }

jei (raktas == '8')

{myServo.write (96); Serial.println ("8"); vėlavimas (15); }

jei (raktas == '9')

{myServo.write (108); Serial.println ("9"); vėlavimas (15); }

jei (raktas == '*')

{myServo.write (120); Serial.println ("*"); vėlavimas (15); }

jei (raktas == '#')

{myServo.write (132); Serial.println ("#"); vėlavimas (15); }

jei (raktas == 'A')

{myServo.write (146); Serial.println ("A"); vėlavimas (15); }

jei (raktas == 'B')

{myServo.write (158); Serial.println ("B"); vėlavimas (15); }

jei (raktas == 'C')

{myServo.write (170); Serial.println ("C"); vėlavimas (15); }

jei (raktas == 'D')

{myServo.write (180); Serial.println ("D"); vėlavimas (15); }}

Rekomenduojamas: