Найти в Дзене
ArcadePub

Функция shiftOut()

Оглавление
Ардуино
Ардуино

Описание

Выводит байт информации на порт ввода/вывода последовательно (побитно). Вывод может осуществляться как с первого (левого), так и с последнего (правого) бита. Каждый бит последовательно подается на заданный порт, после чего подается сигнал на синхронизирующий порт вход/выход, информируя о доступности к считыванию бита.

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

Синтаксис

shiftOut(dataPin,clockPin,bitOrder,value);

Параметры

  • dataPin: номер порта вход/выхода, на который выводятся биты (int)
  • clockPin: номер порта по которому производится синхронизация (int)
  • bitOrder: используемая последовательность вывода бит. MSBFIRST (Most Significant Bit First) — слева или LSBFIRST (Least Significant Bit First) — справа.
  • value: значение (байт) для вывода (byte)

Возвращаемое значение

нет

Дополнительная информация

Порт вывода (dataPin) и синхронизирующий порт (clockPin) должны быть предварительно сконфигурированы как порты вывода с помощью функции pinMode().

Текущая реализация функции shiftOut() может выводить только один байт (8 бит) информации, поэтому необходимо произвести несколько действий чтобы  вывести значения больше 255.

Пример

//**************************************************************//
// Name : shiftOutCode, Hello World //
// Author : Carlyn Maw,Tom Igoe //
// Date : 25 Oct, 2006 //
// Version : 1.0 //
// Notes : Code for using a 74HC595 Shift Register //
// : to count from 0 to 255 //
//****************************************************************
//Порт подключенный к ST_CP 74HC595
//Порт подключенный к ST_CP 74HC595
int latchPin = 8;
//Порт подключенный к SH_CP 74HC595
int clockPin = 12;
//Порт подключенный к DS 74HC595
int dataPin = 11;
void setup() {
//устанавливаем режим порта выхода
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
for (int j = 0; j < 256; j++) {
//устанавливаем LOW на latchPin пока не окончена передача байта
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, j);
//устанавливаем HIGH на latchPin, чтобы проинформировать регистр, что передача окончена.
digitalWrite(latchPin, HIGH);
delay(1000);
}
}

Связанные записи

Заключение

Мы публикуем справочник языка программирования Ардуино.

Язык программирования Ардуино построен на языке С/С++. С++ низкоуровневый язык и он довольно сложен для изучения. Но для программирования устройств на основе Ардуино создан более простой язык, использовать который вы сможете с первого дня изучения Ардуино.

Описание функций и другие особенности языка вы найдете в этом справочнике языка программирования Ардуино.

Спасибо, что дочитали статью до конца.

Пожалуйста, подписывайтесь на блог в яндекс дзен.

Посмотрите больше уроков и проектов на сайте arcadepub.ru

И подписывайтесь на соц. сети.

Спасибо за внимание, скоро увидимся.