마이크로 컨트롤러를 사용하여 7 Segement LED 그래픽을 구동하는 방법은 무엇입니까?
전자 제품의 세계에서 7 세그먼트 LED 그래픽은 단순하고 효율적인 방식으로 수치 및 일부 알파벳 정보를 표시하기위한 필수 요소입니다. 공급 업체로7 SEGEMENT LED 그래픽, 나는 간단한 디지털 시계에서 복잡한 산업 제어 패널에 이르기까지 다양한 응용 분야에서 이러한 구성 요소에 대한 수요가 증가하는 것을 목격했습니다. 이 블로그 게시물에서는 마이크로 컨트롤러를 사용하여 7 세그먼트 LED 그래픽을 구동하는 과정을 안내하며 7 세그먼트 LED의 기본 사항부터 프로그래밍 측면에 이르기까지 모든 것을 다룹니다.
7 세그먼트 LED 그래픽 이해
마이크로 컨트롤러로 7 세그먼트 LED 그래픽을 구동하는 세부 사항을 살펴보기 전에 이러한 디스플레이가 어떻게 작동하는지 이해하는 것이 필수적입니다. 7 세그먼트 LED 디스플레이는 숫자 0-9와 일부 문자를 형성하기 위해 특정 패턴으로 배열 된 7 개의 개별 LED로 구성됩니다. 세그먼트는 일반적으로 a, b, c, d, e, f 및 g로 표시되며 추가 소수점 (DP) 세그먼트가 때때로 포함됩니다.
7 세그먼트 LED 디스플레이의 두 가지 주요 유형이 있습니다 : 공통 캐소드 및 공통 양극. 공통 캐소드 디스플레이에서, 개별 LED의 모든 음극 단자는 함께 연결되어 접지되어 있으며, 공통 애노드 디스플레이에서는 모든 양극 단자가 서로 연결되어 양의 전압이 공급됩니다. 이 두 유형 중에서 선택한 것은 특정 응용 프로그램과 마이크로 컨트롤러의 출력 기능에 따라 다릅니다.
마이크로 컨트롤러 선택
7 세그먼트 LED 그래픽을 구동하는 첫 번째 단계는 적절한 마이크로 컨트롤러를 선택하는 것입니다. 시장에는 자체 기능과 기능 세트가있는 수많은 마이크로 컨트롤러가 있습니다. 7 세그먼트 LED를 운전하기위한 몇 가지 인기있는 선택에는 Arduino Uno, Raspberry Pi Pio 및 Atmega328p가 포함됩니다.
마이크로 컨트롤러를 선택할 때 다음 요소를 고려하십시오.
- I/O 핀: 마이크로 컨트롤러에 7 세그먼트 LED 디스플레이의 모든 세그먼트를 제어하기에 충분한 디지털 출력 핀이 있는지 확인하십시오. 단일 자릿수 디스플레이의 경우 최소 7 개의 핀이 필요합니다 (또는 소수점을 포함한 경우 8 개).
- 처리 전력: 7 세그먼트 LED 디스플레이를 구동하려면 고성능 마이크로 컨트롤러가 필요하지 않지만 추가 기능을 구현하거나보다 복잡한 작업을 수행하려는 경우 충분한 처리 능력을 갖추는 데 도움이 될 수 있습니다.
- 프로그래밍 언어: 친숙한 프로그래밍 언어를 지원하는 마이크로 컨트롤러를 선택하십시오. 예를 들어, Arduino는 단순화 된 C/C ++ 버전을 사용하여 초보자에게 쉽게 배우고 사용하기 쉽습니다.
회로 연결
마이크로 컨트롤러를 선택하면 다음 단계는 7 세그먼트 LED 디스플레이를 마이크로 컨트롤러에 연결하는 것입니다. 다음 단계는 공통 캐소드 7 세그먼트 LED 디스플레이를 Arduino UNO에 연결하기위한 일반적인 프로세스를 간략하게 설명합니다.
- 핀을 식별하십시오: 각 세그먼트 (A -G 및 DP) 및 공통 캐소드 핀에 해당하는 핀을 식별하기 위해 7 세그먼트 LED 디스플레이의 데이터 시트를 참조하십시오.
- 세그먼트를 연결하십시오: 각 세그먼트 (A -G 및 DP)를 LED를 통해 흐르는 전류를 제한하기 위해 적절한 저항을 사용하여 Arduino UNO의 디지털 출력 핀에 연결하십시오. 저항의 전형적인 값은 약 220-330 옴입니다.
- 공통 음극을 연결하십시오: 7 세그먼트 LED 디스플레이의 공통 음극 핀을 Arduino Uno의지면 (GND) 핀에 연결하십시오.
다음은 Arduino UNO와 Common Cathode 7 세그먼트 LED 디스플레이 사이의 연결을 보여주는 간단한 회로도입니다.
ARDUINO UNO 7 세그먼트 LED 디스플레이 디지털 핀 2 ------- 세그먼트 A 디지털 핀 3 ------- 세그먼트 B 디지털 핀 4 ------- 세그먼트 C 디지털 핀 5 ------- 세그먼트 D 디지털 핀 6 ------- 세그먼트 E 디지털 핀 7 ------- 세그먼트 F 디지털 핀 8 ------- 세그먼트 G 디지털 핀 9 ------- 사전 지점 (DP) GND ------------------------
마이크로 컨트롤러 프로그래밍
7 세그먼트 LED 디스플레이를 마이크로 컨트롤러에 연결 한 후 다음 단계는 디스플레이를 제어하는 프로그램을 작성하는 것입니다. 다음은 Arduino IDE로 작성된 프로그램의 간단한 예입니다. 공통 캐소드 7 세그먼트 LED 디스플레이에 숫자 0-9를 표시합니다.


// 각 세그먼트에 연결된 핀을 정의합니다. const int segmentpins [] = {2, 3, 4, 5, 6, 7, 8, 9}; // 각 숫자 (0-9) Const Byte Digitpatterns [] = {0B00111111, // 0B00000110, // 1 0B01011011, // 2 0B01001111, // 3 0B01100110, // 4 0B01101101, // 5 0B01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111까지까지의 패턴을 정의합니다. 0B01111111, // 8 0B0110111111 // 9}; void setup () {// 모든 세그먼트 핀을 (int i = 0; i <8; i ++)의 출력으로 설정합니다 (pinmode (segmentpins [i], output); }} void loop () {// 각 숫자는 0에서 9로 표시됩니다. 지연 (1000); }} void displayDigit (int digit) {byte pattern = digitpatterns [digit]; for (int i = 0; i <7; i ++) {digitalWrite (segmentPins [i], bitread (패턴, i)); } // 소수점 포인트 DigitalWrite (segmentpins [7], Low)를 끄십시오. }
이 프로그램에서는 먼저 7 세그먼트 LED 디스플레이의 각 세그먼트에 연결된 핀과 각 숫자에 대한 패턴 (0-9)을 정의합니다. 에서설정()함수, 모든 세그먼트 핀을 출력으로 설정합니다. 에서고리()기능, 우리는 각 숫자를 통해 0에서 9까지 반복하고displayDigit ()기능 7 세그먼트 LED 디스플레이의 숫자를 표시하는 기능. 그만큼displayDigit ()함수는 숫자를 나타내는 정수를 표시하고 숫자 패턴에 따라 적절한 핀을 높거나 낮게 설정합니다.
여러 자리를 구동합니다
7 세그먼트 LED 디스플레이를 사용하여 여러 자리를 표시 해야하는 경우 멀티플렉싱이라는 기술을 사용할 수 있습니다. 멀티플렉싱은 인간의 눈이 모든 숫자가 동시에 조명되는 것으로 인식하도록 고주파수에서 숫자를 빠르게 전환하는 것을 포함합니다.
멀티플렉싱을 구현하려면 마이크로 컨트롤러에서 추가 핀을 사용하여 각 자리의 공통 음극 또는 양극 핀을 제어해야합니다. 예를 들어, 운전하려는 경우 a3 자리 7 세그먼트 LED디스플레이, 각 숫자의 공통 음극 또는 양극 핀을 제어하려면 3 개의 추가 핀이 필요합니다.
다음은 멀티플렉싱을 사용하여 3 자리 공통 캐소드 7 세그먼트 LED 디스플레이를 구동하기위한 이전 프로그램의 수정 된 버전입니다.
// 각 세그먼트에 연결된 핀을 정의합니다. const int segmentpins [] = {2, 3, 4, 5, 6, 7, 8, 9}; // 각 숫자의 공통 음극에 연결된 핀을 정의합니다. const int digitpins [] = {10, 11, 12}; // 각 숫자 (0-9) Const Byte Digitpatterns [] = {0B00111111, // 0B00000110, // 1 0B01011011, // 2 0B01001111, // 3 0B01100110, // 4 0B01101101, // 5 0B01111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111까지까지의 패턴을 정의합니다. 0B01111111, // 8 0B0110111111 // 9}; void setup () {// 모든 세그먼트 핀을 (int i = 0; i <8; i ++)의 출력으로 설정합니다 (pinmode (segmentpins [i], output); } // 모든 숫자 핀을 (int i = 0; i <3; i ++)의 출력으로 설정합니다 (pinmode (digitpins [i], output); }} void loop () {// 숫자 표시 123 int Digits [] = {1, 2, 3}; for (int digitindex = 0; digitindex <3; digitindex ++) {displayDigit (digits [digitindex], digitindex); 지연 (2); // 멀티플렉싱 속도를 제어하도록 지연을 조정}} void displayDigit (int digit, int digitindex) {// (int i = 0; i <3; i ++)의 모든 숫자를 끄십시오 (DigitalWrite (digitpins [i], high); } 바이트 패턴 = DigitPatterns [Digit]; for (int i = 0; i <7; i ++) {digitalWrite (segmentPins [i], bitread (패턴, i)); } // 소수점 포인트 DigitalWrite (segmentpins [7], Low)를 끄십시오. // 선택한 숫자 DigitalWrite (digitpins [digitindex], low)를 켭니다. }
이 프로그램에서는 핀 배열을 추가합니다 (Digitpin) 각 숫자의 공통 음극 핀을 제어합니다. 에서고리()기능, 우리는 각 숫자를 통해 반복하고 호출합니다displayDigit ()해당 숫자 위치에 숫자를 표시하는 기능. 그만큼displayDigit ()함수는 먼저 모든 숫자를 끄고 숫자 패턴에 따라 적절한 세그먼트 핀을 설정하고 마지막으로 선택한 숫자를 켭니다.
결론
마이크로 컨트롤러를 사용하여 7 세그먼트 LED 그래픽 드라이브는 올바른 구성 요소와 프로그래밍 기술로 쉽게 달성 할 수있는 비교적 간단한 프로세스입니다. 이 블로그 게시물에 요약 된 단계를 따르면 7 세그먼트 LED 디스플레이를 마이크로 컨트롤러에 연결하고 수치 정보를 표시 할 수 있어야합니다.
고품질 구매에 관심이있는 경우7 SEGEMENT LED 그래픽,,,3 자리 7 세그먼트 LED, 또는4 자리 7 세그먼트 LED디스플레이, 자세한 내용은 저희에게 연락하고 특정 요구 사항에 대해 논의하십시오. 우리는 고객에게 경쟁력있는 가격으로 최고의 제품 및 서비스를 제공하기 위해 노력하고 있습니다.
참조
- Arduino 문서 : https://www.arduino.cc/reference/en/
- 7 세그먼트 LED 디스플레이 데이터 시트 : 다양한 제조업체 웹 사이트
