제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
이 프로젝트가 끝나면 Arduino와 함께 16x2 LCD 및 키패드를 사용하는 방법과 쉽게 사용할 수 있는 라이브러리를 사용하여 프로그래밍하는 것이 얼마나 쉬운지 알게 됩니다. 또한 특정 작업을 수행하기 위해 Arduino를 프로그래밍하는 방법도 이해할 수 있습니다.
필요한 자료: <울>
D0
키보드의 첫 번째 핀
D1
키보드의 두 번째 핀
D2
키보드의 세 번째 핀
D3
키보드의 4번째 핀
D4
키보드의 5번째 핀
D5
키보드의 6번째 핀
D6
키보드의 7번째 핀
D7
키보드의 8번째 핀
D8
LCD의 셀렉트 핀 등록(4번 핀)
D9
LCD의 핀 활성화(핀 6)
D10
데이터 핀 4(핀 11)
D11
데이터 핀 4(핀 11)
D12
데이터 핀 4(핀 11)
D13
데이터 핀 4(핀 11)
+5V
LCD의 Vdd 핀에 연결(핀 2)
지상
LCD의 Vss, Vee 및 RW 핀에 연결됨(핀 1, 3 및 5)
일부 Arduino 보드는 0번 핀과 1번 핀에 연결된 것이 있으면 프로그램을 업로드하는 동안 오류가 표시될 수 있으므로 문제가 발생하면 프로그램을 업로드하는 동안 키패드를 제거하십시오.
연결이 완료되면 하드웨어가 아래와 같이 보일 것입니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">
* * 아두이노 키패드 계산기 프로그램 */#include섹션>//LCD용 헤더 파일 from https://www.arduino.cc/en/Reference/LiquidCrystal#include //Header https://github.com/Chris--A/Keypadconst byte ROWS =4의 키패드용 파일; // 4개의 행 const 바이트 COLS =4; // 세 개의 열// Keymapchar 키 정의[ROWS][COLS] ={ {'7','8','9','D'}, {'4','5','6',' C'}, {'1','2','3','B'}, {'*','0','#','A'}};byte rowPins[ROWS] ={ 0, 1, 2, 3 };// 키패드 ROW0, ROW1, ROW2 및 ROW3을 Arduino 핀에 연결합니다.byte colPins[COLS] ={ 4, 5, 6, 7 }; // 키패드 COL0, COL1 및 COL2를 Arduino 핀에 연결합니다.Keypad kpd =Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // 키패드 생성 const int rs =8, en =9, d4 =10, d5 =11, d6 =12, d7 =13; //LCD가 연결된 핀LiquidCrystal lcd(rs, en, d4, d5, d6, d7); 긴 숫자1, 숫자2, 숫자; 문자 키, 동작; 부울 결과 =거짓; 무효 설정() { lcd.begin(16, 2); //16*2 LCD 디스플레이를 사용하고 있습니다. lcd.print("DIY 계산기"); //소개 메시지 표시 lcd.setCursor(0, 1); // 커서를 0열, 1행에 설정 lcd.print("-CircuitDigest"); //소개 메시지 표시 delay(2000); //정보가 표시될 때까지 기다립니다. lcd.clear(); //그런 다음 청소합니다.}void loop() { key =kpd.getKey(); //누른 키 값을 charif에 저장 (key!=NO_KEY)DetectButtons();if (result==true)CalculateResult();DisplayResult(); } 무효 DetectButtons(){ lcd.clear(); //그런 다음 청소 if (key=='*') //취소 버튼을 눌렀을 경우 {Serial.println("버튼 취소"); 숫자=Num1=Num2=0; result=false;} if (key =='1') //버튼 1이 눌려지면 {Serial.println("버튼 1"); if (숫자==0) 숫자=1; 그렇지 않으면 숫자 =(숫자*10) + 1; //두 번 누름 } if (key =='4') //버튼 4를 눌렀다면 {Serial.println ("Button 4"); if (숫자==0) 숫자=4; 그렇지 않으면 숫자 =(숫자*10) + 4; //두 번 누름 } if (key =='7') //버튼 7을 눌렀을 때 {Serial.println ("Button 7"); if (숫자==0) 숫자=7; 그렇지 않으면 숫자 =(숫자*10) + 7; //두 번 누름 } if (key =='0') {Serial.println("Button 0"); //버튼 0이 눌림 if (Number==0) Number=0; 그렇지 않으면 숫자 =(숫자*10) + 0; //두 번 누름 } if (key =='2') //버튼 2가 눌림 {Serial.println("버튼 2"); if (숫자==0) 숫자=2; 그렇지 않으면 숫자 =(숫자*10) + 2; //두 번 누름 } if (key =='5') {Serial.println("버튼 5"); if (숫자==0) 숫자=5; 그렇지 않으면 숫자 =(숫자*10) + 5; //두 번 누름 } if (key =='8') {Serial.println("Button 8"); if (숫자==0) 숫자=8; 그렇지 않으면 숫자 =(숫자*10) + 8; //두 번 누름 } if (key =='#') {Serial.println("Button Equal"); Num2=숫자; 결과 =참; } if (키 =='3') {Serial.println("버튼 3"); if (숫자==0) 숫자=3; 그렇지 않으면 숫자 =(숫자*10) + 3; //두 번 누름 } if (key =='6') {Serial.println("Button 6"); if (숫자==0) 숫자=6; 그렇지 않으면 숫자 =(숫자*10) + 6; //두 번 누름 } if (key =='9') {Serial.println("Button 9"); if (숫자==0) 숫자=9; 그렇지 않으면 숫자 =(숫자*10) + 9; //두 번 누름 } if (key =='A' || key =='B' || key =='C' || key =='D') //4열의 버튼 감지 { Num1 =Number; 숫자 =0; if (키 =='A') {Serial.println("추가"); action ='+';} if (key =='B') {Serial.println("빼기"); 액션 ='-'; } if (키 =='C') {Serial.println("곱하기"); action ='*';} if (key =='D') {Serial.println("개발"); 액션 ='/';} 지연(100); } }CalculateResult(){ if (action=='+') 숫자 =Num1+Num2; if (action=='-') 숫자 =Num1-Num2; if (액션=='*') 숫자 =Num1*Num2; if (action=='/') 숫자 =Num1/Num2; } 무효 디스플레이 결과(){ lcd.setCursor(0, 0); // 커서를 0열, 1행에 설정 lcd.print(Num1); lcd.print(액션); lcd.print(숫자2); if (결과==true) {lcd.print("="); lcd.print(Number);} //결과 표시 lcd.setCursor(0, 1); // 커서를 0열, 1행에 설정 lcd.print(Number); //결과 표시}
제조공정
구성품 및 소모품 Arduino UNO × 1 SparkFun CAN-BUS 실드 × 1 남성 헤더 36 위치 1 행 길이(0.1) SparkFun CAN-Bus 실드용 × 1 SparkFun OBD-II-DSUB-9 케이블 국제 제조업체용 × 1 OBD-II-DSUB-9 케이블 독일(또는 유럽) 제조업체용 × 1 CANdiy-Shield v2 CAN 버스 쉴드 IO 전압은 3.3V와 5V 사이에서 선택 가능하므로 이 실드를 3.3V
구성품 및 소모품 Arduino UNO × 1 Leap 모션 컨트롤러 × 1 LED(일반) × 4 점퍼 와이어(일반) × 10 앱 및 온라인 서비스 Arduino IDE 이 프로젝트 정보 이 앱은 LeapMotion과 Arduino Uno를 사용하여 방의 조명 강도를 제어하는 홈 자동화 시스템을 만듭니다. 집 평면도는 특정 방을 결정하기 위해 LeapMotion 좌표에 매핑됩니다. 손바닥 위치가 대상