행렬을 입력,이다 행렬을 주도! 아두 이노와 함께 자신 만의 빛까지 발광 다이오드 표시를 만들기

하나의 주도 아두 이노 프로젝트를 테스트에 편리 할 수 있습니다. 당신이 주도 행렬을 추가 할 때,당신은 문자,숫자 및 기호를 철자,정말 창조적 얻을 수 있습니다. 그것은 또한 배울 수있는 편리한 방법입니다 어떻게 더 복잡한 디스플레이-당신이 읽고있는 것과 같은 온-작업. 이 가이드에서는,우리는 어떻게 기본 8,000,000 8 주도 매트릭스를 설정하는 방법을 보여 드리겠습니다.2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일,2015 년 12 월 1 일 이전 가이드에서,우리는 아두 이노가 하나의 주도 제어 할 수있는 방법을 보여 주었다. 이 구성 요소는 하나의 아두 이노로 모두 제어 할 수있는 64 개의 배열에 걸쳐 그 개념을 확장합니다.

회로를 완성하고 개별 조명을 활성화하기 위해 컬럼이 접지에 연결됩니다. 전원 및 접지선이 교차하는 경우,발광 다이오드가 활성화됩니다. 당신은 보드 게임 전함 같은 비트를 생각할 수 있습니다. 예를 들어,전력이 행으로 실행되면 ㅏ,비,및 씨,열 1 만 접지에 연결되어 있으면 표시등이 켜집니다. 나머지는 어두워 질 것입니다.

한 번에 여러 개의 디딜 방아를 켤 수 있는 편리한 방법이지만 열의 특정 디딜 방아를 켜려면 문제가 발생합니다. 대신,당신은 빛을 원했다,말 1,비 2,및 씨 3 대각선을 만드는 점등. 세 개의 행과 열을 모두 활성화하면 전체 그리드가 켜지는데,이는 우리가 원하는 것이 아닙니다.

이 문제를 해결하기 위해,아두 이노는 한 번에 하나의 행을 활성화 루프를 통해 실행할 수 있습니다. 이렇게 하면 다음 행에 영향을 주지 않고 원하는 만큼 열을 활성화할 수 있습니다. 긴 지연()기능이 없으면 행이 빠르게 연속적으로 활성화되어 사람의 눈이 알 수 없습니다. 그러나 우리는 당신이 어쨌든 어떻게 작동하는지 볼 수 있도록 지연을 추가하는 방법을 보여줍니다.

필요한 것

우리는 교육 목적을 위한 지도 모체를 통제하기 위하여 더 복잡한 방법을 사용하고 있습니다–다른 분대는 요구된 핀의 수를 감소시킬 수 있습니다–그래서 이것은 우리의 다른 가이드의 대부분 보다는 꽤 약간 핀 그리고 철사를 더 가지고 갈 것입니다. 이러한 이유로,우리는이 매트릭스를 제어하는 대신 일반적인 아두 이노 우노의 아두 이노 메가 2560 을 사용합니다. 또한 다음이 필요합니다:

아두 이노 메가 2560 아두 이노 메가 2560
8×8 1465>
8 아두 이노의 5 볼트 출력에 직접 연결하는 경우. [잡담]님들 님들[1] 8 220 옴 저항
한 쌍의 브레드 보드 한 쌍의 브레드 보드
아두 이노 아이데 아두 이노 아이데

당신은 또한 케이블과 꽤 많은 전선이 필요합니다–적어도 32!

이 프로젝트를 위한 배선을 편성하는 다수 방법이 있습니다,그러나 복잡해지기 수 있기 때문에,우리는 함께 걸쇠를 거는 브레드보드의 쌍,지도한 모체를 취급하기 위하여 1 개를,그리고 저항에 있는 배선을 위해 또 다른 한개를 사용하는 추천합니다. 조금 더 복잡할 수 있는 정지되는 대신에 측에 떨어져 앉더라도,지도한 모체에 달리는 여성 끝을 가진 철사를 사용해서 동일한 것을 달성하는 것이 가능합니다.

코드

이 프로젝트의 코드는 루프와 배열을 사용하여 각각 개별적으로 작성합니다. 결과는 당신의 지도한 모체가 표시하는 심상을 바꾸기 위하여 당신이 쉽게 변경할 수 있는 당신의 원본의 정상에 배열일 것입니다. 첫째,아두 이노 이데에 전체 코드를 붙여 아두 이노 메가에 업로드 할 수 있습니다.

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
38
39
40
41
42
43

int 표시= {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};
void setup(){
for(int i=2;i<=9;i++){
pinMode(i,출력);
pinMode(i+44,출력);
digitalWrite(i,저렴한);
digitalWrite(i+44,높);
}
pinMode(A0,입력);
}
void 루프(){
for(int i=0;i<8;i++){
경우(i==0) {
digitalWrite(9,낮);
}
else{
digitalWrite(i+1,낮);
}
for(int j=0;j<8 일;j++) {
경우(표시== 1) {
digitalWrite(j+46,저렴한);
}
이 문제를 해결하려면 다음을 수행하십시오.);
}
}
이 문제를 해결하는 방법은 다음과 같습니다.(1);
}
}

다음으로,이러한 각 섹션의 작동 방식을 살펴 보자.

1
2
3
4
5
6
7
8
9
10

토디스플레이= {
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0},
{1,0,0,0,0,0,1,0},
{1,0,0,0,0,0,0,0},
{1,1,1,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0},
{1,0,0,1,0,0,1,0}
};

스케치의 메인 루프 중 하나 전에,이 다차원 배열은 어떤 조명이 켜지고 어떤 어두워야 하는지를 정의합니다. 각 행에는 8 개의 값이 있습니다. 스케치의 그리드에 배치하여,그것은 쉽게 레드가 만들 것입니다 어떤 모양을 시각화 할 수 있습니다.

1
2
3
4
5
6
7
8
9

이 경우,나는 당신이 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있다고 생각하지 않습니다,나는 그것을 할 수 있습니다,나는 그것을 할 수 있습니다,나는 그것을 할 수 있습니다,나는 그것을 할 수 있습니다,나는 그것을 할 수 있습니다,나는 그것을 할 수 있습니다.44,높은);
}
핀모드(0,입력);
}

설정에서()섹션,우리는 우리가 매트릭스에 필요한 핀을 초기화합니다. 16 개의 다른 핀이 있기 때문에 한 번에 하나씩 더 효율적으로 수행 할 수 있습니다. 지상에 달리는 핀은 핀 2 에서 9 까지로 폐쇄될 것이다. 모체에 힘을 보내는 핀은 53 를 통해서 핀 46 에 달릴 것이다. 이 섹션에서는 루프를 사용하여 두 핀 세트를 모두 초기화합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

나는 내가 원하는 것을 할 수 있다고 생각하지 않는다.==0) {
디지털 쓰기(9,낮음);
}
다른{
디지털 쓰기(나는+1,낮음);
}
이 문제를 해결하려면 다음을 수행하십시오.== 1) {
디지털 쓰기(제이+46,낮음);
}
이 문제를 해결하려면 다음을 수행하십시오.);
}
}
이 문제를 해결하는 방법은 다음과 같습니다.(1);
}
}

스케치의 주 루프()섹션에는 하나의 다중 단계 루프가 있습니다. 첫 번째 명령문은 마지막으로 사용한 행을 낮음으로 재설정하여 전원이 흐르지 않도록 합니다.

루프에 대해 중첩 된 다음 배열의 데이터를 확인합니다. 셀이 1 로 표시되면 해당 열의 접지선을 낮게 설정하여 전류가 흐를 수 있습니다. 그렇지 않으면 그 열을 따라 완료되는 회로를 방지 할 수있는 높은 핀을 설정합니다. 그것은 주어진 행의 모든 여덟 셀에 대해이 작업을 수행 할 것입니다.

마지막으로 마지막 디지털 쓰기()문이 전체 행을 켭니다. 낮음으로 설정된 모든 열이 켜집니다. 나머지는 어두워 질 것입니다. 스케치가 다시 반복되면 해당 행을 꺼서 즉시 시작됩니다.

마지막 명령은 각 행 사이의 지연을 설정하는 지연()문입니다. 그것은 우리의 예에서 1 밀리 초로 설정되어 있기 때문에 문이 없을 때,디딜 방아가 조금 너무 희미 얻을. 그러나 지연 시간을 늘려 스케치가 더 느리게 수행되는지 확인할 수 있습니다. 다음 행이 켜질 때 끄기 전에 각 행이 한 번에 하나씩 켜지는 것을 볼 수 있습니다.

배선

이 프로젝트의 배선은 비교적 간단합니다. 많은 핀이 있기 때문에,우리는 당신이 우리가 보통 대로 각 개인적인 철사를 목록으로 만들기 보다는 오히려 각 완전한 회로를 위해 하고 싶은 무슨을 기술할 것입니다.

핀 2~9 는 전원 핀이어야하며 핀 46~53 은 접지 핀이어야합니다. 아두 이노에 핀에 다시 와이어를 실행 한 후 220 옴 저항에 주도 매트릭스에서,(이 중요하다 아래 핀에 대한 자세한 내용은 확인)전원 핀에서 와이어를 실행합니다. 핀 2 는 결국 핀 46 으로 이어지고 핀 3 은 핀 47 로 이어져야합니다.

여기서 주요 합병증은 주도 매트릭스 자체입니다. 직관에 반하여,행렬의 양쪽에있는 핀은 전혀 일관된 순서로하지 않습니다. 그러나 이것을 위한 핀은 지도한 모체의 정상에 좌측에서 제 4 핀 이다. 이 회로의 다른 쪽 끝(열 1 로 연결되어야 함)은 매트릭스 하단의 오른쪽에있는 첫 번째 핀입니다.

이 순서는 다소 복잡하기 때문에,우리는 각 아두 이노 핀이 직접에 배선해야하는 매트릭스에 핀 철자 것이다.

매트릭스 상단(숫자가 인쇄 된 측면)에는 8 개의 핀이 있습니다. 왼쪽에서 오른쪽으로,이 아두 이노에 다음과 같은 핀에 배선한다:

  • 핀 7
  • 핀 4
  • 핀 49
  • 핀 2
  • 핀 51
  • 핀 52
  • 핀 3
  • 핀 5

다음으로,행렬(숫자가없는 쪽)에 8 개의 핀의 맨 아래 행은 다음 핀(왼쪽에서 오른쪽으로,숫자가 여전히 위쪽으로 향함)에 연결되어야합니다.:

  • 핀 9
  • 핀 50
  • 핀 48
  • 핀 6
  • 핀 53
  • 핀 8
  • 핀 47
  • 핀 46

일단 모든 철사가 연결되면,당신은 당신의 프로젝트를 켤 수 있고 당신은 당신의 지도한 모체가 불이 켜지는 것을 볼 것입니다. 초기 배열에서 1 의 배열을 변경하고 스크립트를 다시 업로드하여 다른 모양을 만듭니다. 또한 지연()명령의 길이를 조정하여 각 행이 한 번에 하나씩 켜지도록 할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다.