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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

Чтобы сгенерировать сигнал PWM с применением библиотеки TimerOne, используйте функцию Timer1.pwm, как показано в следующем примере:

// sketch_03_04_pwm

#include

void setup()

{

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

Timer1.initialize(1000);

Timer1.pwm(9, 512);

Timer1.pwm(10, 255);

}

void loop()

{

}

Здесь выбран период следования импульсов, равный 1000 мкс, то есть частота сигнала PWM составляет 1 кГц. На рис. 3.3 показана форма сигналов на контактах 10 ( вверху ) и 9 ( внизу ).

Рис 33Широтноимпульсный сигнал с частотой 1 кГц сгенерированный с помощью - фото 28

Рис. 3.3.Широтно-импульсный сигнал с частотой 1 кГц, сгенерированный с помощью TimerOne

Ради интереса давайте посмотрим, до какой степени можно увеличить частоту сигнала PWM. Если уменьшить длительность периода до 10, частота сигнала PWM должна увеличиться до 100 кГц. Форма сигналов, полученных с этими параметрами, показана на рис. 3.4.

Несмотря на наличие существенных переходных искажений, что вполне ожидаемо, протяженность положительных импульсов все же остается довольно близкой к 25 и 50% соответственно.

Рис 34Широтноимпульсный сигнал с частотой 100 кГц сгенерированный с - фото 29

Рис. 3.4.Широтно-импульсный сигнал с частотой 100 кГц, сгенерированный с помощью TimerOne

В заключение

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

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

В следующей главе мы познакомимся с приемами увеличения производительности Arduino до максимума.

4. Ускорение Arduino

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

Как определить производительность Arduino?

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

Тактовый генератор на плате Arduino Uno имеет частоту 16 МГц. Большинство инструкций (сложения или сохранения значения в переменной) выполняется за один такт. То есть Uno может выполнять до 16 млн элементарных операций в секунду. Вроде бы неплохо, не так ли? Однако все не так просто, потому что инструкции на языке C, которые вы пишете в скетчах, разворачиваются в множество машинных инструкций.

Теперь сравним плату с моим стареньким ноутбуком Mac, имеющим два процессора, работающих с тактовой частотой 2,5 ГГц. Тактовая частота моего ноутбука более чем в 150 раз выше тактовой частоты Arduino. И хотя для выполнения каждой инструкции процессору требуется несколько тактов, он все же оказывается намного быстрее.

Попробуем выполнить следующую тестовую программу на Arduino и немного измененную ее версию — на моем Mac:

// sketch 04_01_benchmark

void setup()

{

Serial.begin(9600);

Serial.println("Starting Test");

long startTime = millis();

// Далее следует код тестирования

long i = 0;

long j = 0;

for (i = 0; i < 20000000; i ++)

{

j = i + i * 10;

if (j > 10) j = 0;

}

// конец кода, выполняющего тестирование

long endTime = millis();

Serial.println(j); // чтобы предотвратить оптимизацию цикла компилятором

Serial.println("Finished Test");

Serial.print("Seconds taken: ");

Serial.println((endTime — startTime) / 1000l);

}

void loop()

{

}

ПРИМЕЧАНИЕ

Версию программы на C для компьютера можно найти в разделе загрузки примеров на веб-сайте книги.

Вот какие результаты получились: на MacBook Pro с процессором 2,5 ГГц тестовая программа выполнялась 0,068 с, тогда как на Arduino Uno ей понадобилось 28 с. Плата Arduino оказалась примерно в 400 раз медленнее при решении данной задачи.

Сравнение плат Arduino

В табл. 4.1 показаны результаты выполнения этого теста в нескольких разных моделях платы Arduino.

Таблица 4.1.Результаты тестирования быстродействия Arduino

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

Интервал:

Закладка:

Сделать

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

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


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

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

x