제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
친애하는 친구, 다른 튜토리얼에 오신 것을 환영합니다! 이 비디오에서 우리는 인기 있는 Nokia 5110 LCD 디스플레이용 메뉴를 만드는 방법을 배웁니다. 우리 프로젝트를 더 사용자 친화적이고 유능하게 만들기 위해 시작하겠습니다!
이것은 우리가 구축할 프로젝트입니다. 디스플레이에 간단한 메뉴가 나타나고 로터리 인코더의 도움으로 로터리 인코더 버튼을 눌러 위 또는 아래로 탐색하고 메뉴 항목을 선택할 수 있습니다. 로터리 엔코더의 가운데 버튼을 누르면 다른 화면이 나타나고 변수 값을 변경할 수 있습니다. 로터리 엔코더 버튼을 한 번 더 누르면 메인 메뉴 화면으로 돌아갑니다. 메뉴에는 6개의 항목이 있으며 메뉴를 위아래로 스크롤할 수 있으며 디스플레이의 항목이 그에 따라 변경됩니다. 이 메뉴가 어떻게 작동하는지 정확히 보려면 첨부된 비디오를 시청하십시오. 물론 원하는 경우 더 복잡한 메뉴를 만들기 위해 수정할 수 있습니다.
이제 이 프로젝트를 빌드하는 방법을 살펴보겠습니다.
1단계:모든 부품 가져오기
이 프로젝트를 빌드하는 데 필요한 부품은 다음과 같습니다.
<울>프로젝트 비용은 10달러 미만으로 매우 저렴합니다. 아래 동영상 설명에서 내가 사용하는 모든 부품에 대한 링크를 찾을 수 있습니다.
2단계:Nokia 5110 LCD 디스플레이
Nokia 5110은 제가 Arduino 프로젝트에서 가장 좋아하는 디스플레이입니다.
Nokia 5110은 원래 휴대폰 화면용으로 설계된 기본 그래픽 LCD 화면입니다. 저전력 CMOS LCD 컨트롤러/드라이버인 PCD8544 컨트롤러를 사용합니다. 이 때문에 이 디스플레이는 인상적인 전력 소비를 가지고 있습니다. 켜져 있지만 백라이트는 비활성화되어 있을 때 0.4mA만 사용합니다. 절전 모드일 때 0.06mA 미만을 사용합니다! 이것이 이 디스플레이를 내가 가장 좋아하는 이유 중 하나입니다. PCD8544는 직렬 버스 인터페이스를 통해 마이크로컨트롤러에 인터페이스합니다. 따라서 디스플레이를 Arduino와 함께 사용하기가 매우 쉽습니다. 8선만 연결하면 됩니다.
Nokia 5110 LCD 디스플레이를 Arduino와 함께 사용하는 방법에 대한 자세한 자습서를 준비했습니다. 이 튜토리얼에서 해당 비디오를 첨부했으며 디스플레이에 대한 유용한 정보를 제공할 수 있으므로 주의 깊게 시청하는 것이 좋습니다. 디스플레이 비용은 약 $4입니다.
▶ http://educ8s.tv/part/NOKIA5110
에서 받으실 수 있습니다.
3단계:로터리 인코더
샤프트 엔코더라고도 하는 로터리 엔코더는 샤프트 또는 액슬의 각도 위치 또는 동작을 아날로그 또는 디지털 코드로 변환하는 전기 기계 장치입니다. 로터리 인코더는 산업 제어, 로봇 공학, 특수 목적의 사진 렌즈, 컴퓨터 입력 장치(예:광기계 마우스 및 트랙볼), 제어된 응력 레오미터, 회전하는 레이더 플랫폼을 포함하여 정밀한 샤프트 무제한 회전이 필요한 많은 응용 분야에서 사용됩니다.
이 프로젝트에서 사용할 로터리 인코더는 매우 저렴한 인코더입니다. 또한 버튼이 내장되어 있으며 작동하려면 5개의 전선만 연결하면 됩니다. 로터리 엔코더 사용법에 대한 자세한 튜토리얼을 준비했습니다. 이 동영상은 여기에 첨부되어 있습니다.
이 로터리 인코더의 비용은 매우 저렴합니다. 비용은 약 $1.5입니다.
바로가기 ▶ http://educ8s.tv/part/RotaryEncoder
4단계:프로젝트 구축 그림> 그림> 그림>
이제 모든 부품을 연결해 보겠습니다. 이 프로젝트를 빌드하기 전에 과거에 로터리 엔코더를 사용하지 않았다면 로터리 엔코더에 대해 제가 준비한 튜토리얼을 시청하는 것이 좋습니다. 로터리 엔코더의 작동 방식을 이해하는 데 도움이 되며 이에 대한 경험을 얻을 수 있습니다. 이 동영상을 여기에 첨부합니다.
이렇게 작은 브레드보드에 디스플레이를 배치했습니다. 먼저 디스플레이를 연결해 보겠습니다. 리셋인 디스플레이의 첫 번째 핀은 Arduino Uno의 디지털 핀 3으로, 두 번째 핀은 디지털 핀 4로, 세 번째 핀은 디지털 핀 5로, 네 번째 핀은 디지털 핀 11로, 다섯 번째 핀은 디지털로 연결됩니다. 핀 13. 다음 핀은 Vcc입니다. Vcc를 브레드보드의 양극 레일에 연결하고 브레드보드 양극 레일을 Arduino의 3.3V 출력에 연결합니다. 다음 핀은 디스플레이용 백라이트입니다. 소프트웨어를 통해 제어하고 싶기 때문에 디지털 핀 7에 연결합니다. 마지막 핀은 GND입니다. GND를 브레드보드의 네거티브 레일에 연결하고 브레드보드의 네거티브 레일을 Arduino GND에 연결합니다.
이제 로터리 인코더를 연결하기만 하면 됩니다. 첫 번째 핀은 GND이고 브레드보드의 네거티브 레일에 연결합니다. 다음 핀은 Vcc이고 브레드보드의 양극 레일에 연결합니다. 다음 핀은 SW이고 아날로그 핀 2에 연결합니다. 다음 핀의 이름은 DT이고 아날로그 핀 1에 연결합니다. 마지막으로 핀 CLK는 아날로그 핀 0에 연결됩니다. 이 프로젝트의 개략도는 다음에서 찾을 수 있습니다. 아래 동영상에 대한 설명입니다.
이제 프로젝트에 전원을 공급할 준비가 되었습니다. 보시다시피 프로젝트가 제대로 작동하고 메뉴가 예상대로 작동합니다! 좋습니다. 이제 프로젝트의 소프트웨어를 살펴보겠습니다.
5단계:프로젝트 코드
이 프로젝트에서는 4개의 라이브러리를 사용합니다. 디스플레이용으로 2개의 라이브러리를 사용하고 로터리 인코더용으로 2개를 사용합니다.
<울>먼저 drawMenu 함수를 살펴보겠습니다. 이 기능은 디스플레이에 메뉴를 그리는 역할을 합니다. 이 함수는 몇 밀리초마다 호출되므로 메뉴에 변경 사항이 있는 경우 이 함수는 화면의 메뉴를 업데이트하는 역할을 합니다.
int menuitem =1;int frame =1;int page =1;int lastMenuItem =1;
또한 3개의 매우 중요한 전역 변수, 변수 페이지, 변수 메뉴 항목 및 변수 프레임이 있습니다. 변수 페이지는 화면에 표시되는 UI 화면을 기억합니다. 따라서 페이지 변수가 1이면 기본 UI 화면에 있고 변수가 2이면 변수에 값을 설정하는 보조 UI 화면에 있습니다. 메뉴 항목은 선택한 메뉴 항목을 기억합니다. 따라서 값이 1이면 첫 번째 메뉴 항목이 선택되므로 drawMenu 함수는 이 메뉴 항목을 흰색 문자로 검은색으로 그려야 합니다. 메뉴 항목이 2이면 두 번째 메뉴 항목이 선택되는 식입니다. 프레임 변수는 메뉴의 어느 부분이 화면에 표시되는지 기억합니다. 우리가 만든 메뉴에는 6개의 항목이 있고 한 번에 3개의 항목만 표시할 수 있으므로 화면에 표시되는 항목을 알아야 합니다. 프레임 변수는 정확히 이것을 알려줍니다. 프레임 변수의 값이 1이면 처음 세 개의 메뉴 항목을 표시하고 2이면 항목 2,3,4 등을 표시합니다.
코드를 가능한 한 쉽게 수정할 수 있도록 하여 메뉴 항목의 이름을 보유하는 전역 변수를 만들었습니다. 이렇게 하면 코드에서 검색하지 않고도 쉽게 자신만의 메뉴를 만들 수 있습니다.
문자열 menuItem1 ="대비";문자열 menuItem2 ="볼륨";문자열 menuItem3 ="언어";문자열 menuItem4 ="난이도";문자열 menuItem5 ="조명:켜짐";문자열 menuItem6 ="재설정"; 부울 백라이트 =true;int 대비=60;int 볼륨 =50;문자열 언어[3] ={ "EN", "ES", "EL" };int selectedLanguage =0;문자열 난이도[2] ={ "쉬운" , "하드" };int selectedDifficulty =0;
처음에는 코드에 필요한 모든 전역 변수를 초기화합니다. 다음으로 디스플레이를 초기화합니다. 루프 함수에서 처음에는 drawMenu 함수를 호출하여 화면에 메뉴를 그립니다. 그런 다음 로터리 인코더에서 값을 읽고 버튼이 눌렸는지 확인합니다. 예를 들어, 메인 UI 화면에 있고 첫 번째 메뉴 항목이 선택된 경우 로터리 인코더의 값이 증가하면 menuitem 변수가 증가하고 다음 루프에서 drawMenu 함수는 선택된 대로 두 번째 메뉴 항목을 그립니다. 이제 로터리 인코더의 버튼을 누르면 변수 값을 설정하는 두 번째 페이지로 이동합니다. 다시 로터리 인코더를 사용하여 변수 값을 늘리거나 줄일 수 있습니다. 버튼을 누르면 메인 메뉴 페이지로 돌아가서 페이지 변수가 감소합니다.
이것이 이 메뉴의 기본 아이디어입니다. 모든 메뉴 항목과 페이지에 대해 동일한 절차를 따릅니다. 코드는 복잡하고 400줄 이상입니다. 복잡해 보이지만 직접 해보면 더 쉽게 이해가 될 것이고, 변경하고 확장하여 자신의 프로젝트에서 사용할 수 있을 것입니다. 언제나처럼 여기에서 첨부된 코드를 찾을 수 있습니다.
Nokia5110MenuRotary.ino
6단계:프로젝트 테스트
코드를 로드하면 프로젝트가 예상대로 작동하는 것을 볼 수 있습니다. 샤프트를 사용하여 메뉴를 위아래로 탐색할 수 있으며 로터리 인코더 버튼을 눌러 메뉴 항목을 선택할 수 있습니다. 정말 멋지네요!
이제 Nokia 5110 LCD 디스플레이용 메뉴를 구축하는 방법을 알았으므로 프로젝트에 더 많은 기능을 추가하고 더 사용자 친화적으로 만들 수 있습니다. 오늘 만든 이 간단한 메뉴는 개선할 수 있습니다. 버튼 상태를 항상 확인하는 대신 인터럽트를 사용할 수 있습니다. 이렇게 하면 프로젝트의 전력 소비를 줄이고 코드를 더 깔끔하게 만들 수 있습니다. 곧 인터럽트에 대한 비디오를 준비 할 것이므로 계속 지켜봐주십시오. 이 메뉴 프로젝트에 대한 귀하의 의견을 듣고 싶습니다. 유용하다고 생각하고 프로젝트에서 메뉴를 사용할 계획입니까? 아래에 귀하의 생각과 아이디어를 게시해 주십시오. 감사합니다!
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">문자열 menuItem1 ="대비";문자열 menuItem2 ="볼륨";문자열 menuItem3 ="언어";문자열 menuItem4 ="난이도";문자열 menuItem5 ="조명:켜짐";문자열 menuItem6 ="재설정"; 부울 백라이트 =true;int 대비=60;int 볼륨 =50;문자열 언어[3] ={ "EN", "ES", "EL" };int selectedLanguage =0;문자열 난이도[2] ={ "EASY", "HARD " };int selectedDifficulty =0;
제조공정
이 튜토리얼에서는 로터리 엔코더의 작동 방식과 Arduino와 함께 사용하는 방법을 배웁니다. 다음 비디오를 보거나 아래에 작성된 튜토리얼을 읽을 수 있습니다. 개요 로터리 엔코더는 회전축의 각도 위치를 결정하는 데 사용되는 일종의 위치 센서입니다. 회전 운동에 따라 아날로그 또는 디지털 전기 신호를 생성합니다. 출력 신호 또는 감지 기술로 분류되는 다양한 유형의 로터리 인코더가 있습니다. 이 튜토리얼에서 사용할 특정 로터리 인코더는 증분형 로터리 인코더이며 회전을 측정하는 가장 간단한 위치 센서입니다. 이 로터리 엔
Arduino 회전 인코더는 견고한 구조와 정밀한 디지털 제어로 인해 CNC 기계, 로봇 및 프린터에도 유용합니다. Arduino 로터리 엔코더 프로젝트에서 작업 중이고 도움이 필요하다면 올바른 위치에 있습니다. 오늘의 기사에서는 로터리 엔코더, 구성, 유형, 작동, 예 및 응용 프로그램을 살펴봅니다. 로타리 인코더란 무엇입니까? 그림 1:회전식 인코더 샤프트 또는 액슬의 각도 위치 또는 동작을 결정하는 전자 기계식 위치 센서입니다. 그런 다음 각도 위치 데이터를 디지털 또는 아날로그 출력 신호로 변환합니다