한 걸음 두 걸음

arduino ] 간단한 시리얼통신 본문

Arduino

arduino ] 간단한 시리얼통신

언제나 변함없이 2019. 7. 17. 10:15
반응형

 

  • 아두이노를 이용한 LED / FND 모듈 제어

  • 유‧무선으로 실습하는 IoT-조도 / 온도센서 모듈 모니터링

  • 유‧무선으로 실습하는 IoT-FND / IoT-Event / Servo 모터 모듈 제어

  • 유‧무선 실습을 통한 협동로봇 프로그램 업로드 등

시리얼 통신 개요

시리얼 통신 실습

아두이노에 케이블 연결해주고, 소스코드 입력 후


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(2,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2,HIGH);
  delay(200);

  if(Serial.available()){

    Serial.println(Serial.read());
    }
}

컴파일 후 업로드 해줍니다.

업로드 하기 전에 필요한 설정입니다.

업로드 후 전송한 값을 아스키코드 값으로 읽는 모습을 시리얼모니터로 확인할 수 있습니다.


시리얼통신으로 LED제어

int ledPin = 2;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(ledPin,OUTPUT);
 //  pinMode(8,OUTPUT);
}

void loop() {
  if(Serial.available()){
    int ser = (int)Serial.read();
    if(ser == 49){
      digitalWrite(ledPin,LOW);
      delay(200);
      }
     else{
      digitalWrite(ledPin,HIGH);
      delay(100);
      }
    //Serial.println(Serial.read());
    }
}

sw값 읽어오기

int sw = 8;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(sw,INPUT);
}

void loop() {
    Serial.println(digitalRead(sw));
//  delay(500);
}


sin 그리기


Serial통신으로 LED blink시키기

int led = 2;

void setup() {
  Serial.begin(9600);
  pinMode(led, OUTPUT);
}

void loop() {
   if(Serial.available() > 0){
      int count = Serial.parseInt();
      if(count > 0){
        Serial.print("You have input:");
        Serial.println(String(count));
        blinkLED(count);
        }

   }  
}

void blinkLED(int count){
  for(int i = 0 ; i < count; i ++){
    digitalWrite(led,HIGH);
    Serial.print("on");
    delay(500);
    digitalWrite(led,LOW);
    Serial.println(i+1);
    delay(500);

    }


  }
반응형