Читаем Электроника для начинающих полностью

   if (digitalRead(10) – HIGH) {

      digitalWrite(11, HIGH);

      delay(1000);

   }

   digitalWrite(11, LOW);

}

В setup мы должны указать, что контакт 10 выступает в качестве входного и что контакт 11 является цифровым выходом. В loop мы будем считывать состояние контакта 10 с помощью digitalRead. Функция digitalRead требует только одного параметра, номер контакта для чтения, и возвращает состояние контакта, которое может быть высоким или низким. Первая строка loop считывает состояние контакта и, если оно высокое, потому что кто-то нажал на кнопку, входит в блок инструкций между двумя фигурными скобками, включает контакт 11 и ожидает в течение одной секунды.

Если никто не нажмет на кнопку, контакт будет в низком состоянии, «Ардуино» не выполняет блок инструкций после if, перейдя непосредственно к последней digitalWrite, выключающей контакт, к которому подключен светодиод.

<p>analogWrite</p>

Функция analogWrite используется для генерирования ШИМ-сигнала (т. е. сигнала прямоугольной формы), в котором мы можем изменить по желанию процент включенного и выключенного сигнала. Необходимы два параметра: выход и число, который указывает взаимосвязь между включением и выключением. Число не в процентах, а в числовом значении в диапазоне от 0 до 255. Не все контакты «Ардуино» могут генерировать сигнал данного типа; контакты, способные выполнять данную операцию, это 3, 5, 6, 9, 10 и 11. Мы можем их различить, так как на плате, рядом с номером, обозначен небольшой символ тильды (~).

Сделаем эксперимент, изменив скетч предыдущего примера и используя ту же схему: нам нужен только светодиод, подключенный к контакту 11. С ШИМ-сигналом мы можем установить уровень яркости светодиода по желанию. Если использовать число от 0 до 255, то будет немного неудобно, поэтому мы воспользуемся функцией тар(), которая выполняет перераспределяет диапазон чисел от 0 до 255 в диапазон от 0 до 100.

void setup () {

   pinMode (11, OUTPUT);

}

void loop() {

   int Brightness = 10;

   int pwm = map(Brightness, 0,100, 0,255);

   analogWrite (11, pwm);

}

В скетче мы также ввели переменные: Brightness и pwm. Переменная – это небольшая часть памяти, в которую может быть записана временная информация. В С (язык, используемый для программирования «Ардуино») переменные не могут быть общими контейнерами, вы должны сначала определить, что они будут содержать. По этой причине, когда вы используете их в первый раз, имени переменной вы должны задать специальное слово: int, которое означает целое число: переменные Brightness и pwm могут содержать только целые числа. Чтобы присвоить значение переменной, нужно просто написать ее имя, знак равенства =, а затем требуемое значение.

Переменные работают как небольшие ящики, к которым мы можем применить имя для напоминания об их содержимом и разместить информацию.

int Brightness = 10;

Функция map принимает переменную Brightness, которую мы будем использовать в виде процента и зададим значения от 0 до 255. Если Яркостьравна 10, тогда map примет значение 25.5, но так как оно должно быть целым, мы будем иметь 26.

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

<p>Монитор порта</p>

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

Рис. А6. Для открытия окна «Монитор порта» нажимаем на кнопку на панели инструментов «Ардуино»

Чтобы использовать последовательный порт «Ардуино», он должен быть сконфигурирован в setup:

void setup() {

   Serial.begin(9600);

}

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

Serial.println("Hello World!");

Куда уходят эти сообщения? Они отправляются на наш компьютер, и мы можем прочитать их, открыв вывод. В IDE «Ардуино», последняя икона на панели инструментов используется для открытия окна «Монитор порта», то есть окно, которое принимает и отображает сообщения, отправленные от «Ардуино».

Вот скетч, чтобы напечатать надпись "Hello World" и значение переменной в интервале одной секунды:

int count = 0;

   void setup() {

   Serial.Begin(9600);

}

void loop() {

   Serial.println("Hello World!");

   Serial.print("Count: ");

Перейти на страницу:

Похожие книги

102 способа хищения электроэнергии
102 способа хищения электроэнергии

Рассмотрена проблема хищений электроэнергии и снижения коммерческих потерь в электрических сетях потребителей. Приведены законодательно–правовые основы для привлечения к ответственности виновных в хищении электроэнергии. Изложены вопросы определения расчетных параметров средств учета электроэнергии, показаны схемы подключения счетчиков электрической энергии. Описаны расчетные и технологические способы хищения электроэнергии. Обсуждаются организационные и технические мероприятия по обнаружению, предотвращению и устранению хищений.Для работников энергоснабжающих организаций и инспекторского состава органов Ростехнадзора. Материалы книги могут быть использованы руководителями и специалистами энергослужб предприятий (организаций) для правильного определения расчетных параметров средств учета и потерь электроэнергии в электрических сетях.Если потенциальные расхитители электроэнергии надеются найти в книге «полезные советы», они должны отдавать себе отчет, что контролирующие структуры информированы в не меньшей степени и, следовательно, вооружены для эффективной борьбы с противоправной деятельностью.Настоящая книга является переработанным и дополненным изданием выпущенной в 2005 г. книги «101 способ хищения электроэнергии».

Валентин Викторович Красник

Технические науки / Образование и наука
Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
100 великих чудес инженерной мысли
100 великих чудес инженерной мысли

За два последних столетия научно-технический прогресс совершил ошеломляющий рывок. На что ранее человечество затрачивало века, теперь уходят десятилетия или всего лишь годы. При таких темпах развития науки и техники сегодня удивить мир чем-то особенным очень трудно. Но в прежние времена появление нового творения инженерной мысли зачастую означало преодоление очередного рубежа, решение той или иной крайне актуальной задачи. Человечество «брало очередную высоту», и эта «высота» служила отправной точкой для новых свершений. Довольно много сооружений и изделий, даже утративших утилитарное значение, тем не менее остались в памяти людей как чудеса науки и техники. Новая книга серии «Популярная коллекция «100 великих» рассказывает о чудесах инженерной мысли разных стран и эпох: от изобретений и построек Древнего Востока и Античности до небоскребов в сегодняшних странах Юго-Восточной и Восточной Азии.

Андрей Юрьевич Низовский

История / Технические науки / Образование и наука