모듈 테스트
조도 센서
작성 코드
const int analogPin = A0;
const int ledPin = 10;
void setup()
{
Serial.begin(115200);
}
void loop()
{
int analogValue = analogRead(analogPin);
Serial.println(analogValue);
analogWrite(ledPin, analogValue/6);
delay(100);
}
실행 결과
조도 센서 - 출력 결과 (1) 일반 상태
조도 센서 - 출력 결과 (2) 빛을 비춘 상태
- 센서에 빛을 비추지 않을때는 analogValue 값이 커지고 LED 빛이 강해진 것을 관찰 할 수 있었다
- 센서에 빛을 비출때는 analogValue 값이 작아지고 LED 빛이 약해진 것을 관찰 할 수 있었다
초음파센서 (1)
실행 코드
const int trig_pin = 11;
const int echo_pin = 12;
void setup()
{
Serial.begin(115200);
pinMode(trig_pin,OUTPUT);
pinMode(echo_pin,INPUT);
}
void loop()
{
digitalWrite(trig_pin,LOW);
delayMicroseconds(2);
digitalWrite(trig_pin,HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin,LOW);
long duration = pulseIn(echo_pin,HIGH);
long distance = (duration/2)/29.1;
Serial.print(distance);
Serial.println(" cm");
delay(100);
}
초음파 센서 - 실행 결과(1) : 감지되는 사물이 없을 때
초음파 센서 - 실행 결과(2) : 감지되는 사물이 있을 때
- 초음파 센서 앞에 사물이 없다면 distance가 크게 출력된다
- 초음파 센서 앞에 사물이 감지된다면 distance가 작게 출력된다
초음파 센서 (2)
실행 코드
const int trig_pin = 11;
const int echo_pin = 12;
int LED1 = 4;
int LED2 = 7;
int LED3 = 8;
void setup()
{
Serial.begin(115200);
pinMode(trig_pin,OUTPUT);
pinMode(echo_pin,INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}
void loop()
{
digitalWrite(trig_pin,LOW);
delayMicroseconds(2);
digitalWrite(trig_pin,HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin,LOW);
long duration = pulseIn(echo_pin,HIGH);
long distance = (duration/2)/29.1;
Serial.print(distance);
Serial.println(" cm");
delay(100);
if (distance > 30) // distance(거리) 가 80보다 크면
{
digitalWrite(LED1, HIGH); // GREEN이 연결된 핀에 HIGH 신호(5V)를,
digitalWrite(LED2, LOW); // YELLOW가 연결된 핀에 LOW 신호(0V)를,
digitalWrite(LED3, LOW); // RED가 연결된 핀에 LOW신호(0V)를.
}
if (distance > 15 & distance <= 30)
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, LOW);
}
if (distance > 0 & distance <= 15)
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, HIGH);
}
}
초음파 센서(2) - 실행 결과(1)
초음파 센서(2) - 실행 결과(2)
초음파 센서(2) - 실행 결과(3)
- 실행 결과(1) : 초음파센서에서 distance 가 0 < distance <= 15 로 감지된다면 빨간 LED 만 켜졌다
- 실행 결과(2) : 초음파센서에서 distance 가 15< distance <= 30 로 감지된다면 노란 LED 만 켜졌다
- 실행 결과(3) : 초음파센서에서 distance 가 distance > 30 로 감지된다면 초록 LED 만 켜졌다
온도 센서
실행 결과
float temp;
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(A0);
temp = val*0.48828125; //화씨 → 섭씨 변경
Serial.print("Current Temperature : ");
Serial.println(temp);
delay(500);
}
온도 센서 - 실행 결과
주변 환경의 온도를 감지하여 출력해주고 있다
가변 저항 (1)
const int ledPin = 10;
const int analogPin = A0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorInput = analogRead(analogPin);
Serial.println(sensorInput);
analogWrite(ledPin,sensorInput/4);
}
가변저항(1) - 실행 결과(1)
가변저항(1) - 실행 결과(2)
- 가변 저항의 다이얼을 돌리는 양에 따라 sensorInput 의 값이 바뀌었고 LED 의 빛의 세기를 조절할 수 있었다
가변 저항 (2)
const int led[4] = {3,5,6,9};
const int analogPin = A0;
void setup()
{
Serial.begin(9600);
for(int x=0;x<4;x++){
pinMode(led[x], OUTPUT);
}
}
void loop()
{
int sensorInput = analogRead(analogPin);
Serial.println(sensorInput);
if(sensorInput > 1024/7*(1+0)) //146
digitalWrite(led[0],HIGH);
else digitalWrite(led[0],LOW);
if(sensorInput > 1024/7*(1+1)) //292
digitalWrite(led[1],HIGH);
else digitalWrite(led[1],LOW);
if(sensorInput > 1024/7*(1+2)) //438
digitalWrite(led[2],HIGH);
else digitalWrite(led[2],LOW);
if(sensorInput > 1024/7*(1+3)) //584
digitalWrite(led[3],HIGH);
else digitalWrite(led[3],LOW);
}
가변저항(2) - 실행 결과(1)
sensorInput 의 값이 146 보다 커지면서 첫 번째 LED 가 켜졌고 나머지 LED 들은 조건 미충족으로 LED 가 꺼져있다
가변저항(2) - 실행 결과(2)
sensorInput 의 값이 292 보다 커지면서 첫 번째, 두 번째 LED 가 켜졌고 나머지 LED 들은 조건 미충족으로 LED 가 꺼져있다
가변저항(2) - 실행 결과(3)
sensorInput 의 값이 438 보다 커지면서 첫 번째, 두 번째, 세 번째 LED 가 켜졌고 나머지 LED 는 조건 미충족으로 LED 가 꺼져있다
가변저항(2) - 실행 결과(4)
sensorInput 의 값이 584 보다 커지면서 모든 LED 가 켜졌다.
가변 저항의 다이얼을 돌리면서 sensorInput 의 값을 조절 할 수 있었다.