Монк - Программируем Arduino. Профессиональная работа со скетчами.

Здесь есть возможность читать онлайн «Монк - Программируем Arduino. Профессиональная работа со скетчами.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: СПб., Год выпуска: 2017, ISBN: 2017, Издательство: Издательский дом Питер, Жанр: Программирование, Компьютерное железо, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Программируем Arduino. Профессиональная работа со скетчами.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Программируем Arduino. Профессиональная работа со скетчами.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Arduino — стандартный микроконтроллер, получивший широкое признание у инженеров, мастеров и преподавателей благодаря своей простоте, невысокой стоимости и большому разнообразию плат расширения. Платы расширения, подключаемые к основной плате Arduino, позволяют выходить в Интернет, управлять роботами и домашней автоматикой.
Простые проекты на основе Arduino не вызывают сложностей в реализации. Но, вступив на территорию, не охваченную вводными руководствами, и увеличивая сложность проектов, вы быстро столкнетесь с проблемой нехватки знаний — врагом всех программистов.
Эта книга задумана как продолжение бестселлера «Programming Arduino: Getting Started with Sketches». Несмотря на то что эта книга включает краткое повторение основ из книги «Programming Arduino», она познакомит читателя с более продвинутыми аспектами программирования плат Arduino.

Программируем Arduino. Профессиональная работа со скетчами. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Программируем Arduino. Профессиональная работа со скетчами.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

На рис. 3.1 изображена собранная схема. Через сопротивление на контакт D2 подается напряжение HIGH, пока кнопка не будет нажата, в этот момент произойдет заземление контакта D2 и уровень напряжения на нем упадет до LOW.

Загрузите в плату Arduino следующий скетч:

// sketch 03_01_interrupts

int ledPin = 13;

void setup()

{

pinMode(ledPin, OUTPUT);

attachInterrupt(0, stuffHapenned, FALLING);

}

void loop()

{

}

void stuffHapenned()

{

digitalWrite(ledPin, HIGH);

}

Рис 31Электрическая схема для испытания прерываний Помимо настройки контакта - фото 26

Рис. 3.1.Электрическая схема для испытания прерываний

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

attachInterrupt(0, stuffHapenned, FALLING);

Первый аргумент — 0 — это номер прерывания. Было бы понятнее, если бы номер прерывания совпадал с номером контакта, но это не так. В Arduino Uno прерывание 0 связано с контактом D2, а прерывание 1 — с контактом D3. Ситуация становится еще более запутанной из-за того, что в других моделях Arduino эти прерывания связаны с другими контактами, а кроме того, в Arduino Due нужно указывать номер контакта. На плате Arduino Due с прерываниями связаны все контакты.

Я еще вернусь к этой проблеме, а пока перейдем ко второму аргументу. Этот аргумент — stuffHappened — представляет имя функции, которая должна вызываться для обработки прерывания. Данная функция определена далее в скетче. К таким функциям, их называют подпрограммами обработки прерываний (Interrupt Service Routine, ISR), предъявляются особые требования. Они не могут иметь параметров и ничего не должны возвращать. В этом есть определенный смысл: даже при том что они вызываются в разных местах в скетче, нет ни одной строки кода, осуществляющей прямой вызов ISR, поэтому нет никакой возможности передать им параметры или получить возвращаемое значение.

Последний параметр функции, attachInterrupt — это константа, в данном случае FALLING. Она означает, что подпрограмма обработки прерывания будет вызываться только при изменении напряжения на контакте D2 с уровня HIGH до уровня LOW (то есть при падении — falling), что происходит в момент нажатия кнопки.

Обратите внимание на отсутствие какого-либо кода в функции loop. В общем случае эта функция может содержать код, выполняющийся, пока не произошло прерывание. Сама подпрограмма обработки прерываний просто включает светодиод L.

Когда вы будете экспериментировать, после сброса Arduino светодиод L должен погаснуть. А после нажатия на кнопку — сразу зажечься и оставаться зажженным до следующего сброса.

Поэкспериментировав, попробуйте изменить последний аргумент в вызове attachInterrupt на RISING и выгрузите измененный скетч. После перезапуска Arduino светодиод должен оставаться погашенным, потому что напряжение на контакте хотя и имеет уровень HIGH, но с момента перезапуска оставалось на этом уровне. До этого момента напряжение на контакте не падало до уровня LOW, чтобы потом подняться (rising) до уровня HIGH.

После нажатия и удержания кнопки в нажатом состоянии светодиод должен оставаться погашенным, пока вы ее не отпустите. Отпускание кнопки вызовет прерывание, связанное с контактом D2, потому что, пока кнопка удерживалась нажатой, уровень напряжения на контакте был равен LOW, а после отпускания поднялся до HIGH.

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

Другой способ опробовать этот вариант скетча — нажать кнопку и, удерживая ее, нажать и отпустить кнопку сброса Reset на плате Arduino. Затем, когда скетч запустится, отпустить кнопку на макетной плате, и светодиод L загорится.

Контакты с поддержкой прерываний

Вернемся теперь к проблеме именования прерываний. В табл. 3.1 перечислены наиболее распространенные модели плат Arduino и приведено соответствие номеров прерываний и контактов в них.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Программируем Arduino. Профессиональная работа со скетчами.»

Представляем Вашему вниманию похожие книги на «Программируем Arduino. Профессиональная работа со скетчами.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Программируем Arduino. Профессиональная работа со скетчами.»

Обсуждение, отзывы о книге «Программируем Arduino. Профессиональная работа со скетчами.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x