달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2016. 2. 8. 22:56

74HC595 hello world! 아두이노/출력2016. 2. 8. 22:56

우노는 I/O핀이 총 20개인데 74HC595를 사용하면 핀 3개를 이용해서 사용할 포트를 거의 무한대로 늘릴 수 있다!!!

74HC595는 시프트 레지스터 중 하나인 직렬 입력/병렬 출력 시프트 레지스터에여.

칩 하나당 데이터 핀1에 8개의 출력을 병렬로 낼 수 있다는 것이죠!

그 원리는 테블렛을 산 기념으로 동영상으로 설명 ㅋㅋ

회로:

 

ST_CP에 1uF 커패시터가 GND와 연결되어 있는데, 이게 없으면 업로드 할 때, LED가 다 꺼진다.

즉, 업로드 전 LED상태 -> LED다 꺼짐-> 업로드한 LED상태로 ...

별 문제는 아니지만 왜 이런 현상이 일어나는지는 잘 모르겠다.

1uF을 붙여주면 업로드 전 LED상태 -> 업로드한 LED상태로 정상적으로 넘어간다.

 

 

이미지 뽑기:

http://www.georgegardner.info/electronics/arduino/easy-font-creation-for-led-matrix-from-truetype-system-fonts.html

이 사이트에서 글 읽다가 엄청난 프로그램 발견!!
http://www.mikroe.com/glcd-font-creator/#/ GLCD font creator라는 무료 프로그램이다.
이 프로그램은 이용하면 원하는 이미지를 내가 그리면 자동으로 16진수로 나온다.
원래는 노가다로 해야됨... ㅋㅋ
예를 들어 파일->뉴폰트->뉴를 클릿해서 내가 다음과 같은 이미지를 그리면~

 

 

그리고 파일->뉴폰트->임폴트를 누르고 mikro C를 누르면 아래와 같이 16진수가 나옴

 

 

 

코드:

위에서 설명한 595의 원리를 이용해서 다음 이미지를 순차적으로 한줄로 나오게 해봤다.

그러므로 만든 것을 좌우로 빠르게 흔들면 다음과 같은 이미지를 볼 수 있을 것이다.

이것은 POV 즉, 잔상효과의 기본 원리가 되죵

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
const int DS = 2;
const int SH_CP = 3;
const int ST_CP = 4;
int image[]={0x08, 0x18, 0x3C, 0x7E, 0xFF, 0x7E, 0x3C, 0x18};
 
void setup()
{
  pinMode(DS, OUTPUT);
  pinMode(SH_CP, OUTPUT);
  pinMode(ST_CP, OUTPUT);
}
 
void loop()
{
  for(int i=0; i<8; i++){
  update74595(image[i]);
  delay(500);
  }
}
 
void update74595(int data)
{
  digitalWrite(ST_CP, LOW);
  shiftData(DS, SH_CP, data);
  digitalWrite(ST_CP, HIGH);//rising edge on storage register
}
 
void shiftData(int DS, int SH_CP, int data)
{
  for(int i=7; i>=0; i--)
  {
    digitalWrite(SH_CP, LOW);
    boolean oneBit = bitRead(data, i);
    digitalWrite(DS, oneBit);
    digitalWrite(SH_CP, HIGH);//rising edge on shift register
  }
}

 

 

 

:
Posted by youjin.A