오늘도 아두이노에 대해 이어서 공부했다.
#define TRIG 9
#define ECHO 8
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop() {
digitalWrite(TRIG, HIGH);
delay(10);
digitalWrite(TRIG, LOW);
float duration = pulseIn(ECHO, HIGH);
float distance = ((34000*duration)/1000000)/2;
Serial.print(distance);
Serial.println("cm");
delay(100);
}
// 초음파 센서로 부저와 LED 작동
#define TRIG 9
#define ECHO 8
#define BUZZER 13
#define LED 3
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
}
void loop() {
digitalWrite(TRIG, HIGH);
delay(10);
digitalWrite(TRIG, LOW);
float duration = pulseIn(ECHO, HIGH);
float distance = ((34000*duration)/1000000)/2;
if(distance < 300) {
digitalWrite(BUZZER, HIGH);
digitalWrite(LED, HIGH);
} else {
digitalWrite(BUZZER, LOW);
digitalWrite(LED, LOW);
}
Serial.print(distance);
Serial.println("cm");
delay(100);
}
#define GAS_A A0
#define GAS_D 8
#define BUZZER 13
#define LED 3
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(BUZZER, OUTPUT);
Serial.println("히터 가열");
delay(1000);
}
void loop() {
float sensorValue = analogRead(GAS_A);
float sensorDValue = digitalRead(GAS_D);
Serial.println("");
Serial.print("센서 입력 : ");
Serial.println(sensorValue);
if(sensorValue > 300) {
Serial.print(" |연기감지!");
Serial.println("");
digitalWrite(BUZZER, HIGH);
digitalWrite(LED, HIGH);
} else {
digitalWrite(BUZZER, LOW);
digitalWrite(LED, LOW);
}
Serial.print("센서 디지털 : ");
Serial.print(sensorDValue);
Serial.println("");
delay(1000);
}
#include <Servo.h>
Servo servo;
void setup() {
Serial.begin(9600);
servo.attach(10);
}
void loop() {
for (int angle=0; angle<=180; angle ++) {
servo.write(angle);
Serial.print("angle : ");
Serial.print(angle);
Serial.println("");
delay(100);
}
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlight();
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Hello, World!");
delay(1000);
lcd.setCursor(0, 1);
lcd.print("Posco X Codingon");
delay(1000);
lcd.clear();
delay(1000);
}
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo servo;
int prevResistor = -1;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
servo.attach(10);
lcd.setCursor(0, 0);
lcd.print("Current Angle");
}
void loop() {
int resistor = analogRead(A0);
Serial.println(resistor);
resistor = map(resistor, 0, 1023, 0, 180);
servo.write(resistor);
if(resistor != prevResistor) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(resistor);
lcd.write(0xDF);
prevResistor = resistor;
}
Serial.println("");
Serial.print(resistor);
Serial.println(" °");
}
이제 어느 정도 익숙해져서 문제를 보자마자 회로 구성을 쉽게 할 수 있었다. 코드 작성도 거의 비슷한 패턴이 많아서 하면 할수록 적응되고 있는 것 같다.