Подключение светодиода и кнопки к arduino. Подключение передней панели к материнской плате компьютера. Подключение к Ардуино кнопки и светодиода

Подключение датчика кнопки к ардуино требует определенных знаний и навыков. В этой статье мы поговорим о том, что такое тактовая кнопка, что такое дребезг кнопки, как правильно подключать кнопку с подтягивающим и стягивающим резистором, как можно управлять с помощью кнопки светодиодами и другими устройствами.

Кнопка (или кнопочный переключатель) – самый простой и доступный из всех видов датчиков. Нажав на нее, вы подаете контроллеру сигнал, который затем приводит к каким-то действиям: включаются светодиоды, издаются звуки, запускаются моторы. В своей жизни мы часто встречаемся с разными выключателями и хорошо знакомы с этим устройством.

Тактовые кнопки и кнопки-переключатели

Как обычно, начинаем раздел с простых вещей, интересных только начинающим. Если вы владеете азами и хотите узнать о различных вариантах подключения кнопки к ардуино – можете пропустить этот параграф.

Что такое кнопка? По сути, это достаточно простое устройство, замыкающее и размыкающее электрическую сеть. Выполнять это замыкание/размыкание можно в разных режимах, при этому фиксировать или не фиксировать свое положение. Соответственно, все кнопки можно поделить на две большие группы:

  • Кнопки переключатели с фиксацией. Они возвращаются в исходное состояние после того, как их отпустили. При в зависимости от начального состояния разделяют на нормально-замкнутые и нормально-разомкнутые кнопки.
  • Кнопки без фиксации (тактовые кнопки). Они фиксируются и остаются в том положении, в котором их оставили.

Вариантов различных кнопок великое множество, это действительно один из самых распространенных видов электронных компонентов.






Кнопки ардуино для простых проектов

В наших проектах мы будем работать с очень простыми тактовыми кнопками с 4 ножками, которые идут практически в любом наборе ардуино. Кнопка представляет собой переключатель с двумя парами контактов. Контакты в одной паре соединены между собой, поэтому больше одного выключателя в схеме реализовать не удастся, но вы можете одновременно управлять двумя параллельными сегментами, это бывает полезно.

В зависимости от ситуации, вы можете создавать как схемы с нормально замкнутыми, так и с нормально разомкнутыми контактами – для этого нужно будет только соответствующим образом выполнить соединение в схеме.

Для удобства работы в комплекте с тактовой кнопкой обычно идет пластмассовый колпачок какого-то цвета, он достаточно очевидно надевается на кнопку и придает проекту менее хакерский вид.

Подключение кнопки Ардуино

Включение и выключение светодиода с помощью кнопки

Давайте начнем с самого простого способа подключения тактовой кнопки. Рассмотрим схему с Arduino в качестве источника питания, светодиода, ограничительного резистора номиналом 220 Ом и кнопки, которая будет замыкать и размыкать цепь.

При подключении кнопки с двумя парами ножек важно правильно выбрать размыкающие контакты. Посмотрите на изображение внимательно: пары ножек расположены по бокам кнопки. Сама кнопка квадратная, но расстояния между парами контактов визуально заметны: можно сразу выделить два на одной стороне и два а другой. Так вот, именно между одной «парой» на стороне и будет реализован выключатель. Для включения в схему мы соединяемся с одним и с другим контактом, между которыми минимальное расстояние. Вторая пара контактов просто дублирует первую.

Если у вас переключатель другого типа, то можете смело выбрать контакты с противоположных углов (на некоторых кнопка делается специальный знак в виде выемки, по которому можно определить, с какой стороны расположены спаренные контакты). Самый надежный способ определить правильные ножки – это прозвонить контакты тестером.

Сама схема с кнопкой, светодиодом и контроллером Arduino не нуждается в особых пояснениях. Кнопка разрывает цепь, светодиод не горит. При нажатии цепь замыкается, светодиод включается. Если вы перепутаете контакты (включите через замкнутые спаренные контакты кнопки), то кнопка работать не будет, потому что цепь никогда не разомкнется. Просто поменяйте контакты местами.

Подключение кнопки с подтягивающим резистором

Давайте теперь подключим кнопку к ардуино так, чтобы можно было считывать в скетче ее состояние. Для этого воспользуемся следующей схемой.

В скетче мы будем отслеживать факт нажатия и выводить сообщение в монитор порта. Более интересный пример и подробное объяснение самой схемы мы приведем чуть позже.

Следует обратить внимание на сопротивление 10 К, которое мы добавили в этой схеме. Более подробно о его предназначении мы поговорим позже, просто имейте в виду, что такой резистор необходим для правильной работы схемы.

Скетч для кнопки ардуино с подтягивающим резистором:

/* Пример использования тактовой кнопки в ардуино. Кнопка подключена к пину 2. */ const int PIN_BUTTON = 2; void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { // Получаем состояние кнопки и выводим в мониторе порта int buttonState = digitalRead(PIN_BUTTON); Serial.println(buttonState); delay(50); }

Подключение кнопки в режиме INPUT_PULLUP

В указанной выше схеме мы использовали резистор, называемый подтягивающим, для формирования определенного уровня сигнала на цифровом порту. Но есть другой способ подключить кнопку без резистора, используя внутренне сопротивление платы ардуино. В блоке setup мы должны всего лишь определить тип пина, к которому подключим кнопку, как INPUT_PULLUP.

PinMode(PIN_BUTTON, INPUT_PULLUP);

Альтернативным вариантом будет выбрать режим пина как OUTPUT и установить на данный порт высокий уровень сигнала. Встроенный подтягивающий резистор подключиться автоматически.

PinMode(PIN_BUTTON, INPUT_PULLUP); digitalWrite(PIN_BUTTON, HIGH);

И все. Можно собрать вот такую сложную схему и работать с кнопкой в скетче.

Мигание светодиода после нажатия на кнопку

В предыдущем примере со светодиодами мы подключили кнопку к плате ардуино и поняли, как она работает. Светодиод включался и выключался, но делал это в совершенно пассивном режиме – сам контроллер здесь был абсолютно лишним, его можно было бы заменить батарейками. Поэтому давайте сделаем наш новый проект более «интеллектуальным»: при нажатии на кнопку заставим светодиод непрерывно мигать. Обычной схемой с лампочкой и выключателем этого уже не сделаешь – мы будем использовать мощь нашего микроконтроллера для решения этой пусть и простой, но не тривиальной задачи.

Полная схема проекта изображена на рисунке:

Фрагмент схемы со светодиодом уже хорошо нам знаком. Мы собрали обычный маячок со светодиодом и ограничительным резистором. А вот во второй части мы видим знакомую нам кнопку и еще один резистор. Пока не будем вдаваться в подробности, просто соберем схему и закачаем в ардуино простой скетч. Все элементы схемы идут в самых простых стартовых наборах ардуино.

/* Скетч для схемы с использованием тактовой кнопки и светодиода Светодиод мигает, пока нажата кнопка. Кнопка подтянута к земле, нажатию соответствует HIGH на входе */ const int PIN_BUTTON = 2; const int PIN_LED = 13; void setup() { Serial.begin(9600); pinMode(PIN_LED, OUTPUT); } void loop() { // Получаем состояние кнопки int buttonState = digitalRead(PIN_BUTTON); Serial.println(buttonState); // Если кнопка не нажата, то ничего не делаем if (!buttonState) { delay(50); return; } // Этот блок кода будет выполняться, если кнопка нажата // Мигаем светодиодом digitalWrite(PIN_LED, HIGH); delay(1000); digitalWrite(PIN_LED, LOW); delay(1000); }

Нажимаем и держим – светодиод мигает. Отпускаем – он гаснет. Именно то, что хотели. Хлопаем от радости в ладоши и приступаем к анализу того, что сделали.

Давайте посмотрим на скетч. В нем мы видим довольно простую логику.

  1. Определяем, нажата ли кнопка.
  2. Если кнопка не нажата, то просто выходим из метода loop, ничего не включая и не меняя.
  3. Если кнопка нажата, то выполняем мигание, используя фрагмент стандартного скетча:
    1. Включаем светодиод, подавая напряжение на нужный порт
    2. Делаем нужную паузу при включенном светодиоде
    3. Выключаем светодиод
    4. Делаем нужную паузу при выключенном светодиоде

Логика поведения кнопки в скетче может зависеть от способа подключения с подтягивающим резистором. Об этом мы поговорим в следующей статье.

Дребезг кнопки ардуино

В процессе работы с кнопками мы можем столкнуться с очень неприятным явлением, называемым дребезгом кнопки. Как следует из самого названия, явление это обуславливается дребезгом контактов внутри кнопочного переключателя. Металлические пластины соприкасаются друг с другом не мгновенно (хоть и очень быстро для наших глаз), поэтому на короткое время в зоне контакта возникают скачки и провалы напряжения. Если мы не предусмотрим появление таких “мусорных” сигналов, то будем реагировать на них каждый раз и можем привести наш проект к хаусу.

Для устранения дребезга используют программные и аппаратные решения. В двух словах лишь упомянем основные методы подавления дребезга:

  • Добавляем в скетче паузу 10-50 миллисекунд между полкучением значений с пина ардуино.
  • Если мы используем прерывания, то программный метд использоваться не может и мы формируем аппаратную защиту. Простейшая из них – RC фильтр с конденсатором и сопротивлением.
  • Для более точного подавления дребезга используется аппаратный фильтр с использованием триггера шмидта. Этот вариант позволит получить на входе в ардуино сигнал практически идеальной формы.

Более подробную информацию о способах борьбы с дребезгом вы можете найти в этой .

Переключение режимов с помощью кнопки

Для того, чтобы определить, была ли нажата кнопка, надо просто зафиксировать факт ее нажатия и сохранить признак в специальной переменной.

Факт нажатия мы определяем с помощью функции digitalRead(). В результате мы получим HIGH (1, TRUE) или LOW(0, FALSE), в зависимости от того, как подключили кнопку. Если мы подключаем кнопку с помощью внутреннего подтягивающего резистора, то нажатие кнопки приведет к появлению на входе уровня 0 (FALSE).

Для хранения информации о нажатии на кнопку можно использовать переменную типа boolean:

boolean keyPressed = digitalRead(PIN_BUTTON)==LOW;

Почему мы используем такую конструкцию, а не сделали так:

boolean keyPressed = digitalRead(PIN_BUTTON);

Все дело в том, что digitalRead() может вернуть HIGH, но оно не будет означать нажатие кнопки. В случае использования схемы с подтягивающим резистором HIGH будет означать, что кнопка, наоборот, не нажата. В первом варианте (digitalRead(PIN_BUTTON)==LOW) мы сразу сравнили вход с нужным нам значением и определили, что кнопка нажата, хотя и на входе сейчас низкий уровень сигнала. И сохранили в переменную статус кнопки. Старайтесь явно указывать все выполняемые вами логические операции, чтобы делать свой код более прозрачным и избежать лишних глупых ошибок.

Как переключать режимы работы после нажатия кнопки?

Часто возникает ситуация, когда мы с помощью кнопок должны учитывать факт не только нажатия, но и отпускания кнопки. Например, нажав и отпустив кнопку, мы можем включить свет или переключить режим работы схемы. Другими словами, нам нужно как-то зафиксировать в коде факт нажатия на кнопку и использовать информацию в дальнейшем, даже если кнопка уже не нажата. Давайте посмотрим, как это можно сделать.

Логика работы программы очень проста:

  • Запоминаем факт нажатия в служебной переменной.
  • Ожидаем, пока не пройдут явления, связанные с дребезгом.
  • Ожидаем факта отпускания кнопки.
  • Запоминаем факт отпускания и устанавливаем в отдельной переменной признак того, что кнопка была полноценно нажата.
  • Очищаем служебную переменную.

Как определить нажатие нескольких кнопок?

Нужно просто запомнить состояние каждой из кнопок в соответствующей переменной или в массиве ардуино. Здесь главное понимать, что каждая новая кнопка – это занятый пин. Поэтому если количество кнопок у вас будет большим, то возможно возникновение дефицита свободных контактов. Альтернативным вариантом является использование подключения кнопок на один аналоговый пин по схеме с резистивным делителем. Об этом мы поговорим в следующих статьях.

Доброго времени суток, дорогие читатели. Как Вы поняли из заголовка, речь пойдет про подключение передней панели и разъемов мат.платы к корпусу или наоборот.

Это статья, которая представляет собой небольшое дополнение к некогда написанному материалу о сборке компьютера под одноименным названием “Собираем компьютер своими руками” или “Что есть что в компьютере, часть 2″ .

Речь пойдет о небольшом упущенном, но немаловажном элементе, - подключении разъемов (всяких там кнопочек, лампочек и пр.) передней панели .

Поехали.

Подключение передней панели - инструкция по подключению

На передней панели системного блока обычно находятся кнопки питания и ручной перезагрузки компьютера. Их тоже нужно правильно подключить к . Кабели подключения обычно выполнены в виде пинов (что такое пины смотрите выше).

Они выглядят примерно так (кликабельно):

Power SW - кабелек кнопки включения; Power LED + - - кабели индикатора (лампочки) питания; HDD LED – кабель индикатора загрузки (та самая лампочка которая обычно мигает); RESET SW - кабель кнопки перезагрузки.

Правильное подключение передней панели подключение тоже важно, т.к без этого компьютер просто не включится.

На каждой материнской плате расположен так называемый блок контактов Front panel или сокращенно F-Panel . Обычно он находится в правом нижнем углу платы, но бывают и исключения. Вот так примерно он выглядит:

Подключение подключение передней панели и её пинов осуществляется вручную и для этого в сопроводительных документах к материнской плате обязательно есть подсказки.

Если документы есть, то подключить пины не сложно. Если нет, то на самой материнской плате вокруг или рядом с блоком F-Panel находятся подсказки. Если Вам повезло многократно, то в комплекте с мат.платой есть такой переходник:

В который Вы просто втыкаете, как показано выше, сами разъемы, а потом этот переходник в мат.плату и всё получается быстро и просто. Но везет так далеко не всем, да и наверняка Вы попали сюда потому, что пытаетесь подключить всё для уже бывшей (а не новой) материнсткой платы.

Что еще стоит знать

Кроме того, на передней панели системного блока иногда бывают интерфейсные разъемы USB (обычно их пара штук) и порты подключения наушников/колонок и микрофона. Выглядит это примерно так:

Кабели- пины, для подключении этих внешних USB -портов, внутри системного блока выглядят так:

Подключаются они к блокам пинов на материнской плате, которые называются F- USB1 и F-USB2 соответственно (выглядеть по цвету и расположению могут не совсем так, как на скриншоте ниже, но по форме и количеству\расположению штырьков все тоже самое):

Примерно аналогично выглядят порты подключения внешних звуковых входов, - отличается разве что положение\количество штырьков, так что подключение передней панели в этом плане не совсем сложная задачи.

Подключить их просто (в другие блоки пинов они просто не влезут). Но и для них в сопроводительных документах к мат плате тоже есть подсказки:

Собственно, всё и ничего сложного в этом нет.

Что делать, если не сохранилось документации к мат.плате

Либо возьмите лупу и внимательно изучите упомянутый выше разъем для подключения на материнской плате компьютера:

Обычно он хоть как-то, но символично подписан, раза так со второго или третьего можно угадать что там к чему и подключить всё корректно. Провода подключаются, как правило, надписью на себя:

Изредка второй ряд (дальний) смотрит надписями в другую сторону, но такое встречается достаточно редко. Так или иначе, как я писал выше, не с первого, так со второго раза - угадаете:)

Если же ничего не можете рассмотреть (мало ли зрение слабое или надписи плохо прописаны), то открываете сайт производителя мат.платы и там ищете раздел "Поддержка" (или типа того), где обычно можно скачать инструкцию от мат.платы, где всегда описано подключение.

Если найти на сайте производителя не удалось, то в интернете можно найти по запросу "название платы" + слово manual, при минимальном знании английского место для загрузки обязательно найдете, а там уже дело открыть, посмотреть и подключить.

Послесловие

Если есть какие-то вопросы или дополнения, - пишите в комментариях или с помощью . Буду рад помочь и просто выслушать Вас.

PS : Представленное на рисунках показано исключительно для примеров и ознакомления. Никакой рекламы.
PS2 : Статья написана человеком, обитающим в сети под ником (друга и помощника проекта). За что ему огромное спасибо .

В этом примеры мы рассмотрим подключение кнопки к контроллеру Arduino. При нажатие кнопки мы будем зажигать встроенный светодиод. Большинство плат Arduino имеют встроенный SMT светодиод, подключенный к выходу 13 (pin 13).

Необходимые компоненты

  • контроллер Arduino
  • тактовая кнопка
  • 10кОм резистор
  • контактная макетная плата
  • соединительные провода

Подключение

Подключаем выход питания (5V) и землю (Gnd), красным и черным проводом соответственно к макетной плате. Обычно на макетных платах для питания и земли используют крайние ряды контактов, как показано на рисунке. Третьим синим проводом мы соединяем цифровой пин 2 контроллера Arduino к контакту тактовой кнопки. К этому же контакту, либо к контакту, постоянно соединенному с ней в 4х штырковом исполнении, подключаем подтягивающий резистор 10 кОм, который в свою очередь соединяем с землей. Другой выход кнопки соединяем с питанием 5 В.

Когда тактовая кнопка не нажата, выход 2 подключен только к земле через подтягивающий резистор и на этом входе будет считываться LOW . А когда кнопка нажата появляется контакт между входом 2 и питанием 5В, и считываться будет .

Замечание: Чаще всего тактовые кнопки имеют по два контакта с каждой стороны так, как это показано на рисунке подключение. При этом по форме кнопка почти квадратная. ВАЖНО не перепутать при подключении какие контакты соединены, а какие замыкаются при нажатие. Лучше всего прозвонить кнопку если не уверены.

Можно также подключить кнопку наоборот — через подтягивающий резистор к питанию и через кнопку к земле. Тогда с входа будет считваться HIGH, а при нажатие кнопки LOW.

Если вход оставить неподключенным, то на входе будет считываться HIGH или LOW случайным образом. Именно поэтому мы используем подтягивающий резистор, чтобы задать определенное значение при ненажатой кнопке.

Схема

Код

/* Кнопка Включаем и выключаем светодиод нажатием кнопки. created 2005 by DojoDave modified 28 Oct 2010 by Tom Igoe This example code is in the public domain. */ // задаем константы const int buttonPin = 2; // номер входа, подключенный к кнопке const int ledPin = 13; // номер выхода светодиода // переменные int buttonState = 0; // переменная для хранения состояния кнопки void setup() { // инициализируем пин, подключенный к светодиоду, как выход pinMode(ledPin, OUTPUT); // инициализируем пин, подключенный к кнопке, как вход pinMode(buttonPin, INPUT); } void loop(){ // считываем значения с входа кнопки buttonState = digitalRead(buttonPin); // проверяем нажата ли кнопка // если нажата, то buttonState будет HIGH: if (buttonState == HIGH) { // включаем светодиод digitalWrite(ledPin, HIGH); } else { // выключаем светодиод digitalWrite(ledPin, LOW); } }


Смотрите также

Кнопка — всем известное механическое устройство, которое может замыкать и размыкать электрическую цепь по желанию человека. Есть множество видов кнопок, работающих по разным правилам. Например, тактовая кнопка (push button), используемая в этом уроке, замыкает цепь только пока палец давит на неё. Кнопка на размыкание, напротив, разрывает цепь при нажатии.

Есть кнопки с группой контактов, одни из которых рвут цепь при нажатии, а другие в это время замыкают. Маленькие версии таких кнопок часто называют микропереключателями.

Тактовые кнопки, можно найти практически в каждом электронном приборе: в клавиатуре компьютера, в телефоне, в пульте от телевизора, и т.д.

Есть кнопки с фиксацией, работающие как кнопка на шариковой ручке: один раз нажали — цепь замкнулась, второй раз — разорвалась. На фото ниже как раз одна из таких. Кнопки с фиксацией удобно использовать для переключения режима работы устройства. Например, можно переключать источник питания: батарея, или блок питания.

Или другой вариант — большие кнопки для экстренной остановки оборудования. Они окрашены в яркие цвета, чтобы привлекать внимание человека. По сути — обычные тактовые кнопки на размыкание, или кнопки с фиксацией.

Это лишь некоторые варианты. Кроме кнопок, в мире электричества есть и другие механизмы, например, тумблеры и рубильники. Все они призваны механически управлять течением тока в цепи.

Подключение кнопки

Итак, мы будем работать с самой простой тактовой кнопкой, которую попробуем подключить к Ардуино Уно . Обычно, при работе с беспаечными макетными платами используется кнопка с выводами под пайку. На фото в начале урока видно, что у такой кнопки есть четыре немного загнутых вывода. Есть кнопки и с двумя прямыми выводами, они тоже подходят для наших занятий.

На электрических схемах кнопка изображается так:

Если посмотреть внутрь четырехтактной кнопки, то можно увидеть вот такую схему:

Как правило, выводы тактовой кнопки размещаются на противоположных сторонах корпуса парами. То есть мы можем использовать либо пару контактов на одной стороне, либо пару на другой.

А вот так выглядит схема двухконтактной кнопки.

С этой кнопкой сложно запутаться: два контакта, которые соединяются при нажатии кнопки.

На макетной плате оба типа тактовых кнопок обычно ставятся следующим образом:

Теперь попробуем собрать на беспаечной макетной плате самую простую цепь, которая продемонстрирует работу кнопки. Будем зажигать светодиод.

Полученная схема выполняет нехитрую функцию: нажимаем на кнопку — светодиод зажигается, отпускаем — гаснет.

Подключение к Ардуино Уно

Теперь, когда функция тактовой кнопки предельно ясна, соберем схему с кнопкой и светодиодом, и подключим их к контроллеру. Поставим перед собой простую задачу: пусть при однократном нажатии кнопки Ардуино Уно мигнет три раза светодиодом.

Принципиальная схема


Внешний вид макета


На этой схеме мы видим уже привычную цепь для . Также видим кнопку, соединенную с выводом Ардуино №3. Здесь может вполне резонно возникнуть вопрос: зачем мы соединили кнопку ещё и с землей, через резистор 10кОм? Чтобы разобраться с этим вопросом, представим что мы подключили кнопку по «наивной» схеме без всяких дополнительных резисторов.

Здесь между выводом №3 и землей изображен небольшой конденсатор, который способен накапливать заряд. Такая особенность есть у многих микроконтроллеров.

Теперь представим, что мы замыкаем кнопку. Ток начинает бежать от +5В, прямиком в контакт №3, попутно заряжая ёмкость. Ардуино успешно регистрирует нажатие кнопки. Но после того, как мы убираем палец с тактовой кнопки, вопреки нашим ожиданиями, микроконтроллер продолжает считать что кнопка нажата! Еще бы, ведь заряженный конденсатор постепенно отдает накопленный заряд в ногу №3. Это будет продолжаться до тех пор, пока ёмкость не разрядится ниже уровня логической единицы.

Подключение модуля тактовых кнопок ROC к Ардуино

Специально для ваших проектов мы в RobotClass сделали модуль из двух тактовых кнопок. На модуле уже есть необходимые резисторы и даже два светодиода для индикации нажатия кнопок.


Разберемся с подключением этого модуля к Ардуино Уно.

Принципиальная схема


Внешний вид макета


Как можно было заметить, независимо от того, какие всё-таки кнопки мы будем использовать — схема подключения не сильно меняется. Не будет менять и программа для работы с ними.

Программа для работы с кнопкой на Ардуино

Наконец, мы разобрались с нюансами нашей схемы, и готовы к написанию программы. В уроке по мы познакомились с функциями настройки выводов pinMode и функцией вывода в цифровой порт digitalWrite . На этот раз нам понадобится ещё одна важная функция, которая обеспечивает ввод информации в микроконтроллер:

DigitalRead(номер_контакта);

Эта функция возвращает логическое значение, которое Ардуино считала с заданного контакта. Это означает, что если на контакт подать напряжение +5В, то функция вернет истину* . Если контакт соединить с землей, то получим значение ложь . В языке C++, истина и ложь эквивалентны числам 1 и 0 соответственно.

Для того, чтобы интересующий нас контакт заработал в режиме ввода информации, нам нужно будет установить его в определенный режим:

PinMode(номер_контакта, INPUT);

Наконец, соберем всё вместе, и напишем программу.

Const int led = 2;
const int button = 3;
int val = 0;

void setup(){
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}

void loop(){
val = digitalRead(button);
if(val == HIGH){
// цикл от 0 до 2, с шагом 1
for(int i=0; i<3; i++){
digitalWrite(led, HIGH);
delay(500);
digitalWrite(led, LOW);
delay(500);
}
}
}

Загружаем программу на Ардуино Уно, и проверяем работу программы. Если всё сделано правильно, должно получиться как на картинке:

Ну вот и всё. Теперь мы можем управлять нашими устройствами при помощи кнопок. Если вы уже прошли урок по , то мы вполне сможем сделать часы с будильником!

Программа для кнопки-триггера

Еще один пример, заслуживающий внимания — кнопка-триггер. Работает она так: один раз нажали кнопку — светодиод загорелся, второй раз нажали — потух.

Чтобы реализовать такое поведение кнопки, нам потребуется дополнительная переменная, которую часто называют «переменной состояния» или «флагом».

Const int led = 2;
const int button = 3;
int val = 0;
byte state = 0; // переменная состояния
void setup(){
pinMode(led, OUTPUT);
pinMode(button, INPUT);
}
void loop(){
// записываем в переменную val состояние кнопки
val = digitalRead(button);
// если состояние кнопки - истина, выполняем действие
if(val == HIGH){
// меняем состояние на противоположное
state = !state;
if(state == HIGH){
// если текущее состояние - истина, зажигаем светодиод
digitalWrite(led, HIGH);
} else {
// если текущее состояние - ложь, гасим светодиод
digitalWrite(led, LOW);
}
delay(300);
}
}

Загружаем программу на Ардуино и проверяем работу схемы. Быстро нажмем кнопку — светодиод зажжется. Снова нажмем — погаснет. А вот если нажать кнопку и не отпускать, то светодиод начнет мигать с периодом 600мс! Почему так? Попробуйте разобраться.

Задания

В качестве тренировки попробуем решить несколько простых задачек с кнопкой и светодиодом.

  • В схеме присутствует две кнопки и один светодиод. Пусть при нажатии на первую кнопку светодиод зажигается, а при нажатии на вторую — гаснет.
  • Пианино. В схеме присутствует семь кнопок кнопка и один динамик. При нажатии на каждую из семи кнопок динамик должен воспроизводить соответствующую ноту. Потребуется изучить .
  • Игра «Ковбои». В схеме присутствуют две кнопки, один зуммер и два светодиода. После запуска программы зуммер должен издать короткий звук. Сразу после этого, каждый из игроков должен как можно быстрее нажать свою кнопку. У того игрока, который сделает это первым, загорится светодиод. Потребуется изучить урок про прерывания.

Сборка компьютера – это не только подключение крупных компонентов системного блока, таких как жесткий диск, видеокарта, процессор или блок питания. Во время сборки необходимо соединить с «внутренностями» компьютера и сам корпус. На корпус выведено несколько важных элементов. Как минимум, это кнопки питания и перезагрузки, а также, индикатор работы жесткого диска. Если речь идет о более продвинутых корпусах, то на переднюю панель могут быть выведены некоторые разъемы, в частности, USB и входы для наушников или микрофона. В рамках данной статьи мы расскажем, как подключить переднюю панель компьютера, чтобы все элементы на ней работали грамотно.

В начале следует отметить, что от корпуса компьютера должно отходить несколько проводов. В простонародье из называют «пинами» от английского слова Pin, что означает «Штифт» или «Булавка». Провода корпуса компьютера миниатюрны, и они являются разъемами, в которые вставляются штекеры, расположенные на материнской плате компьютера.

Перед тем как приступать непосредственно к подключению передней панели компьютера к материнской плате, необходимо определиться с тем, какой провод за выполнение какой задачи отвечает. Чтобы это сделать, достаточно посмотреть на надписи, нанесенные на разъемы. На них можно обнаружить следующие обозначения:


Выше перечислены стандартные названия. Разъем, отвечающий за USB, может быть подписан – USB 2.0 и USB 3.0. Если они подписаны оба как USB, то определить разъем от более быстрого протокола передачи данных легко – он имеет больше входов.

Передняя панель компьютера: подключение кнопок питания и индикации

В подключении передних кнопок и индикаций к материнской плате компьютера нет ничего сложного. Чтобы это сделать, необходимо:

Обратите внимание, что разъемы и штекеры, в большинстве случаев, защищены от неверного подключения. То есть, соединить их друг с другом неправильно просто не получится, не поломав при этом контакты.

Передняя панель компьютера: подключение разъемов USB и 3,5 мм

Подключая разъемы в передней панели компьютера, необходимо руководствоваться такими же правилами: поиск места для подключения в инструкции и последующее соединение штекера с разъемом. Обратите внимание, что далеко не всегда на материнской плате может найтись место для подключения переднего разъема USB 3.0. Если его включить некуда, придется оставить неподключенным.

Стоит отметить, что разъемы для подключения звуковых выходов могут входить в общий блок с передней индикацией и кнопками включения, а могут находиться отдельно на материнской плате. USB разъемы всегда находятся отдельно, и место их подключения на материнской плате подписано обозначениями F_USB, JUSB или USB 3.0. Первые два варианта характерны для разъема USB 2.0, который подключается посредством 10 контактов, тогда как разъем 3.0 требует 20 контактов.

Ошибиться в процессе подключения кнопок, разъемов и индикаций с передней панели довольно сложно. Главное при выполнении данных работ – аккуратность, поскольку шкетеры для передних разъемов на материнской плате очень тонкие, и лишнее усилие может вывести их из строя.