Proteus에서 주도하는 Arduino 구동 도트 매트릭스 스크린 매트릭스 시뮬레이션

우리 모두는 일정 기간 동안 하나의 디지털 튜브에만 불을 붙이면 문제가 없다는 것을 알고 있습니다. 그러나 여러 디지털 튜브에 불을 붙이면 문제가 발생할 것입니다. 왜냐하면 여러 디지털 튜브가 동일한 포트를 사용하여 각 세그먼트를 제어하기 때문입니다. 디지털 튜브가 켜지고 꺼집니다. 따라서 매우 중요한 방법이 사용될 것입니다.네, 이 방법은 시각 지속성(인간의 시각 지속성은 0.05~0.2초), 즉 사람들이 여러 개의 디지털 튜브를 동시에 볼 수 있도록 하는 데 사용할 수 있습니다. .

이러한 시각적 지속성 방법을 익히기 위해 당사의 LED 도트 매트릭스 스크린을 칼럼으로 사용하여 이 방법의 사용을 소개합니다.

기사 출처: https://blog.csdn.net/haigear/article/details/131524893

어떤 어린이들은 도트 매트릭스 화면의 사용에 익숙하지 않을 수 있으므로, 도트 매트릭스 화면이 어떻게 다양한 패턴과 그래픽을 표시하는지 이해하기 위해 도트 매트릭스 화면의 일반적인 사용부터 시작하겠습니다.

1. 도트 매트릭스 스크린의 배선 방법

1. 라이트업 방법

먼저 아래와 같이 장치 라이브러리에서 행렬-8x8-Green을 찾습니다. 여기서 특히 주의해야 할 두 가지 사항은
1. 위쪽 부분이 제어 행이고 아래쪽 부분이 제어 열입니다
. 행은 음극(GND)에 연결되어야 하며 열은 ( POWER) 양극에 연결되어야 합니다
여기에 이미지 설명을 삽입하세요.
. 그러면 세 번째 행의 두 번째와 세 번째 열이 성공적으로 점등되는 것을 발견했습니다.
이처럼 nxm 배열을 켜기만 하면 매우 쉽습니다. 양극과 음극은 아래와 같이 n행과 m열에 각각 연결됩니다(4x3 배열).
여기에 이미지 설명을 삽입하세요.

2. 그래픽을 표시하는 당혹감

하지만 숫자 "0"의 가장 단순한 그래픽이라도 그래픽을 표시하고 싶다면 그렇게 할 수 있는 방법이 없을 것 같습니다. 아래 그림과 같이 중간 지점만 제거하면 충분할 것 같습니다.
여기에 이미지 설명을 삽입하세요.
이 디스플레이는 어떻게 구현됩니까? 아주 간단하게 말씀드리자면, 위의 그림은 PS에서 합성한 것이며 위의 배선으로는 구현할 수 없습니다.
그렇다면 어떻게 이를 달성할 수 있을까요? ? 그런 다음 기사 시작 부분에서 언급한 시각적 지속성 방법을 사용해야 합니다.

2. 그래픽 디스플레이 구현

1. 그래픽 디스플레이 구현 원리

표시해야 하는 그래픽을 실현하는 방법은 시각적 지속성을 사용하는 것, 즉 매우 짧은 시간(최소 0.2초)에 한 번 조명해야 하는 모든 지점을 조명하는 것뿐입니다. 불이 켜지는지 여부에 관계없이 순서가 어떻든 불을 켜면 인간의 눈은 자연스럽게 이 지점이 켜진 것을 느낄 것입니다. 물론, 원하는 효과를 얻기 위해 최소한 0.2초마다 다시 켜집니다.

2. 간단한 그래픽 구현

시각적 지속 시간 내에 온-오프 제어를 구현하려면 마이크로컨트롤러로 제어해야 하는데 여기서는 Arduino를 사용하여 제어합니다. 여기에 사용된 칩은 여전히 ​​328p입니다. 문제는 도트 매트릭스 화면에 8x2 포트가 필요하므로 여기서는 Arduino의 아날로그 포트를 사용해야 합니다. 그렇지 않으면 13개의 디지털 포트가 요구 사항을 충족할 수 없습니다. 회로 연결은 다음과 같습니다.

여기에 이미지 설명을 삽입하세요.
실행 효과:

여기에 이미지 설명을 삽입하세요.

3. 코드 구현

int row[10]={
    
    2,2,2,3,4,5,5,5,4,3};
int col[10]={
    
    2,3,4,4,4,4,3,2,2,2};

void setup () {
    
    

// TODO: put your setup code here, to run once:
	for(int r=0;r<8;r++)
	{
    
    
	pinMode(r,OUTPUT);
	digitalWrite(r,1);
	}

	for(int c=8;c<16;c++)
	{
    
    
	pinMode(c,OUTPUT);
	digitalWrite(c,0);
	}

}

void loop() {
    
    

// TODO: put your main code here, to run repeatedly:

for(int i=0 ;i<10;i++)
{
    
    
	digitalWrite(row[i],0);
	digitalWrite(col[i]+7,1);
    delay(0.2);
    digitalWrite(row[i],1);
	digitalWrite(col[i]+7,0);
}

}

위의 방법으로 구현한 그래픽은 아이디어는 간단하지만 작동 시 그래픽의 핀 코드를 얻는 것이 상당히 번거롭고 그래픽을 변경하려면 배열을 사용하여 양극 핀과 음극 핀을 하나씩 설명해야 합니다.
모두 나중에 계속 소개하고 코드 생성기를 사용하여 문제를 해결한 다음 핀을 절약하기 위해 max7219 칩을 사용하여 스캐닝을 구현하는 것을 고려할 수 있습니다.

관심있는 어린이신발은 계속해서 따라오시면 됩니다
.제작이 쉽지 않습니다.재인쇄시 출처를 밝혀주세요.글출처 : https://blog.csdn.net/haigear/article/details/131524893

추천

출처blog.csdn.net/haigear/article/details/131524893