Funduino+74hc595

Zhenyok13
Offline
Зарегистрирован: 25.08.2013

Всем доброе время суток! На днях хотел подружить мегу 2560 от фундуины и сдвиговый регистор 74hc595, но появилась проблема: ничего не работает, пробывал разные коды, разные пины подключения, менял сами регисторы, а толку ноль. Делал по разным статьям, к примеру, код брал от сюда: http://arduino.cc/en/Tutorial/ShiftOut , пины подключения от сюда: http://www.pighixxx.com/pgdev/Temp/mega2.png .

сейчас прописан такой код:

#include <SPI.h>

#include <SPI.h>
int REG_SELECT=8;

void setup()
{
  /* Инициализируем шину SPI. Если используется программная реализация,
   * то вы должны сами настроить пины, по которым будет работать SPI.
   */
  SPI.begin();

  pinMode(REG_SELECT, OUTPUT);
   pinMode(51, OUTPUT); 
  pinMode(52, OUTPUT);
  digitalWrite(REG_SELECT, LOW); // выбор ведомого - нашего регистра
  SPI.transfer(0); // очищаем содержимое регистра
  /* Завершаем передачу данных. После этого регистр установит
   * на выводах QA-QH уровни, соответствующие записанным битам.
   */
  digitalWrite(REG_SELECT, HIGH);
}


/* Эта функция сдвигает биты влево на одну позицию, перемещая старший бит
 * на место младшего. Другими словами, она "вращает" биты по кругу.
 * Например, 11110000 превращается в 11100001.
 */
void rotateLeft(uint8_t &bits)
{
  uint8_t high_bit = bits & (1 << 7) ? 1 : 0;
  bits = (bits << 1) | high_bit;
}


void loop()
{
  static uint8_t nomad = 11100001; // это наш бегающий бит

  /* Записываем значение в сдвиговый регистр */
  digitalWrite(REG_SELECT, LOW);
  SPI.transfer(nomad);
  digitalWrite(REG_SELECT, HIGH);
  /* И вращаем биты влево - в следующий раз загорится другой светодиод */
  rotateLeft(nomad);

  delay(1000 / 8); // пробегаем все 8 светодиодов за 1 секунду
}

Очень нужна помощь.

Заранее, благодарю!

Zhenyok13
Offline
Зарегистрирован: 25.08.2013

Честно, не знаю как удалить эту тему, просто проблема решилась сама собой, плохо пропаял саму микросхему) а так подключать сдвиговый регистр к меге 2560 надо по такой схеме: 14пин у регистра-51пин у меги; 12пин-любой пин на ардуине, но надо будет укать какой... и 11пин-52пин, вот и всё))