산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino 계산기

구성품 및 소모품

Arduino UNO
× 1
RGB LCD 실드 키트, 16x2 문자 디스플레이
× 1
점퍼 와이어(일반)
× 1
9V 배터리(일반)
× 1
브레드보드(일반)
× 1

이 프로젝트 정보

이 프로젝트가 끝나면 Arduino와 함께 16x2 LCD 및 키패드를 사용하는 방법과 쉽게 사용할 수 있는 라이브러리를 사용하여 프로그래밍하는 것이 얼마나 쉬운지 알게 됩니다. 또한 특정 작업을 수행하기 위해 Arduino를 프로그래밍하는 방법도 이해할 수 있습니다.

필요한 자료:

<울>
  • Arduino Uno(모든 버전에서 작동)
  • <울>
  • 16×2 LCD 디스플레이
  • <울>
  • 4×4 키패드
  • <울>
  • 9V 배터리
  • <울>
  • 브레드보드 및 연결 전선
  • 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="코드">

    코드

    <울>
  • 제목 없는 파일
  • 제목 없는 파일Arduino
    * * 아두이노 키패드 계산기 프로그램 */#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); //결과 표시}

    회로도


    제조공정

    1. 롤링 핀
    2. 볼링 핀
    3. Arduino 키보드 악용 데모(HID) 및 예방
    4. Arduino를 통한 Atmel AT89 시리즈 프로그래밍
    5. Arduino 스파이봇
    6. Arduino를 사용하여 RC 수신기 PPM 신호 읽기
    7. FlickMote
    8. 수제 TV B-Gone
    9. 마스터 시계
    10. Arduino Uno를 사용한 25kHz 4핀 PWM 팬 제어