STONE 직렬 터치 스크린 디스플레이
STONE 직렬 터치 스크린은 토목, 의료, 정밀 측정 기기 및 기타 분야를 포괄하는 광범위한 용도를 가지고 있습니다. 이제 5인치를 사용하겠습니다. STONE 간단한 전자 저울을 만드는 직렬 HMI 화면.
다음 모듈이 필요합니다
- STONE STVC050WT-01 터치 스크린 직렬 포트 디스플레이 모듈
- STM32F103RC 개발 보드
- 압력 획득 모듈
- ADC 변환 모듈
하드웨어 연결 블록 다이어그램은 다음과 같습니다.
당사의 모든 하드웨어 모듈은 이 블록 다이어그램의 연결 원리에 따라 연결됩니다.
표시되는 내용은 다음과 같습니다.
- 트레이에 현재 올려져 있는 물건의 무게를 표시합니다. STONE 디스플레이 모듈.
- 사용자는 필링, 단위 변경 및 영점 조정의 세 가지 작업을 수행할 수 있습니다.
온라인몰에서 구매한 전자저울 모듈
주로 두 부분으로 나뉘며 그 중 하나는 HX711 준 교체 모듈입니다.
하나는 압력 센서 모듈입니다.
이 두 부분을 연결한 후의 효과는 다음 그림을 참조하십시오. 다른 팔레트를 추가했습니다.
STONE STVI050WT-01 디스플레이 모듈 설명
이 프로젝트에서는 터치 스크린 직렬 포트 디스플레이를 사용했습니다. STONE 사용자 인터페이스로 STVC050WT-01.
이 STONE 디스플레이는 드라이버 칩과 통합되었으며 상위 컴퓨터는 사용자가 사용할 수 있으며 사용자는 컴퓨터를 통해 UI 이미지를 디자인하여 버튼, 텍스트 상자를 추가한 다음 구성 파일을 생성하여 디스플레이 화면에 다운로드할 수 있습니다.
STVC050WT-01의 디스플레이 화면은 UART-TTL 신호를 통해 MCU와 통신하고 STM32 MCU의 UART도 TTL 로직 레벨에 있으므로 STONE 디스플레이 화면과 STM32는 UART와 직접 통신할 수 있습니다.
또한 공식 홈페이지에서는 STONE 또한 uart-232 로직 레벨을 지원하는 직렬 터치 디스플레이도 판매합니다. uart-232를 지원하는 디스플레이 화면을 사용할 때 로직 레벨 변환을 수행하기 위해 MAX232 칩만 추가하면 SCM과 통신할 수 있습니다.
MAX3232를 사용하는 방법을 잘 모르는 경우 다음 그림을 참조하십시오.
레벨 변환이 너무 번거로운 경우 다른 유형의 표시 화면을 사용할 수 있습니다. 일부 모델은 uart-ttl 신호를 직접 출력할 수 있습니다.
웹사이트에는 자세한 정보와 소개가 있습니다: https://www.stonetech.com/
동영상 튜토리얼 및 튜토리얼을 사용하고 싶다면 공식 웹사이트를 다운로드할 수도 있습니다.
개발에 필요한 것 STONE 터치 스크린 직렬 포트 디스플레이 모듈?
의 개발에는 세 가지 주요 단계가 있습니다. STONE 디스플레이 모듈:
- 사용 STONE TOOL 소프트웨어는 디스플레이 로직 및 버튼 로직을 설계하고 설계 파일을 디스플레이 모듈에 다운로드합니다.
- MCU는 다음과 통신합니다. STONE 직렬 포트를 통한 LCD 디스플레이 모듈.
- 2단계에서 얻은 데이터로 MCU는 다른 작업을 수행합니다.
물론 전제 조건 중 하나는 일반적으로 JPEG 형식의 멋진 UI 인터페이스 세트를 디자인하는 것입니다.
위의 세 단계에서 PC에 여러 소프트웨어를 설치해야 합니다.
- STONE 도구2019
- Photoshop 또는 기타 그래픽 소프트웨어
사용 STONE 도구 소프트웨어
최신 버전의 STONE 공식 웹사이트(현재 TOOL2019)에서 TOOL 소프트웨어를 다운로드하여 설치합니다.
소프트웨어 설치가 완료되면 다음 인터페이스가 열립니다.
왼쪽 상단 모서리에 있는 "파일" 버튼을 클릭하면 나중에 설명할 새 프로젝트가 생성됩니다.
Photoshop은 주로 UI 인터페이스를 만드는 데 사용됩니다. 에서 STONE 터치 스크린 직렬 포트 디스플레이에서 모든 사용자 인터페이스는 로드되어 그림의 형태로 표시되는 반면 문자는 화면에 내장된 글꼴입니다.
이용 방법 STONE 도구 소프트웨어?
먼저 Photoshop으로 UI 인터페이스 세트를 디자인해야 합니다. 다음 인터페이스는 Photoshop으로 디자인한 매우 간단한 UI 그림입니다.
첫 번째 그림은 기본 디스플레이 인터페이스입니다. 사용자가 사진을 다운로드한 후 STONE 직렬 터치 스크린 디스플레이의 경우 전원이 공급된 후에도 화면에 계속 그림이 표시됩니다. 그림에는 텍스트 표시 상자와 세 개의 버튼이 있습니다. TOOL 2019 소프트웨어는 어떤 데이터가 STONE 버튼을 누르면 화면이 직렬 포트를 통해 전송됩니다.
동일한 TOOL2019 소프트웨어를 사용하여 텍스트 표시 상자가 표시되는 방식을 구성할 수도 있습니다.
이 프로젝트에서 "Peeled" 버튼을 누르면, STONE 화면은 UART를 통해 STM32 MCU에 명령을 보냅니다. STM32 마이크로컨트롤러 지시를 받은 후 현재 값에 수집된 압력 센서를 무시합니다.
"Clear" 버튼은 Clear 기능이고 "Unit" 버튼은 표시 단위를 전환하는 기능입니다.
TOOL 2019 소프트웨어에서 UI 로직 설계
이미지를 표시하도록 UI를 디자인했으면 JPG로 저장합니다.
열기 STONE TOOL2019 소프트웨어 및 새 항목 생성:
새 프로젝트가 기본적으로 로드하는 이미지를 삭제한 다음 자체 UI 이미지를 추가합니다.
방금 디자인한 두 개의 UI 이미지가 이미 로드된 것을 볼 수 있습니다.
디자인 버튼 로직
구성 요소는 버튼 구성 요소를 화살표로 표시하고 이를 Peeled 영역에 추가하며 구성 요소 속성과 관련된 속성은 다음과 같습니다.
X 좌표: X는 전체 UI에서 구성 요소의 위치를 조정합니다.
Y 좌표: 전체 UI 인터페이스에서 구성 요소의 y 방향 위치
너비 및 높이: 구성 요소의 너비와 길이
움직이는 자물쇠: 자위
이름 정의: 구성 요소의 이름
버튼 효과: 버튼이 눌렸을 때의 효과
페이지 전환: 버튼을 눌러 다음 페이지로 전환하거나 없는 경우 null
오디오 파일 : 버튼을 눌렀을 때 재생할 오디오 파일
가변 메모리 주소: 디스플레이에서 구성 요소의 주소
나는 주로 두 곳을 바꿨다.
이 변경 후에는 버튼을 눌렀을 때 버튼의 효과가 "1_effect" 페이지의 효과가 된 다음 STONE 화면은 터치 스크린 직렬 포트를 통해 MCU에 "000A"를 보냅니다.
다른 두 버튼도 비슷한 방식으로 추가됩니다.
데이터 텍스트 구성 요소 추가
총 XNUMX개의 데이터 세트, 즉 전자 저울의 중량 데이터와 단위만 표시하면 됩니다.
이 두 데이터는 숫자와 문자이므로 별도로 표시해야 합니다.
오른쪽의 “속성 설정”은 컴포넌트의 속성 설정으로 컴포넌트의 위치, 크기, 이름, 초기값, 데이터 길이, 컴포넌트 주소 등을 설정합니다.
여기서 설명해야 할 것은 컴포넌트 주소입니다. 각 구성 요소에는 독립 구성 요소 주소가 있습니다. 그림에 표시된 컴포넌트 주소는 0x0133입니다.
이것은 구성 요소 주소에 의해 결정됩니다.
시뮬레이션 실행
프로필 생성을 클릭하고 실행을 시뮬레이션하여 효과를 확인합니다.
빨간색 영역은 버튼을 누른 효과입니다.
UART 전송 속도 수정 STONE 직렬 터치 스크린 디스플레이
디스플레이는 다음 인터페이스에서 UART 전송 속도 수정을 지원합니다.
최대 전송 속도는 921600이고 이 경우 115200을 사용하고 있습니다.
전송 속도를 수정하는 것은 실제로 레지스터 R1, R5 및 R9의 값을 수정하는 것입니다. STONE 직렬 터치 스크린 디스플레이 모듈:
R1이 0x00-0x10이면 R5와 R9는 유효하지 않습니다.
R1이 0x11과 같을 때 전송 속도는 R5와 R9에 의해 결정됩니다.
구성 파일을 생성하고 다운로드하십시오. STONE 화면을 표시합니다.
위의 UI 인터페이스 디자인이 완료되면 구성 파일을 생성한 다음 STVC050WT-01 디스플레이 모듈에 다운로드할 수 있습니다. 작업의 이 부분은 개발 자료에 설명되어 있습니다. STONE.
1단계를 실행하고 USB 드라이브를 컴퓨터에 삽입하면 디스크가 표시됩니다. 그런 다음 "u-disk에 다운로드"를 눌러 구성 파일을 USB 드라이브에 다운로드하고 USB 드라이브를 USB 드라이브에 삽입합니다. STVC050WT-01 업그레이드를 완료합니다.
그런 다음 온라인으로 다운로드를 클릭하고 프롬프트에 따라 구성 파일을 업데이트하십시오. STONE 디스플레이 모듈.
구성 파일을 다운로드한 후 STONE 직렬 터치 디스플레이, 우리는 STM32 MCU 프로그래밍을 시작할 수 있습니다.
여기에 여러 구성 요소의 주소를 기록합니다.
텍스트 값 표시 주소: 0x000d
단위 값 표시 주소: 0x000e
벗겨진 버튼 주소: 0 x000a
"지우기" 버튼 주소: 0x000b
"단위" 버튼 주소: 0x000c
HX711 모듈
간단한 소개
HX711은 고정밀 전자 저울용으로 설계된 24비트 A/D 변환기 칩입니다. 압력 센서는 실제로 STM711 수집에서 저항 값 변경이며 마지막으로 HX32 수집 변환에 의해 변경됩니다.
이 프로젝트에서는 HX711의 출력 데이터가 무엇인지, HX711에서 STM32까지의 데이터를 수집하는 방법만 알면 됩니다.
HX711 모듈에는 XNUMX개의 인터페이스가 있습니다.
1, VCC
2, 접지
프로그래밍 원칙의 이 부분은 다음 STM32 프로그래밍에 반영됩니다.
하드웨어 원리
HX711 모듈의 개략도는 다음과 같습니다.
왼쪽에는 711개의 저항으로 구성된 브리지 센서가 있습니다. 다른 물체의 무게는 해당 저항 값을 변경하고 HXXNUMX을 통해 실제 무게로 변환할 수 있습니다.
51 MCU에서 Proteus 소프트웨어는 시뮬레이션에 사용할 수 있습니다.
STM32F103RCT6
여기서 우리에게 아주 익숙한 STM32 SCM은 너무 많은 소개를 하지 않는 것입니다.
다음은 내가 사용한 STM32 개발 보드입니다.
애플리케이션 아키텍처
주요 코드는 다음과 같습니다.
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "hx711.h"
#define KEY_PEELED 0x0a
#define KEY_CLEAR 0x0b
#define KEY_UINT 0x0c
#define DISPLYER_ADDR0 0x0d
#define DISPLYER_ADDR1 0x0e
extern u8 USART_RX_END;
u8 data_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, 0x00, 0x00,0x00};
void UART1_Send_Array(u8 *send_array,unsigned char num)
{
u8 i=0;
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
while(i<num)< span=""></num)<>
{
USART_SendData(USART1,send_array[i]);
while( USART_GetFlagStatus(USART1,USART_FLAG_TC)!= SET);
i++;
}
}
int main(void)
{
int cm,peeled;
u16 time=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200); //UART INIT
ADInit();//HX711 INIT
delay_ms(1000);
while(1)
{
delay_ms(5);
time++;
if(time>=60)
{
cm=11270-Get_Weight();//»ñȡʵÎïÖØÁ¿
//if(cm<=0)cm=0;
if(peeled)
{
cm=cm-peeled;
}
time=0;
data_send[5]=DISPLYER_ADDR0;
data_send[6] = cm >> 8;//hight
data_send[7] = cm & 0x00ff;//low
UART1_Send_Array(data_send,8); //Send display data
}
if(USART_RX_END)
{
switch (USART_RX_BUF[5])
{
case KEY_PEELED:
peeled=cm;
break;
case KEY_CLEAR:
peeled=0;
break;
case KEY_UINT:
break;
default:
USART_RX_END=0;
USART_RX_STA=0;
break;
}
USART_RX_END=0;
USART_RX_STA=0;
}
}
}
STONE UART 데이터 형식 설명 표시
다음 명령은 데이터 저장 영역의 주소 00x04에 0 0020를 쓰는 것을 의미합니다.
0xA5 0x5A 0x05 0x82 0x01 0x33 0x00 0x04
0xA55A: 데이터 프레임 헤더
0x05: 0x82에서 시작하는 유효한 데이터의 길이
0x82: 레지스터 쓰기 명령
0x0133: 메모리 주소 쓰기
0x0004: 쓸 데이터
Arduino에서 간단히 프로그래밍하고 이 형식의 데이터를 STONE 데이터 표시를 완료하는 직렬 터치 디스플레이 모듈.
사용자가 터치 스크린 직렬 포트 디스플레이의 버튼을 누르면 STM32는 8바이트의 데이터를 수신합니다. 사용자가 어떤 버튼을 눌렀는지 결정하기 위해 데이터의 다섯 번째 바이트만 결정하고 MCU가 해당 작업을 수행하도록 코드를 작성하면 됩니다.