Мазмуну:

Баскычтоп Servo Lock: 5 кадам
Баскычтоп Servo Lock: 5 кадам

Video: Баскычтоп Servo Lock: 5 кадам

Video: Баскычтоп Servo Lock: 5 кадам
Video: Lesson 87: How to control Servo motor with a push button switch SPB-1 2024, Июль
Anonim
Баскычтоп Servo Lock
Баскычтоп Servo Lock
Баскычтоп Servo Lock
Баскычтоп Servo Lock
Баскычтоп Servo Lock
Баскычтоп Servo Lock

Салам баарына, жакшы күн өткөрдүңүз деп үмүттөнөм. Эгерде үмүт жок болсо, анда сиз бул окуу куралына жана кээ бир терапиялык музыкага ачык ой жүгүртүү менен артка кайрыла аласыз. Программалоо кыйын болушу мүмкүн. Бактыга жараша, бул окуу куралы эч кандай түйшүк эмес, андыктан сиз популярдуу нерсени (күчтүү үн менен) аткара аласыз: ULTIMATE SERVO KEYPAD LOCK !!! Бул чын эле менин киришүүм, сизге жакты деп үмүттөнөм. Эмнеси болсо да, терүү үчүн манжаларыбызды жылыталы. (Салкын ыр: болот-ыр (классикалык музыка)).

Берилиштер:

-Манжаларыңыз

-Сиздин колуңуз да маанилүү

-USB кабели Arduino үчүн

-Ардуинонун бардык түрү бар (менде Arduino Mega бар)

-Matrix баскычтобу (клавиатура - ebay, keypad - amazon)

-Micro же Standard servo (мен микро сервону колдонуп жатам)

-* Кошумча* Нан тактасы - каалаган түрү

-* Кошумча* Электр энергиясы менен камсыздоо (5V)

1 -кадам: Схемалык убакыт

Схемалык убакыт!
Схемалык убакыт!
Схемалык убакыт!
Схемалык убакыт!

Ошентип, биринчи эмне кылыш керек? Ардуинону компьютерге туташтырыңыз. Кийинки баскычтопту туташтырыңыз. *Эскертүү - сиз ардуинодогу биринчи санариптик пин катары клавиатуранын акыркы пининен пиндерди туташтырышыңыз керек. Жана андан кийин оңдон солго*. Баскычтоптун ардуинодо 2-9 пинтери бар. Серводо санарип сигналдар катары пин 10 бар. Ардуино, клавиатура жана сервоприёмникти жана 5Vди да байлаңыз. * Ошондой эле көңүл буруңуз - servo эң жакшы тышкы кубат булагы же 5V адаптери менен колдонулат (дубал плагин), бирок ал дагы эле милдеттүү эмес. жөн гана Arduino тартып servo үчүн зым тиркөө үчүн. Бул схема жаңы баштагандарга жардам бербейт, андыктан кыскача түшүндүрүп берейин. Негизинен, акыркы пин 2 жана биринчи 9, экөө 8, үчөө 7 жана башкалар. Солдон оңго 2 2.

2 -кадам: коддоо убактысы

Коддоо убактысы!
Коддоо убактысы!
Коддоо убактысы!
Коддоо убактысы!

Макул, азыр биз коддоо бөлүгүнө кирдик! Бул жерде чыныгы сыйкырчылык болот! Ошентип, алгач клавиатураны жана сервону текшерүү үчүн тест программасы бар. Бул жерде:

//www.elegoo.com//2016.12.9

/* @file CustomKeypad.pde

|| @version 1.0 || @author Александр Бревиг || @contact [email protected] || || @description || | Баскычтоптун өлчөмүн жана ачкыч маанилерин өзгөртүүнү көрсөтөт. || # */ # кошуу

const байт ROWS = 4; // төрт катар

const байт COLS = 4; // төрт тилке // баскычтоптогу символдорду аныктайт char hexaKeys [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5 ',' 6 ',' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}}; байт rowPins [ROWS] = {9, 8, 7, 6}; // клавиатуранын байт colPins'инин катарына туташуу [COLS] = {5, 4, 3, 2}; // баскычтоптун мамычанын пинуттарына туташуу

// NewKeypad классынын инстанциясын инициализациялоо

Клавиатура customKeypad = Баскычтоп (makeKeymap (hexaKeys), rowPins, colPins, ROWS, COLS);

жараксыз орнотуу () {

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

//www.elegoo.com//2016.12.08 #include

Servo myservo; // сервону көзөмөлдөө үчүн servo объектисин түзүү

// көпчүлүк такталарда он эки servo объект түзүлүшү мүмкүн

int pos = 0; // servo абалын сактоо үчүн өзгөрмө

жараксыз орнотуу () {

myservo.attach (9); // servo объектиге пин 9дагы сервону тиркейт}

void loop () {

үчүн (pos = 0; pos = 0; pos -= 1) {// 180 градустан 0 градуска чейин барат myservo.write (pos); // servoга "pos" кечигүү абалына өтүүсүн айт (15); // servo позициясына жетүү үчүн 15ms күтөт}}

Бул жерде долбоордун коду (мен сизге чынын айтсам, мен көп деле кылган жокмун, жөн эле сервопроцентти кошуп койдум, бардык кодду жасаган адамдарга рахмат!):

#Сырсөздү кошуу.h

#баскычтопту кошуу

/*

|| Matrix баскычын колдонуу менен жөнөкөй сырсөздү киргизүү || 4/5/2012 Жаңыртуулар Натан Собиек: [email protected] || *

/* паролду ырастоо үчүн

//# сырсөз аракетин баштапкы абалга келтирүү

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

#кошуу

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

Сырсөздүн паролу = Сырсөз ("1234");

Servo myservo; // сервону көзөмөлдөө үчүн servo объектисин түзүү

#аныктоо servoPin 10

const байт ROWS = 4; // Төрт катар

const байт COLS = 4; // мамычалар // Keymap char баскычтарын аныктаңыз [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', ' B '}, {' 7 ',' 8 ',' 9 ',' C '}, {'*',' 0 ','#',' D '}};

байт rowPins [ROWS] = {9, 8, 7, 6}; // ROW0, ROW1, ROW2 жана ROW3 клавиатурасын бул Arduino казыктарына туташтырыңыз.

байт colPins [COLS] = {5, 4, 3, 2,}; // Баскычтопту COL0, COL1 жана COL2 бул Arduino казыктарына туташтырыңыз.

// Баскычтопту түзүү

Баскычтоп баскычы = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS);

жараксыз орнотуу () {

myservo.attach (servoPin); // серво объектисине пин 9дагы сервону бекитет

Serial.begin (9600);

keypad.addEventListener (keypadEvent); // бул баскычтоп үчүн окуя угуучуну кошуу

myservo.write (0);

}

void loop () {

keypad.getKey ();

}

// кээ бир өзгөчө окуяларга кам көрүңүз

void keypadEvent (KeypadEvent eKey) {switch (keypad.getState ()) {case PRESSED: switch (eKey) {case '*': checkPassword (); тыныгуу; демейки: password.append (eKey); }}}

жараксыз checkPassword () {

if (password.evaluate () == true) {Serial.println ("Ийгилик"); // Иштесе кодду кошуңуз

myservo.write (180);

кечигүү (3000);

myservo.write (0);

password.reset ();

} if if (password.evaluate () == false) {

Serial.println ("Туура эмес");

myservo.write (0);

// иштебесе иштетүү үчүн кодду кошуңуз

}

}

3 -кадам: Мунун баары эмнени билдирет?

Мунун баары эмнени билдирет?
Мунун баары эмнени билдирет?

Жогорудагы код (биринчиси) Сервого "шыпыруу" үчүн сигнал берет же 0дөн 180 градуска чейин барат. Же жөн эле солдон оңго же оңдон солго айлануунун жарым тегерегин бүтүрүү. Эгерде сиз код боюнча көбүрөөк маалымат алгыңыз келсе, мен сизге айта алам. Жөн гана сураңыз. Эч кандай зыяны жок, жөн эле кичинекей суроо. Эгер муну кыла албайт, келе жатат! Кандай болбосун, ортодогу код клавиатуранын ар бир баскычын текшерет. Ал эми коддун акыркысы "1234" сырсөзүн тергенде, серво менен "кулпусун ачат", сиз ойлоп таптыңыз, клавиатура.

4 -кадам: Мүчүлүштүктөрдү оңдоо

Мүчүлүштүктөрдү оңдоо
Мүчүлүштүктөрдү оңдоо

С: Менин баскычтоп иштебейт.

Ж: Биринчи пин 9 экенин унутпаңыз, ошол жерден түшүңүз. Ошондой эле, ардуинону компьютердин USB портуна туташтырып, Arduino программасын жасаңыз.

С: Серво иштебейт.

Ж: Серво пини 10 -пин экенин жана сизге жалпы негиз керек экенин унутпаңыз, эгер сиз Arduinoдон түз туташып жатсаңыз, кызгылт сары пин (микро серводо) пин 10, кызыл пин 5В жана күрөң пин - бул GND пини.

С: Arduino иштебейт:

Ж: Сиз аны туташтырдыңыз беле? Бул жеке көйгөй окшойт

5 -кадам: Эгерде сизде кандайдыр бир суроолор болсо, Комментарийлер бөлүмүндө сурап, жазылууну унутпаңыз

Саламатсызбы, менин окуу куралымды көргөнүңүз үчүн рахмат. Кызыктуу болуп жатат.

Сунушталууда: