Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Интересное:
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Защитный диод нам нужен для того, чтобы ток обратного направления, который начнет создавать двигатель, вращаясь по инерции, не вывел из строя транзистор.
Почему мы использовали полевой MOSFET-транзистор, а не биполярный?
Потому что биполярный и полевой транзисторы абсолютно разные по принципу действия. Выходной сигнал биполярного транзистора управляется током, а нам нужно управление напряжением.
Почему мы не использовали резистор между портом Arduino и затвором транзистора?
В каждом пине уже есть подтягивающий резистор.
Как работает инструкция continue, использованная в цикле for?
Инструкция continue, которая выполнится в этом случае, отменит продолжение данной итерации цикла и выполнение программы продолжится со следующей.
Задания для самостоятельного решения
Внесите единственное изменение в программу, после которого максимальной скоростью вращения мотора составит половину от возможной.
#define MOTOR_PIN 9
#define FIRST_BUTTON_PIN 5
#define BUTTON_COUNT 3
#define SPEED_STEP (128 / (BUTTON_COUNT - 1))
void setup()
{
pinMode(13, OUTPUT);
pinMode(MOTOR_PIN, OUTPUT);
for (int i = 0; i < BUTTON_COUNT; ++i)
pinMode(i + FIRST_BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
digitalWrite(13, HIGH);
for (int i = 0; i < BUTTON_COUNT; ++i) {
if (digitalRead(i + FIRST_BUTTON_PIN))
continue;
int speed = i * SPEED_STEP;
analogWrite(MOTOR_PIN, speed);
}
}
Перепишите программу без использования инструкции continue.
#define MOTOR_PIN 9
#define FIRST_BUTTON_PIN 5
#define BUTTON_COUNT 3
#define SPEED_STEP (255 / (BUTTON_COUNT - 1))
void setup()
{
pinMode(13, OUTPUT);
pinMode(MOTOR_PIN, OUTPUT);
for (int i = 0; i < BUTTON_COUNT; ++i)
pinMode(i + FIRST_BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
digitalWrite(13, HIGH);
for (int i = 0; i < BUTTON_COUNT; ++i) {
if (!digitalRead(i + FIRST_BUTTON_PIN))
{
int speed = i * SPEED_STEP;
analogWrite(MOTOR_PIN, speed);
}
}
}
Добавьте в схему еще одну кнопку, чтобы у миксера стало три режима. Понадобилось ли изменять что-либо в программе?
#define MOTOR_PIN 9
#define FIRST_BUTTON_PIN 4
#define BUTTON_COUNT 4
#define SPEED_STEP (255 / (BUTTON_COUNT - 1))
void setup()
{
pinMode(13, OUTPUT);
pinMode(MOTOR_PIN, OUTPUT);
for (int i = 0; i < BUTTON_COUNT; ++i)
pinMode(i + FIRST_BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
digitalWrite(13, HIGH);
for (int i = 0; i < BUTTON_COUNT; ++i) {
if (digitalRead(i + FIRST_BUTTON_PIN))
continue;
int speed = i * SPEED_STEP;
analogWrite(MOTOR_PIN, speed);
}
}
Эксперимент 10. Кнопочный переключатель
В этом эксперименте мы делаем из тактовой кнопки триггер, борясь с «дребезгом».
Схема
Код
#define BUTTON_PIN 3
#define LED_PIN 13
boolean buttonWasUp = true;
boolean ledEnabled = false;
void setup()
{
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
boolean buttonIsUp = digitalRead(BUTTON_PIN);
if (buttonWasUp &&!buttonIsUp) {
delay(10);
buttonIsUp = digitalRead(BUTTON_PIN);
if (!buttonIsUp)
{
ledEnabled =!ledEnabled;
digitalWrite(LED_PIN, ledEnabled);
}
}
buttonWasUp = buttonIsUp;
}
Вопросы для проверки себя
1.В каком случае оператор && возвращает значение «истина»?
Логический оператор && («и») возвращает значение «истина» только в случае истинности обоих его операндов.
Что такое «дребезг»?
Это многократные неконтролируемые замыкания и размыкания контактов за счет упругости материалов и деталей контактной системы — некоторое время контакты «подпрыгивают» при соударениях, размыкая и замыкая электрическую цепь.
|
|
|
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!