Arduino:Примеры/Button: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
(не показано 12 промежуточных версий 1 участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
= Кнопка <ref>[http://www.arduino.cc/en/Tutorial/Button Arduino - Button]</ref>= | |||
Кнопки и переключатели, когда вы их используете, соединяют в электрической цепи две точки. В данном примере будет показано, как заставить светодиод (присоединенный | Кнопки и переключатели, когда вы их используете, соединяют в электрической цепи две точки. В данном примере будет показано, как заставить [[светодиод]] (присоединенный к 13-му контакту) загораться каждый раз при нажатии на кнопку. | ||
== Необходимое оборудование == | == Необходимое оборудование == | ||
* Плата | * [[Плата Arduino]] - 1 шт. | ||
* Кнопка или переключатель; | * [[Кнопка]] или переключатель - 1 шт.; | ||
* Резистор на | * [[Резистор]] на [[10 кОм]] - 1 шт.; | ||
* Макетная плата | * [[Макетная плата]] - 1 шт.; | ||
* Провода-перемычки; | * Провода-перемычки; | ||
== Цепь == | == Цепь == | ||
[[File:button_Circuit.png|center]] | [[File:button_Circuit.png|center|frame|'''Рис. 1.''' [[Плата Arduino]] с подключенной кнопкой.|alt=Рис. 1. Плата Arduino с подключенной кнопкой.]] | ||
Подсоедините к [[Arduino]] три провода. Первые два (красный и черный) подключите к двум вертикальным рядам на крайней стороне макетной платы [[Breadboard]], чтобы обеспечить доступ к контактам с | Подсоедините к [[Arduino]] три провода. Первые два (красный и черный) подключите к двум вертикальным рядам на крайней стороне макетной платы [[Breadboard]], чтобы обеспечить доступ к контактам с ''«землей»'' (GND) и 5-вольтным напряжением. Третий провод протяните от 2-го цифрового контакта к одной из ног кнопки. Ту же ногу через [[стягивающий резистор]] подключите к ''«земле»''. Вторую же ногу подсоедините к 5-вольтовому напряжению. | ||
Теперь, допустим, что на кнопку никто не нажимает – в этом случае связи между ногами кнопки не будет, поэтому | Теперь, допустим, что на кнопку никто не нажимает – в этом случае связи между ногами кнопки не будет, поэтому 2-ой цифровой контакт будет по-прежнему подсоединен к ''«земле»'', и [[Arduino]] сочтет эту ситуацию как [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]]. Теперь, допустим, на кнопку все же кто-то нажимает – это создает связь между обоими ногами, тем самым соединяя 2-ой цифровой и 5-вольтовый контакты, и [[Arduino]] сочтет эту ситуацию как [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]]. | ||
Цепь можно построить и по-другому, поставив туда не | Цепь можно построить и по-другому, поставив туда не стягивающий, а [[подтягивающий резистор]], который будет постоянно держать входной контакт в значении [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]], а [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] будет считываться только при нажатии на кнопку. В этом случае скетч нужно будет переписать таким образом, чтобы [[светодиод]] был по умолчанию в значении ''«вкл»'' и выключался лишь от нажатия на кнопку. | ||
Если отсоединить цифровой контакт ото всего, то светодиод примется хаотично мигать. Это значит, что выходное значение будет | Если отсоединить цифровой контакт ото всего, то [[светодиод]] примется хаотично мигать. Это значит, что выходное значение будет ''«плавающим»'', т.е. беспорядочно переключающимся из [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] в [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]] и наоборот. Именно поэтому в цепи и нужны стягивающие/[[подтягивающие резисторы]]. | ||
== Схема == | == Схема == | ||
[[File:button_Schematic.png|center]] | [[File:button_Schematic.png|center|frame|'''Рис. 2.''' Схема подключения кнопки к [[плате Arduino]]|alt=Рис. 2. Схема подключения кнопки к плате Arduino]] | ||
== Код == | == Код == | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Кнопка | Кнопка | ||
Строка 87: | Строка 87: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=См.также= | |||
# [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/pinMode()|pinMode()]] | # [[Arduino:Справочник языка Arduino/Функции/Цифровой ввод/вывод/pinMode()|pinMode()]] | ||
Строка 100: | Строка 100: | ||
# [[Arduino:Примеры/ButtonStateChange|Button State Change]] | # [[Arduino:Примеры/ButtonStateChange|Button State Change]] | ||
=Внешние ссылки= | |||
<references /> | <references /> | ||
{{Навигационная таблица/ | {{Навигационная таблица/Портал/Arduino}} | ||
[[Категория:Пример]] | [[Категория:Пример]] | ||
Строка 112: | Строка 110: | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] | ||
[[Категория:const]] | |||
[[Категория:int]] | |||
[[Категория:setup()]] | |||
[[Категория:setup]] | |||
[[Категория:void]] | |||
[[Категория:pinMode()]] | |||
[[Категория:pinMode]] | |||
[[Категория:OUTPUT]] | |||
[[Категория:INPUT]] | |||
[[Категория:digitalRead]] | |||
[[Категория:digitalRead()]] | |||
[[Категория:HIGH]] | |||
[[Категория:LOW]] | |||
[[Категория:pinMode(pin, OUTPUT)]] | |||
[[Категория:pinMode(pin, INPUT)]] | |||
[[Категория:if]] | |||
[[Категория:else]] | |||
[[Категория:digitalWrite]] | |||
[[Категория:digitalWrite()]] | |||
[[Категория:digitalWrite(pin, LOW)]] | |||
[[Категория:digitalWrite(pin, HIGH)]] | |||
[[Категория:Плата Arduino]] | |||
[[Категория:Кнопка]] | |||
[[Категория:Резистор]] | |||
[[Категория:10 кОм]] | |||
[[Категория:Макетная плата]] | |||
[[Категория:Провода-перемычки]] | |||
[[Категория:Резистор 10 кОм]] |
Текущая версия от 18:18, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Кнопка [1]
Кнопки и переключатели, когда вы их используете, соединяют в электрической цепи две точки. В данном примере будет показано, как заставить светодиод (присоединенный к 13-му контакту) загораться каждый раз при нажатии на кнопку.
Необходимое оборудование
- Плата Arduino - 1 шт.
- Кнопка или переключатель - 1 шт.;
- Резистор на 10 кОм - 1 шт.;
- Макетная плата - 1 шт.;
- Провода-перемычки;
Цепь
Подсоедините к Arduino три провода. Первые два (красный и черный) подключите к двум вертикальным рядам на крайней стороне макетной платы Breadboard, чтобы обеспечить доступ к контактам с «землей» (GND) и 5-вольтным напряжением. Третий провод протяните от 2-го цифрового контакта к одной из ног кнопки. Ту же ногу через стягивающий резистор подключите к «земле». Вторую же ногу подсоедините к 5-вольтовому напряжению.
Теперь, допустим, что на кнопку никто не нажимает – в этом случае связи между ногами кнопки не будет, поэтому 2-ой цифровой контакт будет по-прежнему подсоединен к «земле», и Arduino сочтет эту ситуацию как LOW. Теперь, допустим, на кнопку все же кто-то нажимает – это создает связь между обоими ногами, тем самым соединяя 2-ой цифровой и 5-вольтовый контакты, и Arduino сочтет эту ситуацию как HIGH.
Цепь можно построить и по-другому, поставив туда не стягивающий, а подтягивающий резистор, который будет постоянно держать входной контакт в значении HIGH, а LOW будет считываться только при нажатии на кнопку. В этом случае скетч нужно будет переписать таким образом, чтобы светодиод был по умолчанию в значении «вкл» и выключался лишь от нажатия на кнопку.
Если отсоединить цифровой контакт ото всего, то светодиод примется хаотично мигать. Это значит, что выходное значение будет «плавающим», т.е. беспорядочно переключающимся из LOW в HIGH и наоборот. Именно поэтому в цепи и нужны стягивающие/подтягивающие резисторы.
Схема
Код
/*
Кнопка
При нажатии на кнопку, подсоединенную ко 2-му контакту, включает и выключает светодиод, подключенный к 13-му цифровому контакту.
Цепь:
* Светодиод подсоединен к 13-му контакту и «земле»
* Кнопка подсоединена ко 2-му и 5-вольтовому контактам
* Ко 2-му контакту через «землю» подключен резистор на 10 кОм
* Примечание: на большинстве Arduino уже есть светодиод, подключенный к 13-му контакту.
создан в 2005 пользователем DojoDave <http://www.0j0.org>,
модифицирован 30 августа 2011 Томом Иго (Tom Igoe)
Данный пример кода не защищен авторским правом.
http://www.arduino.cc/en/Tutorial/Button
*/
// Тут вписываем константы – это постоянные (т.е. не меняющиеся) значения. Используем их, чтобы задать номера контактов:
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);
}
}
См.также
- pinMode()
- digitalWrite()
- digitalRead()
- if()
- if/else()
- BareMinimum
- DigitalReadSerial
- Blink
- Debounce
- Button State Change
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino
- Const
- Int
- Setup()
- Setup
- Void
- PinMode()
- PinMode
- OUTPUT
- INPUT
- DigitalRead
- DigitalRead()
- HIGH
- LOW
- PinMode(pin, OUTPUT)
- PinMode(pin, INPUT)
- If
- Else
- DigitalWrite
- DigitalWrite()
- DigitalWrite(pin, LOW)
- DigitalWrite(pin, HIGH)
- Плата Arduino
- Кнопка
- Резистор
- 10 кОм
- Макетная плата
- Провода-перемычки
- Резистор 10 кОм