정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

이 회로도의 74HC595의 역할과 아두이노 핀에 대해 이해가 안가네요 ㅠㅠ
이현우 | 2015-08-11

 

1) 여기서 아두이노의 Data pin 74HC595의 14번핀으로 들어가는 이유는 설계자가 아두이노에서 스케치한 데이터를 입력하기 위함인거죠?

2) Clock에서 나와서 74HC595의 11번 핀으로 들어가는 이유는 코코아팹 튜토리얼 게시판(?)에 포스팅된 글에서 봤었는데 "규칙적인, 정확한 데이터를 전달하기 위해서는 클럭을 공급하여 동기화를 해주어야 합니다" 라고 쓰여있더라구요. 근데 그 이유가 여기서 11번 핀으로 들어가는 그 이유와 동일한 것인지 잘 몰라서 맞는지 확인차 여쭤볼게요 ;

3) Latch는 데이터를 잡아주는(일종의 저장) 역할이라서 12번 핀에 들어간 것 같긴 한데...

왜 저렇게 연결하였는지 아두이노와 74hc595에 대해 설명해주시면 정말 감사하겠습니다. ㅠㅠ

 


"아두이노 스케치 코드"

int dataPin = 13;
int latchPin = 12;
int clockPin = 11;   // 이렇게 전역변수로 선언해주었습니다.


long previousMillis = 0;  // Delay 보조


int analogOut = 10;         // 밝기조절용 PWM
int level[4] = {5,4,3,2};          // 2 : 1st, 3 : 2nd, 4 : 3rd, 5 : 4th floor
int value = 0;    // LED 임시 변수
int value2 = 0;    // LED 임시 변수2

void setup(){
  pinMode(dataPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  analogWrite(analogOut,0);  // 74HC595 /OE=LOW는 Active 
  Serial.begin(9600);

void loop(){
  //ani_indi();
  ani_test();
  /*ani_col_con();
  ani_row_con();
  ani_hight_con();
  for(int i=0;i<5;i++){
    bright_con();
   i++;
  }
  cross_con(); 
  for(int i=0;i<10;i++){
    rotary1_con();
    i++;
  }
  for(int i=0;i<10;i++){
    rotary2_con();
    i++;
  }
  char_con();*/
}

void writeOutput(){     // 74HC595 데이터 입력
  digitalWrite(latchPin, LOW);    // 각 애니메이션들의 배열에서 받은 값을
  shiftOut(dataPin, clockPin, MSBFIRST, value);         // shiftOut 함수로 74HC595에 시리얼 입력
  shiftOut(dataPin, clockPin, MSBFIRST, value2); // value 는 1~8번핀의 값
  digitalWrite(latchPin,HIGH);    // value2는 9~16번핀의 값
}

 

//=----------------------

 

ㅇ이렇게 LED를 여러개 연결시켜서 원하는 모양을 내고 싶은데, 회로적인 부분에서 이해가 잘 안가서요.. ;;

 

이전글   |    센서 측정값을 sd카드에 저장하는 방법 2015-08-11
다음글   |    블루투스를 이용한 모터제어 질문 드립니다.... 2015-08-12