Skip to content

1016. 아두이노 센서 입력

Code 1. 동작확인

led-blink.ino
const int led = 13;

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);
  delay(500);

  digitalWrite(led, LOW);
  delay(500);
}

Code 2. 시리얼 포트 글자 출력

led-serial1.ino
const int led = 13;

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

void loop() {
  Serial.println("LED ON");
  digitalWrite(led, HIGH);
  delay(500);

  Serial.println("LED OFF");
  digitalWrite(led, LOW);
  delay(500);
}

Code 3. 볼륨값 입력 받기

led-serial2.ino
const int led = 13;

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

void loop() {
  int val = analogRead(A0);
  Serial.print("Volume : ");
  Serial.println(val);

  Serial.println("LED ON");
  digitalWrite(led, HIGH);
  delay(500);

  Serial.println("LED OFF");
  digitalWrite(led, LOW);
  delay(500);
}

Code 4. 볼륨값 그래프로 보기

led-serial3.ino
const int led = 13;

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

void loop() {
  int val = analogRead(A0);
  Serial.print("0, 1023, ");
  Serial.println(val);

  Serial.println("LED ON");
  digitalWrite(led, HIGH);
  delay(500);

  Serial.println("LED OFF");
  digitalWrite(led, LOW);
  delay(500);
}

Code 5. 볼륨값이 특정 구간에 들어오면 LED 켜기

led-serial4.ino
const int led = 13;
const int trigL = 500;

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

void loop() {
  int val = analogRead(A0);
  Serial.print("0, 1023, ");
  Serial.println(val);

  if(val > trigL) {
    digitalWrite(led, HIGH);
    delay(10);
  } else {
    digitalWrite(led, LOW);
    delay(10);
  }
}

Code 6. 서보모터 움직이기

servo.ino
#include <Servo.h>
#define SERVO_PIN 9

Servo sv;

void setup() {
  sv.attach(SERVO_PIN);
}

void loop() {
  sv.write(0);
  delay(1000);

  sv.write(90);
  delay(1000);

  sv.write(180);
  delay(1000);

  sv.write(90);
  delay(1000);
}

Code 7. 볼륨으로 서보 모터 움직이기

serial-servo1.ino
#include <Servo.h>
#define SERVO_PIN 9

const int led = 13;

Servo sv;

void setup() {
  pinMode(led, OUTPUT);
  Serial.begin(115200);
  sv.attach(SERVO_PIN);
}

void loop() {
  int val = analogRead(A0);
  Serial.print("0, 1023, ");
  Serial.println(val);
  sv.write(val);
  delay(10);
}

Code 8. 볼륨으로 서보 모터 움직이기, 범위제한

serial-servo2.ino
#include <Servo.h>
#define SERVO_PIN 9

const int led = 13;

Servo sv;

void setup() {
  pinMode(led, OUTPUT);
  Serial.begin(115200);
  sv.attach(SERVO_PIN);
}

void loop() {
  int val = analogRead(A0);
  Serial.print("0, 1023, ");
  Serial.println(val);
  val = map(val, 0, 1023, 0, 180);
  sv.write(val);
  delay(10);
}