Проход по ссылкам навигацииГлавная : Статьи :

Arduino UNO урок 4 (Бегущий огонь)

Arduino UNO урок 4 (Бегущий огонь)



В Схему пищалки этом уроке Вход сабвуфера на к157уд2 мы продолжим работу Счетчик оборотов для намоточного станка со светодиодами, Схема самого навороченого зу для аб но количество Вход сабвуфера на к157уд2 светодиодов увеличим Цоколевка bta41600b до 5. И Схему пищалки сделаем эффект бегущего огня. Вход сабвуфера на к157уд2 Для управления светодиодами будем Счетчик оборотов для намоточного станка использовать манипуляции с Вход сабвуфера на к157уд2 портами Схема самого навороченого зу для аб Arduino. Мы будем напрямую записывать Вход сабвуфера на к157уд2 данные Вход сабвуфера на к157уд2 в порты Цоколевка bta41600b Arduino. Это лучше, чем Схему пищалки работать с Вход сабвуфера на к157уд2 конкретными входами/выходами контроллера. Счетчик оборотов для намоточного станка Это позволит Схема самого навороченого зу для аб установить значения Вход сабвуфера на к157уд2 для светодиодов Цоколевка bta41600b при помощи одной Схему пищалки лишь операции.

У Arduino Вход сабвуфера на к157уд2 UNO имеется 3 порта:Счетчик оборотов для намоточного станка B>
B (цифровые входа/выхода Вход сабвуфера на к157уд2 с Схема самого навороченого зу для аб 8 по 13)
C (аналоговые Вход сабвуфера на к157уд2 входа)
Вход сабвуфера на к157уд2 D (цифровые Цоколевка bta41600b входа/выхода с 0 по Схему пищалки 7)

Каждый Вход сабвуфера на к157уд2 порт управляется 3 Счетчик оборотов для намоточного станка регистрами. Регистр Схема самого навороченого зу для аб DDR определяет Вход сабвуфера на к157уд2 чем будет Цоколевка bta41600b являться нога (pin) Схему пищалки входом или выходом. При Вход сабвуфера на к157уд2 помощи регистра PORT можно Счетчик оборотов для намоточного станка установить pin в Вход сабвуфера на к157уд2 состояние Схема самого навороченого зу для аб HIGH или LOW. При помощи Вход сабвуфера на к157уд2 регистра Вход сабвуфера на к157уд2 PIN можно Цоколевка bta41600b считать состояние ножек Arduino, Схему пищалки когда они Вход сабвуфера на к157уд2 работает на вход.

Счетчик оборотов для намоточного станка Мы будем Схема самого навороченого зу для аб использовать порт Вход сабвуфера на к157уд2 B. Сначала, Цоколевка bta41600b мы должны установить Схему пищалки все ножки порта B Вход сабвуфера на к157уд2 как цифровые выхода. У Счетчик оборотов для намоточного станка порта B имеется Вход сабвуфера на к157уд2 только Схема самого навороченого зу для аб 6 ножек. Биты регистра для Вход сабвуфера на к157уд2 В-порта Вход сабвуфера на к157уд2 DDRB должны Цоколевка bta41600b быть установлены в 1, Схему пищалки если нога Вход сабвуфера на к157уд2 будет использоваться как Счетчик оборотов для намоточного станка выход (OUTPUT), Схема самого навороченого зу для аб и в Вход сабвуфера на к157уд2 0, если Цоколевка bta41600b нога будет использовать Схему пищалки как вход (INPUT). Биты Вход сабвуфера на к157уд2 портов нумеруются с 0 Счетчик оборотов для намоточного станка по 7, но Вход сабвуфера на к157уд2 не Схема самого навороченого зу для аб всегда содержат все 8 ног.
Вход сабвуфера на к157уд2 Пример:
Вход сабвуфера на к157уд2 DDRB = Цоколевка bta41600b B00111110; // установить ножки Схему пищалки порта В Вход сабвуфера на к157уд2 с 1 по Счетчик оборотов для намоточного станка 5 как Схема самого навороченого зу для аб выхода, а Вход сабвуфера на к157уд2 0 как Цоколевка bta41600b вход.

Обратите внимание, Схему пищалки что в микроконтроллерах фирмы Вход сабвуфера на к157уд2 Microchip все наоборот. 0 Счетчик оборотов для намоточного станка бит - нога Вход сабвуфера на к157уд2 работает Схема самого навороченого зу для аб как выход, а 1 - Вход сабвуфера на к157уд2 как Вход сабвуфера на к157уд2 вход.

В Цоколевка bta41600b нашем проекте бегущего огня Схему пищалки мы будем Вход сабвуфера на к157уд2 использовать 5 выходов:
Счетчик оборотов для намоточного станка DDRB = Схема самого навороченого зу для аб B00011111; // Вход сабвуфера на к157уд2 установить ноги Цоколевка bta41600b порта В с Схему пищалки 0 по 4 как Вход сабвуфера на к157уд2 выхода

Для записи значений Счетчик оборотов для намоточного станка в порт В Вход сабвуфера на к157уд2 необходимо Схема самого навороченого зу для аб использовать регистр PORTB.
Зажечь первый Вход сабвуфера на к157уд2 светодиод Вход сабвуфера на к157уд2 можно командой:
Цоколевка bta41600b PORTB = B00000001;
первый Схему пищалки и четвертый:
Вход сабвуфера на к157уд2 PORTB = B00001001;

Счетчик оборотов для намоточного станка Теперь вы Схема самого навороченого зу для аб видите, как Вход сабвуфера на к157уд2 легко мы Цоколевка bta41600b можем включать и Схему пищалки выключать светодиоды. Теперь расскажем Вход сабвуфера на к157уд2 вам об операторах сдвига

Счетчик оборотов для намоточного станка Есть 2 оператора Вход сабвуфера на к157уд2 двоичного Схема самого навороченого зу для аб сдвига: оператор сдвига влево << Вход сабвуфера на к157уд2 и Вход сабвуфера на к157уд2 оператор сдвига Цоколевка bta41600b вправо >>. Оператор сдвига Схему пищалки влево << Вход сабвуфера на к157уд2 заставляет все биты Счетчик оборотов для намоточного станка сдвигаться влево, Схема самого навороченого зу для аб соответственно оператор Вход сабвуфера на к157уд2 сдвига вправо >> сдвигает биты Схему пищалки вправо.

Пример:
varA = Вход сабвуфера на к157уд2 1; // 00000001
varA Счетчик оборотов для намоточного станка = 1 << Вход сабвуфера на к157уд2 0; Схема самого навороченого зу для аб // 00000001
varA = Вход сабвуфера на к157уд2 1 << 1; // Цоколевка bta41600b 00000010
varA = 1 << 2; Вход сабвуфера на к157уд2 // 00000100

Вход сабвуфера на к157уд2


Теперь Счетчик оборотов для намоточного станка вернемся к Схема самого навороченого зу для аб нашей программе, Вход сабвуфера на к157уд2 которая показана Цоколевка bta41600b ниже.
Нам нужно Схему пищалки ввести 2 переменные: первая Вход сабвуфера на к157уд2 upDown будет содержать значение Счетчик оборотов для намоточного станка куда двигаться - Вход сабвуфера на к157уд2 вверх Схема самого навороченого зу для аб или вниз, а вторая cylon Вход сабвуфера на к157уд2 какие Вход сабвуфера на к157уд2 светодиоды зажигать.

Цоколевка bta41600b В функции setup() мы Схему пищалки определяем какие Вход сабвуфера на к157уд2 ножки должны работать Счетчик оборотов для намоточного станка как Схема самого навороченого зу для аб выхода.

В главном Вход сабвуфера на к157уд2 цикле программы Цоколевка bta41600b loop(), светодиоды по Схему пищалки очереди загораются вверх путем Вход сабвуфера на к157уд2 увеличения переменной cylon, а Счетчик оборотов для намоточного станка когда доходит до Вход сабвуфера на к157уд2 самого Схема самого навороченого зу для аб верхнего, то переменной upDown присваивается Вход сабвуфера на к157уд2 0 Вход сабвуфера на к157уд2 и светодиоды Цоколевка bta41600b загораются вниз по очереди.

Схему пищалки /*
  Бегущий Вход сабвуфера на к157уд2 огонь. 5 светодиодов
 Счетчик оборотов для намоточного станка */
 
unsigned Схема самого навороченого зу для аб char upDown=1;     Вход сабвуфера на к157уд2 // начинаем Цоколевка bta41600b с движения вверх   
Схему пищалки unsigned char cylon=0;      // Вход сабвуфера на к157уд2 определяет очередность LED
 
void Счетчик оборотов для намоточного станка setup() {               
  DDRB Вход сабвуфера на к157уд2 = Схема самого навороченого зу для аб B00011111;         // устанавливаем порт B Вход сабвуфера на к157уд2 с Вход сабвуфера на к157уд2 0 по Цоколевка bta41600b 4 как выхода  
}
 
Схему пищалки void loop() Вход сабвуфера на к157уд2 {
  if(upDown==1){                // Счетчик оборотов для намоточного станка если идем Схема самого навороченого зу для аб вверх, то
    Вход сабвуфера на к157уд2 cylon++;
    if(cylon>=4) Цоколевка bta41600b upDown=0;      // когда Схему пищалки достигнут наибольший номер LED, Вход сабвуфера на к157уд2 то в след. цикле Счетчик оборотов для намоточного станка идем вниз
  }
  Вход сабвуфера на к157уд2 else Схема самого навороченого зу для аб {
    cylon--;
    if(cylon==0) upDown=1;      // Вход сабвуфера на к157уд2 когда Вход сабвуфера на к157уд2 достигнут наименьший Цоколевка bta41600b номер LED, то в Схему пищалки след. цикле Вход сабвуфера на к157уд2 идем вверх
  }
  Счетчик оборотов для намоточного станка PORTB = Схема самого навороченого зу для аб 1 << Вход сабвуфера на к157уд2 cylon;         //сдвиг
  Цоколевка bta41600b delay(200);                   // пауза Схему пищалки 200 мс
}