제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
개요
TFT LCD에 전문적으로 데이터를 그래프로 표시하고 싶었던 적이 있습니까? 하지만 문제가 있습니다. 모든 계산이 포함되기 때문에 그래프를 만드는 것이 특히 어렵습니다.
이 프로젝트는 어깨에서 모든 스트레스를 덜어주고 단 몇 초 만에 원하는 모든 것을 그래프로 표시하여 자신만의 개인화된 기록 그래프를 만들 수 있도록 하는 것을 목표로 합니다. 5개의 변수를 수정하기만 하면 됩니다.
동영상
이미지
기능
이 프로젝트는 모든 사람이 그래프를 쉽고 재미있게 만드는 것을 목표로 하고 모든 어려운 계산이 완료되었으며 사용자는 2개의 변수를 편집하고 그래프의 색상을 선택하기만 하면 됩니다. 다음은 그래프의 다양성을 보여주는 몇 가지 예입니다.
그림> 그림> 그림> 그림>그래프는 6초 간격으로 온도를 표시하고 값은 점으로 표시되며 점은 선으로 다른 점에 연결됩니다. 코드 시작 이후 경과된 초는 x축에 표시되고 값의 범위는 y축에 표시됩니다.
프로젝트는 간단하게 작동합니다. Arduino Mega는 DHT 11 센서의 값을 읽고 온도를 변수에 저장한 다음 사용자 정의 그래프에 값을 그래프로 표시합니다. 다음은 기능 개요를 보여주는 다이어그램입니다.
다음은 프로젝트의 코드 개요를 보여주는 이미지입니다.
<울>온도 읽기
센서에서 온도를 읽습니다.데이터 처리
센서 판독값을 처리하고 그래프에 매핑합니다.그래프 데이터
매핑된 값을 그래프에 표시합니다.이 프로젝트를 진행하기 위해 알아야 할 것은 TFT LCD에서 사물이 어떻게 배치되는지에 대한 폭넓은 이해입니다. 이에 대한 설명은 아래에 있습니다.
저는 전체 LCD를 캔버스라고 부릅니다. 여기에서 모든 것이 그려지고 모든 TFT LCD 라이브러리가 매우 유사하게 작동하므로 이 코드의 기능은 다른 라이브러리에서도 작동해야 합니다. 아래는 TFT LCD에 그려지는 사각형(사각형)의 스케치입니다.
이 스케치에서는 직사각형이 그려지고 각 점에 레이블이 지정되며 직사각형을 그리는 데 사용되는 코드 행은 다음과 같습니다.
tft.fillRect(originX, originY, sizeX, sizeY, Color);
<울> originX
위 그림에서 'z'로 표시한 부분은 화면 오른쪽에서 도형까지의 거리입니다.원산지
스케치에서 'x'로 표시되며 화면 상단에서 모양까지의 거리입니다.크기X
x축의 모양 크기이며 모양의 길이입니다.크기Y
는 y축의 모양 크기이며 모양의 높이입니다.
혜택
사용자 운영 이 프로젝트 할 이점 위치:
<울>
프로젝트 구성
단계 1: 필수 장치
이 프로젝트는 DHT 11 온도 및 습도 센서를 사용하여 온도 데이터를 수신하지만 모든 센서를 사용할 수 있습니다. 센서 변경은 아래에서 더 설명하겠습니다.
<울>단계 2: 연결 회로
다음은 프로젝트의 개략도입니다. DHT 11 센서를 Arduino Mega에 연결하기만 하면 됩니다.
3단계:코드 승인
코드에는 3가지 주요 부분이 있습니다.
<울>이 섹션은 아래에 설명되어 있습니다.
<울>// 제목 그리기 tft.setCursor(10, 10); // 커서 설정 tft.setTextColor(BLUE); // 텍스트의 색상을 설정합니다. tft.setTextSize(4); // 텍스트 크기 설정 tft.println(graphName); // 외곽선 그리기 tft.drawLine(originX, originY, (originX + sizeX), originY, graphColor); tft.drawLine(originX, originY, originX, (originY - sizeY), graphColor); // 레이블 그리기 for(int i =0; i
코드의 이 부분은 그래프의 윤곽을 그리고 x 및 y축 선을 그리고 마크도 그리고 y축에 값으로 레이블을 지정합니다.
<울>chk =DHT.read11(22); 온도 =(DHT.온도);
이 짧은 코드 줄은 DHT 11 센서에서 온도를 읽은 다음 변수에 저장합니다.
<울>if(blockPos <8) { // 시간 출력 tft.setCursor((mark[valuePos] - 5), (originY + 16)); tft.setTextColor(그래프 색상, 흰색); tft.setTextSize(1); tft.println(시간 블록[값 위치]); // 값 매핑 locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // 점 그리기 tft.fillRect((mark[valuePos] - 1), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // 이전 지점에 연결 시도 if(valuePos !=0) { tft.drawLine(mark[valuePos], locationBlock[valuePos], mark[(valuePos - 1)], locationBlock[(valuePos - 1)], lineColor); } 블록포스++; } else { // 그래프의 캔버스 지우기 tft.fillRect((originX + 2), (originY - sizeY), sizeX, sizeY, WHITE); // 값 매핑 - 현재 포인트 locationBlock[valuePos] =map(temp, 0, graphRange, originY, (originY - sizeY)); // 점 그리기 - 현재 점 tft.fillRect((mark[7]), (locationBlock[valuePos] - 1), markSize, markSize, pointColor); // 모든 점 그리기 for(int i =0; i <8; i++) { tft.fillRect((mark[(blockPos - (i + 1))] - 1), (locationBlock[(valuePos - i)] - 1), markSize, markSize, pointColor); } // 모든 선을 그립니다. for(int i =0; i <7; i++) { tft.drawLine(mark[blockPos - (i + 1)], locationBlock[valuePos - i], mark[blockPos - (i + 2)], locationBlock[valuePos - (i + 1)], lineColor); } // 시간 레이블 변경 for(int i =0; i <=8; i++) { tft.setCursor((mark[(blockPos - i)] - 5), (originY + 16)); tft.setTextColor(그래프 색상, 흰색); tft.setTextSize(1); tft.println(timeBlock[valuePos - i]); } } 값포스++;
코드의 이 긴 부분은 해당 값에서 그래프의 점을 그린 다음 선을 통해 연결합니다. 코드는 그래프의 캔버스가 채워져 있는지 확인하고 채워지면 그래프의 첫 번째 값을 배출하기 시작합니다. 새 값을 삽입할 공간을 허용하도록 나머지를 위로 이동합니다. 아직 공간이 남아 있는 경우 장치는 간격을 두고 값을 계속 추가합니다.
그래프 맞춤설정
이 그래프의 재미있는 점은 100% 편집이 가능하여 사용자가 그래프의 크기, 위치 및 색상을 편집할 수 있으며 유연성 덕분에 그래프에 모든 데이터를 표시할 수도 있다는 것입니다. 주의해야 하는 모든 변수가 있습니다.
bool proDebug =0; uint16_t 그래프 색상 =파란색; uint16_t pointColor =검은색; uint16_t lineColor =녹색; 문자열 graphName ="시간 그래프"; 정수 그래프 범위 =50; 정수 표시 크기 =3;
<울> 프로디버그
는 프로젝트에 내장된 디버깅 유틸리티이며 기본값으로 0으로 설정되어 있으며 1/true로 설정하면 현재 온도를 직렬 모니터에 인쇄합니다. 이것은 디버깅 유틸리티입니다. 활성화된 경우 직렬 모니터는 코드를 실행하려면 열려 있어야 합니다.그래프 색상
그래프의 색상을 설정하고 x 및 y 선과 해당 레이블이 이 색상으로 설정됩니다.pointColor
그래프에서 값을 나타내는 점의 색상을 나타냅니다.lineColor
그래프의 점을 연결하는 선의 색상을 선택한 색상으로 설정합니다.그래프 범위
그래프의 중추입니다. 올바르게 설정하는 것이 정말 중요합니다. 그래프로 표시할 수 있는 최대 값을 나타냅니다. 온도 센서를 사용하고 있습니다. 값이 50ºC를 초과할 것으로 예상하지 않으므로 설정합니다. 값을 50으로 설정하고 원시 아날로그 입력을 그래프로 표시하려면 graphRange를 아날로그 핀이 표시할 수 있는 최대값인 1024로 설정할 수 있습니다.markSize
그래프에서 센서 값을 표시하는 점의 크기를 나타내며 값은 정사각형의 길이를 나타냅니다.그리고 그게 전부입니다. 걱정해야 할 전부입니다. 나머지 변수는 Arduino에 의해 자동으로 계산됩니다.
변경 가치
방의 온도를 그래프로 표시하는 것도 좋지만 그래프에 센서 데이터를 표시할 수 있다면 더욱 좋습니다. 몇 줄의 코드를 편집하여 토양 수분에서 빛까지 모든 데이터를 그래프로 나타낼 수 있습니다. 강함. 다음은 이를 수행하는 방법입니다.
그림> 그림> 그림> 그림> 그림>가는 중 더
프로젝트를 더 실험하고, originX, originY, sizeX 및 sizeY 상수를 편집하여 그래프에 다른 크기와 화면 위치를 제공할 수 있습니다. 메인 스케치에 헤더 파일이 첨부되어 있으며, 일부 색상의 색상 코드가 포함되어 있습니다. 차트와 막대의 색상을 변경해 보십시오. 이제 맞춤 그래프가 준비되었습니다.
라이브러리
<울>
배경
최근에 막대 차트에 1, 2, 3 또는 4 값을 그래프로 표시하는 프로젝트를 게시했습니다. 그래프 작성을 위한 다른 템플릿을 게시하기로 결정했습니다. 혼란을 줄 정도로 선이 곳곳에 없는 막대 차트용 템플릿은 없습니다. 그래서 저는 다시 계산을 하고 모든 사람이 자신의 데이터를 기록 그래프에 실시간으로 그래프로 표시할 수 있는 간단한 프로젝트를 게시하기로 결정했습니다.피> 그림>
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
제조공정
구성품 및 소모품 LED(일반) × 10 Arduino UNO × 1 저항 221옴 × 10 점퍼 와이어(일반) × 13 회전 전위차계(일반) × 1 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 Arduino Uno와 전위계에 연결된 10개의 LED가 있습니다. 전위차계를 돌리면 LED가 하나씩 켜집니다. 코드 그래프 그래프C/C++ const int a
이 Arduino 터치 스크린 튜토리얼에서는 Arduino와 함께 TFT LCD 터치 스크린을 사용하는 방법을 배웁니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 이 튜토리얼에서는 세 가지 예제를 작성했습니다. 첫 번째 예는 초음파 센서를 이용한 거리 측정입니다. 센서의 출력 또는 거리가 화면에 인쇄되고 터치 스크린을 사용하여 센티미터 또는 인치 단위를 선택할 수 있습니다. 다음 예는 이 3개의 RGB 슬라이더를 사용하여 RGB LED를 제어하는 것입니다. 예를 들어 파란색 슬라이더를 움직