Джереми Блум - Изучаем Arduino - инструметы и методы технического волшебства

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

Изучаем Arduino: инструметы и методы технического волшебства: краткое содержание, описание и аннотация

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

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

Изучаем Arduino: инструметы и методы технического волшебства — читать онлайн бесплатно полную книгу (весь текст) целиком

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

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

Интервал:

Закладка:

Сделать

Анализируя рис. 4.5, делаем следующие выводы:

1. Для вращения двигателя один из выключателей должен быть замкнут, другой разомкнут.

2. Чтобы двигатель вращался в обратном направлении, замкнутый в n. 1 выключатель должен быть разомкнут, а разомкнутый - замкнут.

3. Для остановки двигателя оба выключателя должны быть разомкнуты.

ПРИМЕЧАНИЕ

Перед изменением состояния выключателей всегда отключайте ток, чтобы не вызвать короткого замыкания Н-моста.

Сначала напишем код функций для выполнения описанных действий (листинг 4.3).

Листинг 4.3. Вспомогательные функции для управления двигателем

// Вращение двигателя вперед с заданной скоростью (диапазон 0-255)

void forward (int rate)

{

digitalWrite(EN, LOW);

- 95 -

digitalWrite(MC1, HIGH);

digitalWrite(MC2, LOW);

analogWrite(EN, rate);

}

// Вращение двигателя в обратном направлении с заданной скоростью

//(диапазон 0-255)

void reverse (int rate)

{

digitalWrite(EN, LOW);

digitalWrite(MC1, LOW);

digitalWrite(MC2, HIGH);

analogWrite(EN, rate);

}

// Остановка двигателя

void brake()

{

digitalWrite(EN, LOW);

digitalWrite(MC1, LOW);

digitalWrite(MC2, LOW);

digitalWrite(EN, HIGH)

}

Обратите внимание, что в начале каждой функции на контакте EN всегда устанавливается низкий уровень, и затем задаются значения на входах блока управления MC1 и MC2. После установки значений на входах MC1 и MC2 можно снова включить ток. Подавая сигнал ШИМ на вход EN, можно управлять скоростью двигателя.

Значение переменной rate должно быть в диапазоне от 0 до 255. Основной цикл программы (листинг 4.4) считывает данные с потенциометра и в зависимости от результата вызывает требуемую функцию.

Листинг 4.4. Программа вызова вспомгательных функций

void loop()

{

val = analogRead(POT);

// Движение вперед

if (val > 562)

{

velocity = map(val, 563, 1023, 0, 255);

forward(velocity);

}

// Движение назад

else if (val < 462)

{

velocity = map(val, 461, 0, 0, 255);

- 96 -

reverse(velocity);

}

// Остановка

else

{

brake();

}

}

Сигнал с аналогового входа преобразуется в цифровое значение в диапазоне от 0 до 1023. Чтобы лучше понять принцип управления, обратимся к рис. 4.8.

Рис 48 Принцип управления двигателем При значениях сигнала от потенциометра - фото 39

Рис. 4.8. Принцип управления двигателем

При значениях сигнала от потенциометра в диапазоне от 462 до 562 ( 100 отсчетов в районе средней точки) вызывается функция break() для остановки двигателя, при значениях от 562 до 1023 - функция запуска двигателя в прямом направлении forward(), при значениях от 0 до 462 - функция запуска двигателя в обратном направлении reverse(). Функция map() знакома вам из предыдущей главы. При определении обратной скорости значение потенциометра 461 соответствует значение скорости 0, а значение потенциометра 0 соответствует значение скорости 255.

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

Листинг 4.5. Программа управления двигателем с помощью потенциометра

!! Управление двигателем с помощью Н-моста

const int EN=9;// Вход включения двигателя EN

const int MC1=3;// Вход 1 управления двигателем

const int MC2=2;// Вход 2 управления двигателем

const int POT=0;// Аналоговый вход 0 для подключения потенциометра

int val = 0;// Переменная для хранения значения потенциометра

int velocity = 0;// Переменная для хранения скорости двигателя (0-255)

void setup()

{

pinMode(EN, OUTPUT);

pinMode(MC1, OUTPUT);

pinMode(MC2, OUTPUT);

brake();// Остановка двигателя при инициализации

}

- 97 -

void loop()

{

val = analogRead(POT);

// Движение вперед

if (val > 562)

{

velocity = map(val, 563, 1023, 0, 255);

forward(velocity);

}

// Движение назад

else if (val < 462)

{

velocity = map(val, 461, 0, 0, 255);

reverse(velocity);

}

// Остановка

else

brake();

}

// Движение двигателя вперед с заданной скоростью

// (диапазон 0-255)

void forward (int rate)

{

digitalWrite(EN, LOW);

digitalWrite(MC1, HIGH);

digitalWrite(MC2, LOW);

analogWrite(EN, rate);

}

// Движение двигателя в обратном направлении с заданной скоростью

// (диапазон 0-255)

void reverse (int rate)

{

digitalWrite(EN, LOW);

digitalWrite(MC1, LOW);

digitalWrite(MC2, HIGH);

analogWrite(EN, rate);

}

// Остановка двигателя

void brake()

{

digitalWrite(EN, LOW);

digitalWrite(MC1, LOW);

digitalWrite(MC2, LOW);

digitalWrite(EN, HIGH);

}

- 98 -

Загрузите программу в плату Arduino и запустите на выполнение. Все работает, как ожидалось? Если нет, еще раз внимательно проверьте монтаж.

В качестве упражнения подключите к драйверу H-моста SN754410 второй двигатель постоянного тока и напишите программу управления двумя двигателями.

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

Интервал:

Закладка:

Сделать

Похожие книги на «Изучаем Arduino: инструметы и методы технического волшебства»

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


Отзывы о книге «Изучаем Arduino: инструметы и методы технического волшебства»

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

x