아두이노를 이용한 프로젝트(거리 LED) (완료)
- 코딩/허접한 프로젝트?
- 2020. 5. 3.
아두이노를 사용하여 뭘 만들어 볼까 생각하다가 관공서나 학교 같은 곳을 보면 중앙현관쪽에 커다란 LED로
공지 문구가 있는데 그걸 사람을 인지 해서 켜지고 사람이 없을때는 꺼지면 어떨까 해서 만들어 보았따.
소스코드
#include
#include
#include
const int RX =2;
const int TX =3;
Servo servo = Servo();
const int SERVO_PIN = 9;
const int LED_PIN =7;
const int ECHO_PIN = 12;
const int TRIGGER_PIN = 13;
int i;
SoftwareSerial BT = SoftwareSerial(RX,TX);
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27,16,2);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.begin(16, 2);
lcd.clear();
lcd.backlight();
Serial.begin(115200UL);
BT.begin(9600UL);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
Serial.begin(115200UL);
BT.begin(9600UL);
BT.println("Welcome");
pinMode(LED_PIN,OUTPUT);
pinMode(SERVO_PIN, OUTPUT);
servo.attach(SERVO_PIN);
}
void loop() {
callUltrasonic();
// put your main code here, to run repeatedly:
//lcd.setCursor(0,0);
// lcd.print("Welcome");
//블르투스 0,1,3,4,5 으로 작동
if(BT.available()>0)
{
long value = BT.parseInt();
if(value == 1)
{
digitalWrite(LED_PIN,HIGH);
}
if(value ==0)
{
digitalWrite(LED_PIN, LOW);
}
if(value == 3)
{
for(i=0; i<=180;i++)
{
servo.write(i);
delay(25);
if(i ==50)
digitalWrite(LED_PIN,HIGH);
if(i ==100)
digitalWrite(LED_PIN,LOW);
}
}
if(value ==4)
{
lcd.print("Welcome");
}
if(value ==5)
{
lcd.clear();
}
}
}
void callUltrasonic()
{
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH); /*high가들어올때까지 기다림*/
const unsigned long distance_mm = (duration/ 2.9)/2;
/**
* 거리가 200mm 인 경우 아랫코드 실행
*/
if(distance_mm > 100UL && distance_mm < 1000UL)
{
Serial.println("Alert");
}
Serial.println(distance_mm);
lcd.clear();
if(distance_mm < 300)
{
lcd.clear();
lcd.print("Welcome");
digitalWrite(LED_PIN,HIGH);
}
else
digitalWrite(LED_PIN,LOW);
}
고장났을 경우를 대비하여 블루투스를 이용하여 켜고 끌수 있따.
시현영상
'코딩 > 허접한 프로젝트?' 카테고리의 다른 글
아두이노 라즈베리파이 MYSQL 프로젝트 (1) | 2020.06.27 |
---|---|
아두이노 라즈베리파이 mysql phpmyadmin android 프로젝트 1 (2) | 2020.05.04 |
라즈베리파이 3b+ DB연결 프로젝트 (0) | 2020.05.02 |
아두이노를 이용한 층간소음 해소6 (완료) 아두이노 -> 라즈베리파이 -> mysql -> phpmyadmin -> json -> android (4) | 2019.06.05 |
카카오봇 한강물온도 파싱(자바스크립트) (0) | 2019.05.24 |