아두이노 > 아두이노 Simple 계산기

TODAY1,149 TOTAL607,945
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 아두이노 | 아두이노 | 아두이노 Simple 계산기

페이지 정보

작성자 master 작성일2018-03-17 17:49 조회2,474회 댓글0건

본문

 

// DateTime : 2018-03-17 오후 5:54:01
// by Ok-Hyun Park

#define op_Plus   0
#define op_Minus  1
#define op_Div    2
#define op_Mul    3
//
int SWa=2,SWb=3,SWop=4,SWequ=5;
int a=0,b=0,op=0,result=0;
//
void setup(){
  pinMode(SWa,INPUT_PULLUP);
  pinMode(SWb,INPUT_PULLUP);
  Serial.begin(38400);
}
//
void loop(){
  if(digitalRead(SWa)==LOW){
    a++; Serial.print("a="); Serial.println(a);
    delay(50); while(digitalRead(SWa)==LOW); delay(50); //채터링, 디바운스
  }
  if(digitalRead(SWb)==LOW){
    b++; Serial.print("b="); Serial.println(b);
    delay(50); while(digitalRead(SWb)==LOW); delay(50); //채터링, 디바운스
  }
  if(digitalRead(SWop)==LOW){
    if(++op>3)op=0Serial.print("op=");
    switch(op){
      case op_Plus : result=a+bSerial.println("+"); break;
      case op_Minusresult=a-bSerial.println("-"); break;
      case op_Div  : result=a*bSerial.println("*"); break;
      case op_Mul  : result=a/bSerial.println("/"); break;
    }
    delay(50); while(digitalRead(SWop)==LOW); delay(50); //채터링, 디바운스
  }
  if(digitalRead(SWequ)==LOW){
    Serial.print(a);
    switch(op){
      case op_Plus : result=a+bSerial.print("+"); break;
      case op_Minusresult=a-bSerial.print("-"); break;
      case op_Div  : result=a*bSerial.print("*"); break;
      case op_Mul  : result=a/bSerial.print("/"); break;
    }
    //
    Serial.print(b);
    Serial.print("=");
    Serial.println(result);
    delay(50); while(digitalRead(SWequ)==LOW); delay(50); //채터링, 디바운스
  }
}

 

나눗셈 경우 정수가 아닌 실수값이 나올 수 있으니

result=0;

이 변수는 float로 선언해도 되겠습니다.


댓글 0

조회수 2,474

등록된 댓글이 없습니다.

아두이노HOME > 아두이노 > 전체 목록

게시물 검색

2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2017
모바일버전으로보기