Arduino:Примеры/ShftOut11

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Простая передача битов[1]

Это скетч для платы Arduino и одного сдвигового регистра 74HC595. Он поочередно генерирует числа от «0» до «255», передает их сдвиговому регистру, а тот передает их 8 светодиодам, которые показывают двоичную версию этих чисел.

Код

//**************************************************************
//  Название      : Простая передача битов                                
//  Авторы        : Кэрлин Мо, Том Иго, Дэвид А. Меллис, 
//  Дата          : 25 октября 2006 года 
//  Модифицирован : 23 марта 2010 года                                 
//  Версия        : 2.0                                             
//  Примечания    : Скетч для использования со сдвиговым 
//                : регистром 74HC595; считает от «0» до «255»
//***************************************************************

// Контакт, подключенный к контакту ST_CP на 74HC595:
int latchPin = 8;
// Контакт, подключенный к контакту SH_CP на 74HC595:
int clockPin = 12;
// Контакт, подключенный к контакту DS на 74HC595:
int dataPin = 11;



void setup() {
  // выставляем контакты в режим OUTPUT, чтобы с их помощью 
  // можно было управлять сдвиговым регистром:
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  // считаем от «0» до «255» и выводим число на светодиоды:
  for (int numberToDisplay = 0; numberToDisplay < 256; numberToDisplay++) {
    // задаем контакту latchPin значение LOW,
    // чтобы при отправке битов состояние светодиодов не менялось:
    digitalWrite(latchPin, LOW);
    // перемещаем биты:
    shiftOut(dataPin, clockPin, MSBFIRST, numberToDisplay);  
    // задаем контакту latchPin значение HIGH,
    // чтобы передать светодиодам присланные значения:
    digitalWrite(latchPin, HIGH);
    // делаем паузу перед передачей следующих значений:
    delay(500);
  }
}

См.также

Внешние ссылки