Arduino:Примеры/DigitalReadSerial: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Arduino панель перехода}} | {{Arduino панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
== Считывание последовательной передачи данных через цифровой контакт <ref>[http://www.arduino.cc/en/Tutorial/DigitalReadSerial Arduino - DigitalReadSerial]</ref>== | == Считывание последовательной передачи данных через цифровой контакт <ref>[http://www.arduino.cc/en/Tutorial/DigitalReadSerial Arduino - DigitalReadSerial]</ref>== | ||
Данный пример показывает, как отслеживать состояние переключателя путем установления последовательной передачи данных между платой | Данный пример показывает, как отслеживать состояние переключателя путем установления последовательной передачи данных между платой [[Arduino]] и вашим [[компьютер]]ом через [[USB]]. | ||
== Необходимое оборудование == | == Необходимое оборудование == | ||
Строка 18: | Строка 20: | ||
[[File:DigitalReadSerial_circuit.png]] | [[File:DigitalReadSerial_circuit.png]] | ||
Подключите к | Подключите к [[Arduino]] три провода. Первые два (красный и черный) подключите к двум вертикальным рядам на правой стороне [[Breadboard]] – для доступа к контактам с '''5-вольтным''' напряжением и '''«землей»'''. Третий провод пойдет от '''2-го цифрового контакта''' к одной из ног кнопки. Ту же ногу кнопки подключите к '''«земле»''', но через стягивающий резистор (в данном примере – на '''10 кОм'''). Другую ногу кнопки подсоедините к контакту с '''5-вольтовым напряжением'''. | ||
Если нажать на кнопку (или щелкнуть тумблер), то она соединит две точки цепи (контакт с '''5-вольтовым''' напряжением и '''2-ой цифровой контакт'''). Однако, если на нее не нажимать, связи между двумя ногами кнопки не будет, поэтому контакт останется подсоединенным к '''«земле»''' (через стягивающий резистор) и будет считываться как [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] или '''«0»'''. Но если на кнопку все же нажать, то связь между ногами появится, соединяя цифровой контакт с 5-вольтовым напряжением, что будет считываться как [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]] или '''«1»'''. | Если нажать на кнопку (или щелкнуть тумблер), то она соединит две точки цепи (контакт с '''5-вольтовым''' напряжением и '''2-ой цифровой контакт'''). Однако, если на нее не нажимать, связи между двумя ногами кнопки не будет, поэтому контакт останется подсоединенным к '''«земле»''' (через стягивающий резистор) и будет считываться как [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]] или '''«0»'''. Но если на кнопку все же нажать, то связь между ногами появится, соединяя цифровой контакт с 5-вольтовым напряжением, что будет считываться как [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]] или '''«1»'''. | ||
Если отсоединить цифровой контакт ото всего, то светодиод (если подключить его к цепи), скорее всего, начнет беспорядочно мигать. Это потому что цифровой вход будет находиться в '''«подвешенном» состоянии»''', т.е. не иметь жесткой связи ни с '''5-вольтовым напряжением''', ни с '''«землей»''', и потому вразнобой переключаться то в [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], то в [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]]. Именно поэтому в цепь и ставится стягивающий резистор. | Если отсоединить цифровой контакт ото всего, то [[светодиод]] (если подключить его к цепи), скорее всего, начнет беспорядочно мигать. Это потому что цифровой вход будет находиться в '''«подвешенном» состоянии»''', т.е. не иметь жесткой связи ни с '''5-вольтовым напряжением''', ни с '''«землей»''', и потому вразнобой переключаться то в [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]], то в [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]]. Именно поэтому в цепь и ставится стягивающий [[резистор]]. | ||
== Схема == | == Схема == | ||
[[File:DigitalReadSerial_schematic.png]] | [[File:DigitalReadSerial_schematic.png|center]] | ||
== Код == | == Код == | ||
Самая первая вещь, которую нужно сделать – это при помощи функции [[Arduino:Справочник языка Arduino/setup()|setup()]] начать последовательную передачу данных (со скоростью '''9600 бит в секунду''') между | Самая первая вещь, которую нужно сделать – это при помощи функции [[Arduino:Справочник языка Arduino/setup()|setup()]] начать последовательную передачу данных (со скоростью '''9600 бит в секунду''') между [[Arduino]] и вашим [[компьютер]]ом. Делается это при помощи строчки: | ||
<syntaxhighlight lang="c" enclose="div"> | <syntaxhighlight lang="c" enclose="div"> | ||
Строка 42: | Строка 44: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь, когда начальные параметры заданы, перемещаемся к главному циклу. Если кнопка будет нажата, '''5 Вольт''' будут свободно проходить через вашу цепь, а если нет, входной контакт через стягивающий резистор соединится с '''«землей»'''. Это цифровой контакт, поэтому кнопка может быть лишь в одном из двух состояний – любо во включенном ( | Теперь, когда начальные параметры заданы, перемещаемся к главному циклу. Если кнопка будет нажата, '''5 Вольт''' будут свободно проходить через вашу цепь, а если нет, входной контакт через стягивающий резистор соединится с '''«землей»'''. Это цифровой контакт, поэтому кнопка может быть лишь в одном из двух состояний – любо во включенном ([[Arduino]] будет считывать его как '''«1»''' или [[Arduino:Справочник языка Arduino/Константы/HIGH|HIGH]]), либо в выключенном ([[Arduino]] будет считывать его как '''«0»''' или [[Arduino:Справочник языка Arduino/Константы/LOW|LOW]]), и никак иначе. | ||
Самая первая вещь, которую нужно сделать в секции главного цикла – это задать переменную для регистрации информации, идущей от кнопки. А поскольку информация, идущая от кнопки, будет лишь или '''«1»''', или '''«0»''', вы можете использовать тип данных [[Arduino:Справочник языка Arduino/Типы данных/int|int]]. Назовем эту переменную '''sensorValue''' и присвоим ей значение, считанное со '''2-го цифрового контакта'''. Сделаем это при помощи этой строчки кода: | Самая первая вещь, которую нужно сделать в секции главного цикла – это задать переменную для регистрации информации, идущей от кнопки. А поскольку информация, идущая от кнопки, будет лишь или '''«1»''', или '''«0»''', вы можете использовать тип данных [[Arduino:Справочник языка Arduino/Типы данных/int|int]]. Назовем эту переменную '''sensorValue''' и присвоим ей значение, считанное со '''2-го цифрового контакта'''. Сделаем это при помощи этой строчки кода: | ||
Строка 55: | Строка 57: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Теперь, открыв меню '''«Мониторинг последовательной передачи данных» (Serial Monitor)''' в среде разработки | Теперь, открыв меню '''«Мониторинг последовательной передачи данных» (Serial Monitor)''' в среде разработки [[Arduino]], вы увидите информационный поток из '''«0»''' (если кнопка не была нажатой) и '''«1»''' (если на кнопку нажимали). | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div"> | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div"> |
Версия от 10:39, 22 июня 2019
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Считывание последовательной передачи данных через цифровой контакт [1]
Данный пример показывает, как отслеживать состояние переключателя путем установления последовательной передачи данных между платой Arduino и вашим компьютером через USB.
Необходимое оборудование
- Плата Arduino;
- Переключатель мгновенного действия, кнопка или тумблер;
- Резистор номиналом 10 кОм;
- Макетная плата Breadboard;
- Соединительные провода;
Цепь
Подключите к Arduino три провода. Первые два (красный и черный) подключите к двум вертикальным рядам на правой стороне Breadboard – для доступа к контактам с 5-вольтным напряжением и «землей». Третий провод пойдет от 2-го цифрового контакта к одной из ног кнопки. Ту же ногу кнопки подключите к «земле», но через стягивающий резистор (в данном примере – на 10 кОм). Другую ногу кнопки подсоедините к контакту с 5-вольтовым напряжением.
Если нажать на кнопку (или щелкнуть тумблер), то она соединит две точки цепи (контакт с 5-вольтовым напряжением и 2-ой цифровой контакт). Однако, если на нее не нажимать, связи между двумя ногами кнопки не будет, поэтому контакт останется подсоединенным к «земле» (через стягивающий резистор) и будет считываться как LOW или «0». Но если на кнопку все же нажать, то связь между ногами появится, соединяя цифровой контакт с 5-вольтовым напряжением, что будет считываться как HIGH или «1».
Если отсоединить цифровой контакт ото всего, то светодиод (если подключить его к цепи), скорее всего, начнет беспорядочно мигать. Это потому что цифровой вход будет находиться в «подвешенном» состоянии», т.е. не иметь жесткой связи ни с 5-вольтовым напряжением, ни с «землей», и потому вразнобой переключаться то в LOW, то в HIGH. Именно поэтому в цепь и ставится стягивающий резистор.
Схема
Код
Самая первая вещь, которую нужно сделать – это при помощи функции setup() начать последовательную передачу данных (со скоростью 9600 бит в секунду) между Arduino и вашим компьютером. Делается это при помощи строчки:
Serial.begin(9600);
Далее нужно инициализировать 2-ой цифровой контакт (который будет считывать выходные данные от кнопки) как вход:
pinMode(2,INPUT);
Теперь, когда начальные параметры заданы, перемещаемся к главному циклу. Если кнопка будет нажата, 5 Вольт будут свободно проходить через вашу цепь, а если нет, входной контакт через стягивающий резистор соединится с «землей». Это цифровой контакт, поэтому кнопка может быть лишь в одном из двух состояний – любо во включенном (Arduino будет считывать его как «1» или HIGH), либо в выключенном (Arduino будет считывать его как «0» или LOW), и никак иначе. Самая первая вещь, которую нужно сделать в секции главного цикла – это задать переменную для регистрации информации, идущей от кнопки. А поскольку информация, идущая от кнопки, будет лишь или «1», или «0», вы можете использовать тип данных int. Назовем эту переменную sensorValue и присвоим ей значение, считанное со 2-го цифрового контакта. Сделаем это при помощи этой строчки кода:
int sensorValue = digitalRead(2);
Теперь настроим запись этой информации на компьютер в десятичном значении. Это можно сделать с помощью команды Serial.printIn() в последней строчке кода:
Serial.println(sensorValue);
Теперь, открыв меню «Мониторинг последовательной передачи данных» (Serial Monitor) в среде разработки Arduino, вы увидите информационный поток из «0» (если кнопка не была нажатой) и «1» (если на кнопку нажимали).
/*
Считывание последовательной передачи данных через цифровой контакт.
Считывает данные на 2-ом цифровом входном контакте, передает эти данные на Serial Monitor.
Данный пример кода не защищен авторским правом.
*/
// ко 2-му цифровому контакту подсоединена кнопка, дадим ей имя:
int pushButton = 2;
// эта функция запускается один раз – при рестарте:
void setup() {
// инициализируем последовательную передачу данных со скоростью 9600 бит в секунду:
Serial.begin(9600);
// делаем контакт, к которому подсоединена кнопка, входным:
pinMode(pushButton, INPUT);
}
// этот цикл, запустившись, будет повторятся снова и снова:
void loop() {
// считываем данные с входного контакта:
int buttonState = digitalRead(pushButton);
// регистрируем состояние кнопки:
Serial.println(buttonState);
delay(1); // задержка между считываниям – для стабильности программы
}
См.также
- setup()
- loop()
- pinMode()
- digitalRead()
- delay()
- int
- Serial
- DigitalPins
- BareMinimum
- Blink
- DigitalReadSerial
- AnalogReadSerial
- Fade
- ReadAnalogVoltage
Внешние ссылки
- Страницы с устаревшим атрибутом подсветки синтаксиса «enclose»
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino