Talaan ng mga Nilalaman:

Keypad Servo Lock: 5 Hakbang
Keypad Servo Lock: 5 Hakbang

Video: Keypad Servo Lock: 5 Hakbang

Video: Keypad Servo Lock: 5 Hakbang
Video: Password Based Security Door Lock System Using Arduino and servo 2024, Hulyo
Anonim
Keypad Servo Lock
Keypad Servo Lock
Keypad Servo Lock
Keypad Servo Lock
Keypad Servo Lock
Keypad Servo Lock

Kamusta kayong lahat, sana ay nagkaroon kayo ng magandang araw. Kung hindi sana maaari mo lamang i-rewind na may ilang bukas na kaisipan sa tutorial na ito at ilang musikang therapeutic. Ang pag-program ay maaaring maging isang abala. Sa kabutihang palad, ang tutorial na ito ay hindi isang abala, kaya maaari mong makamit ang isang tanyag na bagay na tinatawag na (sa malakas na boses): THE ULTIMATE SERVO KEYPAD LOCK !!! Iyon lang talaga ang pagpapakilala ko, sana nagustuhan mo ito. Gayunpaman, painitin natin ang ating mga daliri para sa pagta-type. (Isang cool na kanta: maaaring-kaya kanta (klasikal na musika)).

Mga Pantustos:

-Ang iyong mga daliri

-Ang iyong mga kamay din, mahalaga iyan

-USB cable para sa Arduino

-Ang anumang uri ng arduino na magagamit (Mayroon akong Arduino Mega)

-Matrix Keypad (keypad - ebay, keypad - amazon)

-Micro o Standard servo (Gumagamit ako ng isang micro servo)

- * Opsyonal * Breadboard - anumang uri

- * Opsyonal * Power supply (5V)

Hakbang 1: Oras ng Skematika

Oras ng Skematika!
Oras ng Skematika!
Oras ng Skematika!
Oras ng Skematika!

Kaya, ano muna ang gagawin? I-hook up ang Arduino sa computer. Ikonekta ang keypad sa susunod. * Tandaan - kailangan mong ikonekta ang mga pin mula sa huling pin sa keypad bilang unang digital pin sa arduino. At pumunta mula kanan pakanan pakaliwa pagkatapos nito *. Ang Keypad ay may mga pin 2-9 sa arduino. Ang servo ay may pin 10 bilang mga digital signal. Itali ang bakuran ng arduino, keypad, at servo at ang 5V din. * Tandaan din - na ang servo ay pinakamahusay na ginagamit sa isang panlabas na mapagkukunan ng kuryente o isang adapter na may 5V (wall plug-in), ngunit opsyonal pa rin ito. * Hindi mo kailangang itali ang mga bakuran at 5V sa pisikal, ang ibig kong sabihin ay upang mai-attach lamang ang isang kawad mula sa Arduino sa servo. Ang eskematiko na ito ay hindi makakatulong sa mga nagsisimula, kaya payagan akong ipaliwanag sa maikling detalye. Talaga, ang huling pin ay 2 at ang una ay 9, dalawa ay 8, tatlo ay 7, at iba pa. Pumunta sa kaliwa hanggang kanan 2 2.

Hakbang 2: Oras ng Pag-coding

Oras ng Pag-coding!
Oras ng Pag-coding!
Oras ng Pag-coding!
Oras ng Pag-coding!

Ok kaya ngayon nasa bahagi na tayo ng pag-coding! Dito nangyayari ang totoong mahika! Kaya, mayroong isang programa sa pagsubok upang unang subukan ang keypad at servo. Dito:

//www.elegoo.com//2016.12.9

/ * @file CustomKeypad.pde

|| @version 1.0 || @author Alexander Brevig || @contact [email protected] || || @description || | Nagpapakita ng pagbabago ng laki ng keypad at mga pangunahing halaga. || # * / # isama

const byte ROWS = 4; // apat na hilera

const byte COLS = 4; // apat na haligi // tukuyin ang mga simbolo sa mga pindutan ng mga keypad char hexaKeys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5 ',' 6 ',' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}}; byte rowPins [ROWS] = {9, 8, 7, 6}; // kumonekta sa mga row ng pinout ng keypad byte colPins [COLS] = {5, 4, 3, 2}; // kumonekta sa mga pinout ng haligi ng keypad

// magpasimula ng isang halimbawa ng klase ng NewKeypad

Keypad customKeypad = Keypad (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

walang bisa ang pag-setup () {

Serial.begin (9600); } void loop () {char customKey = customKeypad.getKey (); kung (customKey) {Serial.println (customKey); }}

//www.elegoo.com//2016.12.08 # isama

Servo MyServo; // create servo object upang makontrol ang isang servo

// labindalawang mga bagay na servo ay maaaring malikha sa karamihan ng mga board

int pos = 0; // variable upang maiimbak ang posisyon ng servo

walang bisa ang pag-setup () {

myservo.attach (9); // nakakabit ang servo sa pin 9 sa servo object}

void loop () {

para sa (pos = 0; pos = 0; pos - = 1) {// ay mula 180 degree hanggang 0 degree myservo.write (pos); // sabihin kay servo na pumunta sa posisyon sa variable na 'pos' na pagkaantala (15); // naghihintay ng 15ms para maabot ng servo ang posisyon}}

Narito ang code ng proyekto (magiging tapat ako sa iyo, wala akong nagawa, idinagdag ko lamang ang bahagi ng servo, sabihin salamat sa mga taong gumawa ng lahat ng code!):

# isama ang Password.h

# isama ang Keypad

/*

|| Simpleng Pagpasok ng Password Gamit ang Matrix Keypad || 4/5/2012 Mga Update Nathan Sobieck: [email protected] || *

/ * ay upang patunayan ang password

// # ay upang i-reset ang pagtatangka ng password

/////////////////////////////////////////////////////////////////

# isama

//https://www.arduino.cc/playground/uploads/Code/Password.zip #include //https://www.arduino.cc/playground/uploads/Code/Keypad.zip

Password password = Password ("1234");

Servo MyServo; // create servo object upang makontrol ang isang servo

# tukuyin ang servoPin 10

const byte ROWS = 4; // Apat na hilera

const byte COLS = 4; // columns // Define the Keymap char keys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {' * ',' 0 ',' # ',' D '}};

byte rowPins [ROWS] = {9, 8, 7, 6}; // Ikonekta ang keypad ROW0, ROW1, ROW2 at ROW3 sa mga pin na Arduino na ito.

byte colPins [COLS] = {5, 4, 3, 2,}; // Ikonekta ang keypad COL0, COL1 at COL2 sa mga pin na Arduino na ito.

// Lumikha ng Keypad

Keypad keypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);

walang bisa ang pag-setup () {

myservo.attach (servoPin); // nakakabit ang servo sa pin 9 sa object ng servo

Serial.begin (9600);

keypad.addEventListener (keypadEvent); // magdagdag ng isang tagapakinig ng kaganapan para sa keypad na ito

myservo.write (0);

}

void loop () {

keypad.getKey ();

}

// alagaan ang ilang mga espesyal na kaganapan

void keypadEvent (KeypadEvent eKey) {switch (keypad.getState ()) {case PRESSED: switch (eKey) {case '*': checkPassword (); pahinga; default: password.append (eKey); }}}

walang bisa ang checkPassword () {

kung (password.evaluate () == totoo) {Serial.println ("Tagumpay"); // Magdagdag ng code upang patakbuhin kung ito ay gumagana

myservo.write (180);

pagkaantala (3000);

myservo.write (0);

password.reset ();

} iba pa kung (password.evaluate () == false) {

Serial.println ("Maling");

myservo.write (0);

// add code upang patakbuhin kung hindi ito gumana

}

}

Hakbang 3: Ano ang Ibig Sabihin ng Lahat Ng Ito?

Ano ang Ibig Sabihin ng Lahat Ng Ito?
Ano ang Ibig Sabihin ng Lahat Ng Ito?

Ang code sa itaas (ang una) ay magbibigay ng isang senyas sa Servo upang "walisin" o pumunta lamang mula 0 hanggang 180 degree. O pagkumpleto lamang ng kalahating bilog ng pag-ikot mula kaliwa hanggang kanan o pakanan pakaliwa. Kung nais mo ng higit pang mga detalye sa code na maaari kong sabihin sa iyo. Magtanong lang po. Walang nagawang pinsala, isang simpleng maliit na katanungan lamang. Sige na, kaya mo yan! Gayunpaman, ang code sa gitna ay sumusubok sa bawat pindutan ng keypad. At ang huli ng code ay "unlock" lamang sa servo kapag na-type mo ang passkey na "1234", nahulaan mo ito, ang keypad.

Hakbang 4: Pag-troubleshoot

Pag-troubleshoot
Pag-troubleshoot

Q: Ang aking keypad ay hindi gumagana.

A: Tandaan ang unang pin ay 9 kaya bumaba mula doon. Tiyaking din na ikonekta ang arduino sa USB port ng computer at i-program ang Arduino.

T: Hindi gumagana ang Servo.

A: Tandaan na ang servo pin ay pin 10 at kailangan mo ng isang karaniwang landas, kung kumokonekta ka nang diretso mula sa Arduino, tandaan na ang orange pin (sa micro servo) ay pin 10, ang pulang pin ay 5V, at ang brown pin ang GND pin.

Q: Ang Arduino ay hindi gumagana:

A: Naikonekta mo ba ito? Parang personal na problema iyon

Hakbang 5: Kung Mayroon kang anumang mga Katanungan, Huwag Mag-atubiling Magtanong sa Seksyon ng Komento at Tandaan na Mag-subscribe

Paalam, salamat sa pagtingin sa aking tutorial. Naging masaya.

Inirerekumendang: