пятница, 12 сентября 2014 г.

Ардуино + сдвиговый регистр

   Отличное пособие для начинания тут: http://arduino.ru/Tutorial/registr_74HC595

VCC – питание;
GND – земля;
DS – последовательный ввод. Должен подключаться к проводу MOSI шины SPI;
Q0-Q7 – параллельные выходы;
SHCP – тактовый вход. Должен подключаться к проводу SCK шины SPI;
STCP – защелкивание выводов. Должен подключаться к проводу CS шины SPI;
OE – разрешение работы выходов. При низком уровне выходы работают;
Q7S – последовательный вывод;
MR – общий сброс. Если притянуть его к земле – входы обнулятся.

Скетч для двух регистров 74HC595 и семисегментным 4хразрядным дисплеем с общим катодом:
// подключаем библиотеку SPI
#include <SPI.h>
// провод CS подсоединяем к 8-му пину Arduino
enum { reg = 8 };

void setup()
{
  
  Serial.begin(9600);
  Serial.println("Started");
// инициализируем SPI
  SPI.begin();
  Serial.println("SPI");
// настраиваем 8-й пин как выход 
  pinMode(reg, OUTPUT);
}

// храним в массиве все цифры 
static uint8_t digit[11] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};

void loop()
{
  for (int i=0;i<11;i++){
    // притягиваем CS к земле - начало передачи
    Serial.println(digit[i]);
    digitalWrite(reg, LOW);
    // передаем катодный байт
    SPI.transfer(digit[i]);
    // передаем анодный байт
    SPI.transfer(0xFF);
    // отпускаем  CS - конец передачи
    digitalWrite(reg, HIGH);
    // ждем секунду
    delay(1000);
  }
}

Комментариев нет:

Отправить комментарий