For developer/아두이노

(아두이노)Serial 전송 버튼을 이용한 LED컨트롤 하기,랜덤(난수) 생성

프린이0218 2020. 4. 22. 22:22
int red =9;
int blue = 11;
int green =13;

void setup() {
  Serial.begin(9600);
  pinMode(red,OUTPUT);
  pinMode(blue,OUTPUT);
  pinMode(green,OUTPUT);
}

void loop() {
  while(Serial.available()){
    char c = Serial.read();


      Serial.print("입력");
      Serial.print(" : ");
      Serial.println(c);

      if(c=='1'){
        digitalWrite(red,HIGH);
        digitalWrite(green,LOW);
         digitalWrite(blue,LOW);
         Serial.println("1번 클릭");
      }else if(c=='2'){
         digitalWrite(red,LOW);
        digitalWrite(green,HIGH);
         digitalWrite(blue,LOW);
         Serial.println("2번 클릭");
      }else if(c=='3'){
         digitalWrite(red,LOW);
        digitalWrite(green,LOW);
         digitalWrite(blue,HIGH);
         Serial.println("3번 클릭");
      }else if(c=='4'){
         digitalWrite(red,LOW);
        digitalWrite(green,LOW);
         digitalWrite(blue,LOW);
         Serial.println("불 꺼짐");
      }else{
         Serial.println("1~4사이 입력하삼~^^");
      }
  }
  
}

 int val = Serial.parseInt();   // Int 형식으로 받으면 수 통째로 값을 가져온다 만약 숫자가 아닌 값을 입력하면 걍 무시해버림. 숫자와 문자가 혼합되면 split처럼 됨.

int red =9;
int green =13;
int num1;
int chkNum=0;
void setRandom();

void setup() {
  Serial.begin(9600);
  pinMode(red,OUTPUT);
  pinMode(green,OUTPUT);

  setRandom();
//  Serial.println("Making Random Number ...");
//  Serial.println("Let's Start");
//  num1 = random(1,10);    //1~9까지
  Serial.print("랜덤수:");
  Serial.println(num1);

}

void loop() {
  
  if(Serial.available()){
    chkNum = Serial.parseInt();

    if(chkNum == num1){
      Serial.print(chkNum);
      Serial.println(" :Sucess");
        digitalWrite(red,LOW);
    digitalWrite(green,HIGH);
      delay(3000);
        digitalWrite(green,LOW);
        setRandom();
//      Serial.println("Making Random Number");
//      Serial.println("Let's Start");
//      num1 = random(1,10);
       Serial.print("랜덤수:");
  Serial.println(num1);
    }else{
      Serial.print(chkNum);
      Serial.println(" :fail");
      digitalWrite(red,HIGH);
      digitalWrite(green,LOW);
      delay(3000);
      digitalWrite(red,LOW);
    }
  }

}

void setRandom(){
  Serial.println("Making Random Number");
      Serial.println("Let's Start");
      num1 = random(1,10);
}