Несколько вариантов работы светодиодной шкалы:
слева-направо и наоборот
Одиночное передвижение или в возрастающем порядке.
С кнопочкой пока не срослось все, но доделаю.
Главное преимущество данной работы - использование функций. На первых этапах работы не каждый начнет работу с ними, но они значительно упрощают код программы.
Так как каждая функция выдает в результат мигание, а не какое-либо значение, то функции задаются через недействительными функции, в противном случае задавалось бы через тип переменных, например, внутр функции
# Определить FIRST_LED_PIN 2
# Определить LAST_LED_PIN 13
внутр контактный;
внутр пит;
недействительными установки ()
{
для (внутр контактный = FIRST_LED_PIN; контактный <= LAST_LED_PIN; + + контактный)
pinMode (контактный, ВЫХОД);
}
недействительными петля ()
{
пит = пит +1;
переключатель (число) {
Случай 1: away1 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 2: away2 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 3: away3 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 4: away4 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
по умолчанию: не (FIRST_LED_PIN, LAST_LED_PIN); сломать;
}
}
недействительным, не (внутр минимальны, внутр максимальная) {
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, LOW);
};
};
/ / Непрерывная дорожка, потом исчезает справа-налево
недействительными away1 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
};
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, LOW);
};
}
/ / Непрерывная дорожка, потом исчезает слева-направо
недействительными away2 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = максимальная; контактный> минимальны;-контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
};
для (контактный = максимальная; контактный <= минимальны;-контактный) {
digitalWrite (контактный, LOW);
};
}
/ / По одному сегменту справа-налево
недействительными away3 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
digitalWrite (контактный, LOW);
};
}
/ / По одному сегменту cлева-направо
недействительными away4 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = максимальная; контактный> минимальны;-контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
digitalWrite (контактный, LOW);
};
}
слева-направо и наоборот
Одиночное передвижение или в возрастающем порядке.
С кнопочкой пока не срослось все, но доделаю.
Главное преимущество данной работы - использование функций. На первых этапах работы не каждый начнет работу с ними, но они значительно упрощают код программы.
Так как каждая функция выдает в результат мигание, а не какое-либо значение, то функции задаются через недействительными функции, в противном случае задавалось бы через тип переменных, например, внутр функции
# Определить FIRST_LED_PIN 2
# Определить LAST_LED_PIN 13
внутр контактный;
внутр пит;
недействительными установки ()
{
для (внутр контактный = FIRST_LED_PIN; контактный <= LAST_LED_PIN; + + контактный)
pinMode (контактный, ВЫХОД);
}
недействительными петля ()
{
пит = пит +1;
переключатель (число) {
Случай 1: away1 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 2: away2 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 3: away3 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
Случай 4: away4 (FIRST_LED_PIN, LAST_LED_PIN, 1000); сломать;
по умолчанию: не (FIRST_LED_PIN, LAST_LED_PIN); сломать;
}
}
недействительным, не (внутр минимальны, внутр максимальная) {
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, LOW);
};
};
/ / Непрерывная дорожка, потом исчезает справа-налево
недействительными away1 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
};
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, LOW);
};
}
/ / Непрерывная дорожка, потом исчезает слева-направо
недействительными away2 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = максимальная; контактный> минимальны;-контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
};
для (контактный = максимальная; контактный <= минимальны;-контактный) {
digitalWrite (контактный, LOW);
};
}
/ / По одному сегменту справа-налево
недействительными away3 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = минимальны; контактный <= максимальная; + + контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
digitalWrite (контактный, LOW);
};
}
/ / По одному сегменту cлева-направо
недействительными away4 (внутр минимальны, внутр максимальна, внутр long_time)
{
для (контактный = максимальная; контактный> минимальны;-контактный) {
digitalWrite (контактный, HIGH);
задержка (long_time);
digitalWrite (контактный, LOW);
};
}
Комментариев нет:
Отправить комментарий