아두이노를 이용한 프로젝트(거리 LED) (완료)

    아두이노를 사용하여 뭘 만들어 볼까 생각하다가 관공서나 학교 같은 곳을 보면 중앙현관쪽에 커다란 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); 
        
    } 

       

    고장났을 경우를 대비하여 블루투스를 이용하여 켜고 끌수 있따.

     

    시현영상

    https://youtu.be/ShqMlVdFr7E

     

    아두이노

    아두이노를 사용하여 뭘 만들어 볼까 생각하다가 관공서나 학교 같은 곳을 보면 중앙현관쪽에 커다란 LED로공지 문구가 있는데 그걸 사람을 인지 해서 켜지고 사람이 없을때는 꺼지면 어떨까 해서 만들어 보았따.

    www.youtube.com

     

    댓글

    Designed by JB FACTORY