아두이노
아두이노
ADELA_J
2023. 7. 12. 17:29
<조도센서 값 읽어 불 켜지게 하기>
더보기
#define BRIGHT_PIN A1
#define BRIGHT_ON 3
#define BRIGH_OON 5
void setup(){
Serial.begin(9600);
pinMode(BRIGHT_ON, OUTPUT);
pinMode(BRIGH_OON, OUTPUT);
}
void loop(){
int brightValue = analogRead(BRIGHT_PIN);
Serial.println(brightValue);
if (brightValue >= 800)
{
Serial.println("어둡습니다.");
digitalWrite(BRIGHT_ON, 255);
digitalWrite(BRIGH_OON, LOW);
}
else if (brightValue < 800 && brightValue >=500)
{
Serial.println("중간입니다.");
digitalWrite(BRIGHT_ON, LOW);
digitalWrite(BRIGH_OON, LOW);
}
else if(brightValue < 500)
{
Serial.println("밝습니다..");
digitalWrite(BRIGHT_ON, LOW);
digitalWrite(BRIGH_OON, 255);
}
delay(100);
}
- 교수님이 올려주신거
더보기
int cds = A1; // 조도센서를 아날로그 1핀(A1)에 연결
int led = 3; //LED 3번핀에 연결
void setup(){
pinMode(led, OUTPUT);
}
void loop(){
// 조도센서로 부터 측정된 밝기 값을 읽는다.
// 조도센서로 부터 입력되어지는 전압의 크기 (0~5V)에 따라 0~1023 범위의 값으로 변환
int cdsValue = analogRead(cds);
//측정된 밝기 값을 시리얼 모니터에 출력
Serial.print("cds: ");
Serial.println(cdsValue);
if (cdsValue>220){
//LED연결된 핀 - 로직레벨을 HIGH(5V)로 설정, LED를 켠다.
digitalWrite(led, HIGH);
//조도센서 값이 50보다 작으면, 아래 블록을 실행합니다.
digitalWrite(led,LOW);
}
}
<서보모터 각도 변경하기>
더보기
#include <Servo.h>
#define SERVO_PIN 8
Servo myservo;
void setup(){
myservo.attach(SERVO_PIN);
}
void loop() {
myservo.write(0);
delay(1000);
myservo.write(90);
delay(1000);
myservo.write(180);
delay(1000);
myservo.write(90);
delay(1000);
}
- 서보모터 가변저항으로 제어하며 각도가 출력되는 프로그램
더보기
#include <Servo.h>
#define SERVO_PIN 8
#define VR_PIN A0
Servo myservo;
void setup(){
Serial.begin(9600);
myservo.attach(SERVO_PIN);
}
void loop() {
int setDig = map(analogRead(VR_PIN), 0, 1023, 0, 180);
Serial.println(setDig);
myservo.write(setDig);
delay(100);
}
<온도센서>
더보기
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup(){
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float humi = dht.readHumidity();
float temp = dht.readTemperature();
if (!isnan(humi) || !isnan(temp))
{
Serial.print("Humidity: ");
Serial.print(humi);
Serial.print("% Temperature: ");
Serial.print(temp);
Serial.println("C");
}
}
<온도센서를 이용해 불쾌지수 출력하기>
더보기
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup(){
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000);
float humi = dht.readHumidity();
float temp = dht.readTemperature();
if (!isnan(humi) || !isnan(temp))
{
float di = (1.8*temp) - (0.55 * (1-humi/100.0)*(1.8*temp-26)) + 32;
Serial.print("불쾌지수: ");
Serial.println(di);
}
}

<불꽃감지 센서 - 불꽃이 감지되면 불켜지고 소리울리기>
더보기
int led = 13; // LED 핀 번호 13
int buzzer = 6; //BUZZER 핀 번호 6
int flame = 2 ; //불꽃감지 센서 핀 번호 2
int state = 0; //불꽃감지 센서의 상태 값 저장 변수
void setup(){
pinMode (led, OUTPUT); //LED를 출력으로 설정
pinMode (buzzer, OUTPUT); //BUZZER를 출력으로 설정
pinMode (flame, INPUT); //불꽃 감지 센서를 입력으로 설정
Serial.begin(9600); //시리얼통신, 속도는 9600
}
void loop() {
state = digitalRead(flame); //불꽃감지센서값 입력받음
Serial.print(state);
digitalWrite (led, LOW); //초기 LED값을 OFF설정
noTone(buzzer); //초기에 BUZZER를 출력하지 않기
if (state == 0){ //불꽃감지 센서의 값이 0일때
Serial.println("ON"); //시리얼 통신에 센서값 출력해주기
digitalWrite(led, HIGH); //LED ON
tone(buzzer,261.6); //500 음의 높낮이, 100- 부저 지속 시간
delay(100);
}
else {
Serial.println("OFF");
digitalWrite(led, LOW);
noTone(buzzer);
}
delay(100);
}
<인체감지 센서>
더보기
int LED = 2;
int sensor = 7;
int value = 0;
void setup() {
pinMode (LED, OUTPUT);
pinMode (sensor, INPUT);
}
void loop() {
value = digitalRead(sensor);
if (value == HIGH){
digitalWrite(LED, HIGH);
}
else {
digitalWrite(LED, LOW);
}
}