Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Зачем в схеме использован диод?

2018-01-30 4706
Зачем в схеме использован диод? 4.00 из 5.00 5 оценок
Заказать работу

Вверх
Содержание
Поиск

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

Почему мы использовали полевой 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.В каком случае оператор && возвращает значение «истина»?

Логический оператор && («и») возвращает значение «истина» только в случае истинности обоих его операндов.

Что такое «дребезг»?

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


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

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

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...



© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.016 с.