Бутоните са невероятно често срещани в пространството на DIY Arduino, като безброй проекти в мрежата разчитат на тези малки превключватели, за да активират техния код. Но как точно можете да свържете и програмирате повече от един бутон за работа с вашия Arduino? Нека разберем.

Какво правим?

Това е прост проект, който е предназначен да ви накара да започнете с по-сложни компилации на Arduino в бъдеще. Няма да даваме работа на нашите бутони, но това означава, че можете да изберете какво искате да правят за себе си, като използвате някое от другите ни удобни ръководства за DIY Arduino.

Какво ти е необходимо?

Нуждаете се само от няколко части, за да завършите този проект, много от които вече ще имате в колекцията си от части от „Направи си сам“.

  • 4 х превключвателя с бутони
  • 4 x 10kΩ резистора
  • 1 х Всякакви тип платка Arduino (използваме Леонардо)
  • Тел с PVC/силиконово покритие

Окабеляване на множество бутони с Arduino

Окабеляването за този проект е просто, но трябва да внимавате, за да избегнете заплитането на проводниците, докато правите всяка връзка, тъй като всеки бутон изисква два различни проводника.

Започвайки просто, има смисъл да свържете един бутон с положителния му крак, свързан към 5V щифт на нашия Arduino и заземителният крак на бутона е свързан както към GND, така и към Digital Pin 2 на нашето Arduino дъска. Резистор трябва да бъде свързан между заземяващия крак на бутона и щифта GND на Arduino.

Когато един бутон е свързан, е време да добавите останалите. Всеки бутон се нуждае от собствен цифров щифт; избрахме 2, 3, 4 и 5 за четирите бутона, които използваме, но всеки от цифровите щифтове ще работи. Сега, когато вашият Arduino е свързан, е време да започнете да работите върху кода.

Програмиране на множество бутони с Arduino

Кодът за проекта е приятен и прост, без нужда от библиотеки на класове или друго сложно програмиране.

Присвояване на бутони на щифтове

За първата стъпка трябва да присвоим нашите бутони към различните щифтове на нашата платка Arduino. Като се има предвид, че използвахме цифрови пинове 2, 3, 4 и 5, това са щифтовете, които ще декларираме с нашия код. Това трябва да бъде поставено в горната част на вашия проект Arduino, преди която и да е от функциите.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;

Настройка на бутоните

Както при повечето проекти на Arduino, ние ще използваме функция, която ще се изпълнява веднъж в началото на програмата, наречена void setup(). Първо, ще започнем нашата серийна връзка със скорост на предаване от 57600, последвано от инициализиране на нашите бутони. Това е всичко, от което се нуждаем в нашата void setup() функция.

void setup()
{
Serial.begin (57600); // това започва серийната връзка със скорост на предаване от 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // тези редове декларират всеки от бутоните като вход
}

Откриване на натискане на бутони

Този следващ етап е по-сложен от другите, тъй като ще създадем наша собствена функция, която ще се занимава с променлива от функцията на главния цикъл. За да започнем, трябва да декларираме нашата функция с целочислена променлива като кода по-долу.

void checkPush (int pinNumber)

След това трябва да присвоим променливата, която използваме, и да създадем ако изявление за откриване на натискане на всеки бутон. Тази функция може да проверява само бутон по време, като използва променливата, която получава от функцията на главния цикъл, така че да знае кой бутон е проверката. Нашите ако оператор проверява състоянието на бутона с помощта на вградения digitalRead функция.

void checkPush (int pinNumber) 
{
int buttonPushed = digitalRead (pinNumber);
if (buttonPushed == HIGH) {
// добавете тук код за натискане на бутон
}
друго {
// добавете код тук, когато бутонът не е натиснат
}
}

Кодът е добавен към ако операторът ще се изпълнява при натискане на бутон, докато кодът е в друго изявлението ще се изпълнява само когато бутон не е натиснат.

Изграждане на главния цикъл

И накрая, като последното парче код, което трябва да добавите към вашата програма, е време да изградите празен цикъл () функция. Трябват ни само четири реда код: по един за всеки от бутоните, които сме прикрепили към нашия Arduino. Тези редове извикват функцията, която създадохме в предишната стъпка, с номера на щифта на всеки бутон.

празен цикъл ()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2);
}

Готовият код

След като разполагате с целия този код, готовата ви програма трябва да изглежда като кода по-долу. Добавихме коментари към всеки ред, за да го улесним разбирането, но ви насърчаваме да потърсите и да прочетете за всичко, което не разпознавате. Това може да бъде чудесен начин да разширите знанията си за кодиране.

int input4Pin = 5;
int input3Pin = 4;
int input2Pin = 3;
int input1Pin = 2;
// това декларира всеки от нашите бутони и техните щифтове
// уверете се, че използвате щифтовете, към които са свързани бутоните ви
void setup()
{
Serial.begin (57600); // това започва серийната връзка със скорост на предаване от 57600
pinMode (input4Pin, INPUT);
pinMode (input3Pin, INPUT);
pinMode (input2Pin, INPUT);
pinMode (input1Pin, INPUT); // тези редове декларират всеки от бутоните като вход
}
празен цикъл ()
{
checkPush (5);
checkPush (4);
checkPush (3);
checkPush (2); // всеки от тези редове извиква нашата функция checkPush с различен пин номер
}
void checkPush (int pinNumber) // тази функция очаква целочислена стойност, когато се извика
{
int buttonPushed = digitalRead (pinNumber); // това чете състоянието на бутон въз основа на неговия номер на щифт
if (buttonPushed == HIGH) { // това проверява състоянието на бутона
// добавете тук код за натискане на бутон
}
друго {
// добавете код тук, когато бутонът не е натиснат
}
}

Успех: Окабеляване и програмиране на множество бутони с Arduino

Това е лесен проект, с който да започнете, когато искате да научите за хардуера и софтуера за Arduinos. Можете лесно да разширите това, което сте направили с допълнителни компоненти, давайки ви възможност да изследвате изобилие от вълнуващи идеи и да създавате неща, които ви карат да се чувствате горди.

Програмиране на Arduino за начинаещи: Инструкция за контролер на светофара

Прочетете Следващото

ДялтуитДялелектронна поща

Свързани теми

  • Направи си сам
  • Програмиране
  • Arduino
  • електроника
  • Програмиране
  • Уроци за проекти „Направи си сам“.

За автора

Самюел Л. Гарбет (36 публикувани статии)

Самуел е базиран в Обединеното кралство технологичен писател със страст към всичко „Направи си сам“. След като стартира бизнес в областта на уеб разработката и 3D печата, заедно с работата си като писател в продължение на много години, Самуел предлага уникален поглед към света на технологиите. Фокусирайки се главно върху технологични проекти „Направи си сам“, той не обича нищо повече от споделянето на забавни и вълнуващи идеи, които можете да опитате у дома. Извън работа Самуел обикновено може да бъде намерен да кара колоездене, да играе компютърни видеоигри или отчаяно да се опитва да общува със своя домашен рак.

Още от Samuel L. Гарбет

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате