메뉴 건너뛰기

배경이미지

Arduino - 2개센서 구동 LED

2018.04.06 12:42

2개센서 구동 LED

조회 수 74 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

double counter ;
int bright;
int flag=2;

double counter2 ;
int bright2;
int flag2=2;
 void setup() {
   Serial.begin(9600);
   pinMode(A1, INPUT_PULLUP); // 스위치 = IR센서
   pinMode(A0, INPUT_PULLUP);
  
   pinMode(9,OUTPUT);  ///L293D PWM pin
   pinMode(10,OUTPUT);

   pinMode(A4,OUTPUT);  
 }

void loop()
{
   Serial.print(digitalRead(A0));
   Serial.print("  ");
   Serial.print(digitalRead(A1));Serial.print("  ");
   Serial.print(flag);Serial.print("  ");
   //IR센서 사용 시 analogRead(A0)<400
   if(digitalRead(A0)==LOW&&flag==2) // 스위치가 눌린 경우
   {
      digitalWrite(9,HIGH);
      digitalWrite(A4,HIGH);
      flag=3;
   }

   //IR센서 사용 시 analogRead(A0)>400 ->digitalRead(A0)==HIGH
   if(digitalRead(A0)==HIGH && flag==3) // 스위치가 안눌린 경우
   {
      counter = 255;
      flag=1;
   }
   if(flag==1) // flag 가 1인 경우 dimming 시작
   {
     if(digitalRead(A0)==HIGH) //dimmming이 시작되는 과정에서 센서가 감지되지 않은 경우
     {
       counter=counter-2;
       if(counter < 0 ) { flag=2; digitalWrite(9,LOW);digitalWrite(A4,LOW);}
       if(counter > 0 )
       {
          bright=map(counter,0,255,0,255);
          analogWrite(9,bright);
       }
     }
     if(digitalRead(A0) == LOW)//dimmming이 시작되는 과정에서 센서가 감지된 경우
     {
        flag=2; 
     }
   }
///////////////////////////////////////////////////////////////////////////////////
   if(digitalRead(A1)==LOW&&flag2==2) // 스위치가 눌린 경우
   {
      digitalWrite(10,HIGH);
      flag2=3;
   }

   //IR센서 사용 시 analogRead(A1)>400 ->digitalRead(A1)==HIGH
   if(digitalRead(A1)==HIGH && flag2==3) // 스위치가 안눌린 경우
   {
      counter2 = 255;
      flag2=1;
   }
   if(flag2==1) // flag2 가 1인 경우 dimming 시작
   {
     if(digitalRead(A1)==HIGH) //dimmming이 시작되는 과정에서 센서가 감지되지 않은 경우
     {
       counter2=counter2-2;
       if(counter2 < 0 ) { flag2=2; digitalWrite(10,LOW);}
       if(counter2 > 0 )
       {
          bright2=map(counter2,0,255,0,255);
          analogWrite(10,bright2);
       }
     }
     if(digitalRead(A1) == LOW)//dimmming이 시작되는 과정에서 센서가 감지된 경우
     {
        flag2=2; 
     }
   }
   Serial.println(counter);
}

?
  • ?
    EMOON 2018.04.06 18:08
    double counter ;
    int bright;
    int flag=2;

    double counter2 ;
    int bright2;
    int flag2=2;
    void setup() {
    Serial.begin(9600);
    pinMode(A1, INPUT_PULLUP); // 스위치 = IR센서
    pinMode(A0, INPUT_PULLUP);

    pinMode(9,OUTPUT); ///L293D PWM pin
    pinMode(10,OUTPUT);

    pinMode(A4,OUTPUT);
    }

    void loop()
    {
    Serial.print(" A0 ");
    Serial.print(analogRead(A0));
    Serial.print(" A1 ");
    Serial.print(analogRead(A1));
    Serial.print(flag);Serial.print(" ");
    //IR센서 사용 시 analogRead(A0)<400 ->digitalRead(A0)==LOW
    if(analogRead(A0)<400 &&flag==2) // 스위치가 눌린 경우
    {
    digitalWrite(9,HIGH);
    digitalWrite(A4,HIGH);
    flag=3;
    }

    //IR센서 사용 시 analogRead(A0)>400 ->digitalRead(A0)==HIGH
    if(analogRead(A0)>970 && flag==3) // 스위치가 안눌린 경우
    {
    counter = 255;
    flag=1;
    }
    if(flag==1) // flag 가 1인 경우 dimming 시작
    {
    if(analogRead(A0)>970) //dimmming이 시작되는 과정에서 센서가 감지되지 않은 경우
    {
    counter=counter-2;
    if(counter < 0 ) { flag=2; digitalWrite(9,LOW);digitalWrite(A4,LOW);}
    if(counter > 0 )
    {
    bright=map(counter,0,255,0,255);
    analogWrite(9,bright);
    }
    }
    if(analogRead(A0)<970)//dimmming이 시작되는 과정에서 센서가 감지된 경우
    {
    flag=2;
    }
    }
    ///////////////////////////////////////////////////////////////////////////////////
    if(analogRead(A1)<400 &&flag2==2) // 스위치가 눌린 경우
    {
    digitalWrite(10,HIGH);
    flag2=3;
    }

    //IR센서 사용 시 analogRead(A1)>400 ->digitalRead(A1)==HIGH
    if(analogRead(A1)>7000 && flag2==3) // 스위치가 안눌린 경우
    {
    counter2 = 255;
    flag2=1;
    }
    if(flag2==1) // flag2 가 1인 경우 dimming 시작
    {
    if(analogRead(A0)>7000) //dimmming이 시작되는 과정에서 센서가 감지되지 않은 경우
    {
    counter2=counter2-2;
    if(counter2 < 0 ) { flag2=2; digitalWrite(10,LOW);}
    if(counter2 > 0 )
    {
    bright2=map(counter2,0,255,0,255);
    analogWrite(10,bright2);
    }
    }
    if(analogRead(A0)<7000)//dimmming이 시작되는 과정에서 센서가 감지된 경우
    {
    flag2=2;
    }
    }
    Serial.println(counter);
    }

  1. 2개센서 구동 LED

  2. No Image 04Apr
    by EMOON
    2018/04/04 by EMOON
    Views 75 

    L293B 모터드라이브

  3. No Image 03Apr
    by EMOON
    2018/04/03 by EMOON
    Views 109 

    Touch Sensor

  4. 센서 2개 연결

  5. No Image 29Mar
    by EMOON
    2018/03/29 by EMOON
    Views 207 

    LoL shield / LED 극성 알아보기

  6. No Image 29Mar
    by EMOON
    2018/03/29 by EMOON
    Views 75 

    ATTINY85 동작 테스트

  7. 제 수업

  8. 제5수업 LED Project

  9. No Image 07Mar
    by EMOON
    2018/03/07 by EMOON
    Views 72 

    map()

  10. No Image 28Feb
    by EMOON
    2018/02/28 by EMOON
    Views 68 

    제4 수업2 2018 0226

  11. Interactive led table module

  12. No Image 20Feb
    by EMOON
    2018/02/20 by EMOON
    Views 72 

    다수 서보모터 구동 16ch

  13. No Image 20Feb
    by EMOON
    2018/02/20 by EMOON
    Views 67 

    제3수업

  14. 제2 수업

  15. No Image 10Feb
    by EMOON
    2018/02/10 by EMOON
    Views 75 

    인터넷강의

  16. No Image 10Feb
    by EMOON
    2018/02/10 by EMOON
    Views 77 

    제1 수업

Board Pagination Prev 1 Next
/ 1