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);
}

 

더보기

버튼누를때마다 오프->빨강->블루->오프 반복

int ledred = 12;
int ledblue = 4;
int btn1 = 10;

int before = 0;
int btnCnt = 0;


void setup() {
  Serial.begin(9600);
  pinMode(ledred,OUTPUT);
  pinMode(ledblue,OUTPUT);
  pinMode(btn1,INPUT);
  
}
void loop() {
  

  int curBtn1 = digitalRead(btn1);
   Serial.print(curBtn1);
 Serial.print(" : ");
 Serial.print(before);
 Serial.print(" : ");
 Serial.println(btnCnt);

  if(curBtn1==1 && before==0){         

   before=1;
   btnCnt++;

   if(btnCnt==3){
    btnCnt=0;
   }
      
  }

  if(curBtn1 ==0){
    before = 0;
  }

  if(btnCnt==1){       
   digitalWrite(ledred,HIGH);
  }
  if(btnCnt==2){       
   digitalWrite(ledblue,HIGH);
  }
  if(btnCnt==0){       
   digitalWrite(ledred,LOW);
   digitalWrite(ledblue,LOW);
  }
}

 

2개의 LED를 버튼한개로 컨트롤 하기

int ledred = 12;
int btn1 = 10;

int before = 0;
int btnCnt = 0;

void setup() {
  Serial.begin(9600);
  pinMode(ledred,OUTPUT);
  pinMode(btn1,INPUT);
}

void loop() {
 int curBtn1 = digitalRead(btn1);
 Serial.print(curBtn1);
 Serial.print(" : ");
 Serial.print(before);
 Serial.print(" : ");
 Serial.println(btnCnt);

if(curBtn1==1 && before == 0){
    before=1;
    btnCnt++;

    if(btnCnt == 2){
      btnCnt = 0;
    }
    
}
if(curBtn1==0){
  before=0;
}

 if(btnCnt!=0){       
   digitalWrite(ledred,HIGH);
 }else{
  digitalWrite(ledred,LOW);
 }

 

}

int val(가변저항기) = analogRead(A0); -> 아날로그를 연결 할 때는 a0~a5에 연결 한다.

int value = map(val,0,1023,0,255);  //크기다른 두개를 동기화 해준다
   
   

int ledred = 11;
int ledblue = 4;
int btn1 = 10;

void setup() {
  Serial.begin(9600);
  
  pinMode(ledred,OUTPUT);
  
  
}
void loop() {
  int val =analogRead(A0);
  int value = map(val,0,1023,255,0);
   Serial.print(val);
   Serial.print(" : ");
   Serial.println(value);

   analogWrite(ledred,value);
}

버튼3개로 RGB LED 컨트롤 하기

int red =9;
int blue = 11;
int green =13;

int sw1=2;
int sw2=4;
int sw3=6;

void setup() {
  Serial.begin(9600);

  pinMode(red,OUTPUT);
  pinMode(blue,OUTPUT);
  pinMode(green,OUTPUT);
  pinMode(sw1,INPUT);
  pinMode(sw2,INPUT);
  pinMode(sw3,INPUT);
  
  
}
void loop() {
  Serial.print("sw1 : ");
   Serial.print(digitalRead(sw1));
    Serial.print(          "sw2 : ");
   Serial.print(digitalRead(sw2));
    Serial.print("         sw3 : ");
   Serial.println(digitalRead(sw3));

   if(digitalRead(sw1)==1){
    digitalWrite(red,HIGH);
    digitalWrite(green,LOW);
     digitalWrite(blue,LOW);
   }

    if(digitalRead(sw2)==1){
    digitalWrite(red,LOW);
    digitalWrite(green,HIGH);
     digitalWrite(blue,LOW);
   }

    if(digitalRead(sw3)==1){
    digitalWrite(red,LOW);
    digitalWrite(green,LOW);
     digitalWrite(blue,HIGH);
   }
}

1. +극을 연결 할 때는 빨강색 전선으로 연결한다. 

 

2.보드와 빵판을 연결 할 때는 보드 5v 또는 3.3v 빵판에서는 +극에 서로 연결 한다.

 

3.-극을 연결 할 때는 검은색 전선으로 연결하며 빵판에서는 (-), 보드에서는 GND에 서로 연결 한다.

 

4.LED는 다리가 긴 게(+)극 짧은 게 (-극) 이다. 이것 역시 보드에서 단독으로 꽂을 땐 +극을 핀 번호 -극을 GND에 꽂는다. 빵판에다 꽂고 보드와 연결 하고 싶으면 빵판에서 두 개의 다리를 꽂고 -극에는 저항을 연결,+극에서는 전선으로 직접 보드의 핀으로 연결 한다.

 

5.버튼을 연결 할 때는 4개의 다리를 꽂고 -극엔 저항 연결 및 추가해서 전선 한 쪽은 빵판의 전선과 같은 라인 다른 한 쪽은 보드의 핀에 꽂는다.+극은 버튼의 + 라인 과 빵판의 +극을 연결한다.

 

int ledred = 12;
int btn1 = 10;            ->핀 번호를 INT형으로 변수 지정

 

※Serial : 직렬화 할 때 사용하는 것

 digitalRead(btn1) : btn1로 부터 신호가 들어오면 1출력 그렇지 않으면 0 출력

int ledred = 12;
int btn1 = 10;

void setup() {
  Serial.begin(9600);
  pinMode(ledred,OUTPUT);
  pinMode(btn1,INPUT);
}

void loop() {
 int curBtn1 = digitalRead(btn1);
 Serial.println(curBtn1);

 if(curBtn1==1){
   digitalWrite(ledred,HIGH);
 }else{
  digitalWrite(ledred,LOW);
 }

 

}

pinMode ->핀 초기설정

pinMode(5,OUTPUT) -> 핀5번을 출력형식으로 지정 하겠다.

 

 digitalWrite(1,HIGH) -> 1번 LED를 키겠다.

 digitalWrite(1,ROW) -> 1번 LED를 끄겠다.

 

analogWrite(5,100) ->5번 led를 100만큼 빛을 내겠다. 아날로그 형식을 조정할 때 사용

delay(50) -> 0.05초동안 유지하겠다.

void setup() {
  pinMode(5,OUTPUT);
  pinMode(6,OUTPUT);
}

void loop() {
  
  analogWrite(5,100);
  delay(50);
  analogWrite(5,180);
  delay(50);
  analogWrite(5,255);
  delay(50);
  analogWrite(5,0);
  delay(50);
  analogWrite(6,100);
  delay(50);
  analogWrite(6,180);
  delay(50);
  analogWrite(6,255);
  delay(50);
  analogWrite(6,0);
  delay(50);
} 

+ Recent posts