Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2018-01-30 | 5136 |
5.00
из
|
Заказать работу |
|
|
Оператор X % Y дает остаток от деления X на Y. Если X меньше Y, т.е. целая часть результата деления равна 0, оператор % будет возвращать X. Таким образом:
· Пока brightness + 1 меньше 256, в brightness записывается значение brightness + 1
· Как только brightness + 1 принимает значение 256, результатом (brightness + 1) % 256становится 0 и на следующей итерации loop() всё начинается сначала.
Задания для самостоятельного решения
Измените программу так, чтобы яркость шкалы росла только до половины от максимальной.
#define CONTROL_PIN 9
int brightness = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(CONTROL_PIN, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
brightness = (brightness + 1)% 128;
analogWrite (CONTROL_PIN, brightness);
delay (10);
}
Измените программу так, чтобы шкала становилась максимально яркой в три раза быстрее, без изменения функции delay.
#define CONTROL_PIN 9
int brightness = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(CONTROL_PIN, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
brightness = (brightness + 3)% 256;
analogWrite (CONTROL_PIN, brightness);
delay (10);
}
3.Измените исходную программу так, чтобы такой же результат был получен без использования операции %, но с применением условного оператора if.
#define CONTROL_PIN 9
int brightness = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(CONTROL_PIN, OUTPUT);
}
void loop()
{
digitalWrite(13, HIGH);
if (brightness <= 255)
{
analogWrite (CONTROL_PIN, brightness);
delay (10);
++brightness;
}
else
brightness=0;
}
Эксперимент 7. Бегущий огонёк
В этом эксперименте мы заставляем огонёк бежать по светодиодной шкале.
Схема
Код
#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11
void setup()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
pinMode(pin, OUTPUT);
}
void loop()
{
unsigned int ms = millis();
int pin = FIRST_LED_PIN + (ms / 120) % 10;
digitalWrite(pin, HIGH);
delay(10);
digitalWrite(pin, LOW);
}
Вопросы для проверки себя
Почему в данном эксперименте мы подключаем светодиодную шкалу, не используя транзистор?
Так как светодиоды в шкале будут включаться не все вместе, а по отдельности, и не будут потреблять большой ток.
|
Если бы мы включали светодиоды только на портах 5, 6, 7, 8, 9, что нужно было бы изменить в программе?
#define FIRST_LED_PIN 5
#define LAST_LED_PIN 9
void setup()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
pinMode(pin, OUTPUT);
}
void loop()
{
unsigned int ms = millis();
int pin = FIRST_LED_PIN + (ms / 120) % 5;
digitalWrite(pin, HIGH);
delay(10);
digitalWrite(pin, LOW);
}
3.С помощью какой другой инструкции можно выполнить действие, эквивалентное ++pin?
pin = pin + 1
В чем разница между переменными типов int и unsigned int?
Тип данных unsigned int используют для хранения целых чисел без знака, т.е. только неотрицательных. За счет лишнего бита, который теперь не используется для хранения знака, мы можем хранить в переменной такого типа значения до 65 535.
Что возвращает функция millis()?
Функция millis возвращает количество миллисекунд, прошедших с момента включения или перезагрузки микроконтроллера. Здесь мы используем ее для отсчета времени между переключениями светодиодов.
Как в данном эксперименте мы вычисляем номер порта, на котором нужно включить светодиод?
С помощью выражения (ms / 120) % 10 мы определяем, который из 10 светодиодов должен гореть сейчас. Перефразируя, мы определяем какой отрезок длиной в 120 мс идет сейчас и каков его номер внутри текущего десятка. Мы добавляем порядковый номер отрезка к номеру того порта, который в текущем наборе выступает первым.
Задания для самостоятельного решения
Измените код так, чтобы светодиоды переключались раз в секунду.
#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11
void setup()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
pinMode(pin, OUTPUT);
}
void loop()
{
unsigned int ms = millis();
int pin = FIRST_LED_PIN + (ms / 1000) % 10;
digitalWrite(pin, HIGH);
delay(10);
digitalWrite(pin, LOW);
}
Не выключая порты, сделайте так, чтобы огонёк бежал только по средним четырем делениям шкалы.
#define FIRST_LED_PIN 2
#define LAST_LED_PIN 11
void setup()
{
for (int pin = FIRST_LED_PIN; pin <= LAST_LED_PIN; ++pin)
pinMode(pin, OUTPUT);
}
void loop()
{
unsigned int ms = millis();
int pin = FIRST_LED_PIN + 3 + (ms / 120) % 4;
digitalWrite(pin, HIGH);
delay(10);
|
digitalWrite(pin, LOW);
}
3.Переделайте программу так, чтобы вместо int pin = FIRST_LED_PIN + (ms / 120) % 10перемещением огонька управлял цикл for
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!