Чарльз Платт - Электроника для начинающих (2-е издание)

Тут можно читать онлайн Чарльз Платт - Электроника для начинающих (2-е издание) - бесплатно ознакомительный отрывок. Жанр: sci_tech, издательство «БХВ-Петербург», год 2017. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Электроника для начинающих (2-е издание)
  • Автор:
  • Жанр:
  • Издательство:
    «БХВ-Петербург»
  • Год:
    2017
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-9775-3793-3
  • Рейтинг:
    3.12/5. Голосов: 6221
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Чарльз Платт - Электроника для начинающих (2-е издание) краткое содержание

Электроника для начинающих (2-е издание) - описание и краткое содержание, автор Чарльз Платт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
В ходе практических экспериментов рассмотрены основы электроники и показано, как проектировать, отлаживать и изготавливать электронные устройства в домашних условиях. Материал излагается последовательно от простого к сложному, начиная с простых опытов с электрическим током и заканчивая созданием сложных устройств с использованием транзисторов и микроконтроллеров. Описаны основные законы электроники, а также принципы функционирования различных электронных компонентов. Показано, как изготовить охранную сигнализацию, елочные огни, электронные украшения, устройство преобразования звука, кодовый замок и др. Приведены пошаговые инструкции и более 500 наглядных рисунков и фотографий. Во втором издании существенно переработан текст книги, в экспериментах используются более доступные электронные компоненты, добавлены новые проекты, в том числе с контроллером Arduino.

Электроника для начинающих (2-е издание) - читать онлайн бесплатно ознакомительный отрывок

Электроника для начинающих (2-е издание) - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Чарльз Платт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

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

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

Такие блоки обычно называются функциями, что немного сбивает с толку, потому что мы уже имели дело с функциями setup() и loop() . Фактически, вы можете написать собственную функцию, которая будет работать в целом по такому же принципу.

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

Вы видите функцию checkbutton() в нижней части листинга 5.3 с предшествующим ей словом void, потому что эта функция не возвращает никакого значения в остальную часть программы.

Слова void checkbutton() — это заголовок функции, после которого, как обычно, в фигурных скобках содержится сама процедура. Эта функция выполняет следующее:

• Ждет 50 мс, пока прекратится дребезг контактов.

• Ожидает, пока будет отпущена кнопка.

• Ждет еще 50 мс, пока прекратится дребезг контактов отпущенной кнопки.

• Ждет, пока кнопка будет нажата снова (другими словами, ожидает завершения отпущенного состояния).

• Сбрасывает переменную ignore .

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

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

Структура программы

Строка, которая начинается с if ( millis() > ignore , предназначена для того же, что и Шаг 4 в моем алгоритме, но теперь все работает по- другому. Вместо того чтобы решить, отправлять ли микроконтроллер обратно к началу программы, принимается решение, вызывать ли функцию checkbutton(). Ранее я резюмировал ее логику так: «Если (кнопка не нажата ИЛИ системное время меньше значения ignore), вернуться к Шагу 0». Пересмотренный вариант гласит: «Если превышен период игнорирования кнопки И кнопка нажата, перейти к функции к checkbutton() ».

После того как микроконтроллер выполнит это и вернется, он достигнет конца основной функции loop , которая всегда повторяется автоматически.

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

Поэтому, естественная структура для этой программы — основной цикл, который выбирает и отображает цифры, и если кнопка нажата, микроконтроллер отправляется к функции checkbutton(), а затем возвращается к основному циклу.

Документация среды Arduino ничего не говорит о структуре программы, потому что подразумевает наличие базовых знаний программирования. Поэтому среда Arduino просто требует указать обязательную функцию setup, за которой следует функция loop , и все.

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

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

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

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

Сложно ли создавать программы?

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

Иногда да, а иногда нет. В сообществе умельцев (maker movement) мы склонны считать, что любой может управлять окружающим нас техномиром. Я тоже разделяю это мнение, но компьютерное программирование доводит эту философию до крайних пределов.

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

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

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

Интервал:

Закладка:

Сделать


Чарльз Платт читать все книги автора по порядку

Чарльз Платт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Электроника для начинающих (2-е издание) отзывы


Отзывы читателей о книге Электроника для начинающих (2-е издание), автор: Чарльз Платт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x