시리얼 통신


어제했던 예제와 결합해서

숫자를 입력하면 7-segment에 출력되는 예제를 해봅시다.


소스는 아래와 같습니다.


int signal[10][7] = { 

    { 0,0,0,0,0,0,1 }, // = 0

    { 1,0,0,1,1,1,1 }, // = 1

    { 0,0,1,0,0,1,0 }, // = 2

    { 0,0,0,0,1,1,0 }, // = 3

    { 1,0,0,1,1,0,0 }, // = 4

    { 0,1,0,0,1,0,0 }, // = 5

    { 0,1,0,0,0,0,0 }, // = 6

    { 0,0,0,1,1,1,1 }, // = 7

    { 0,0,0,0,0,0,0 }, // = 8

    { 0,0,0,1,1,0,0 } // = 9

  };


void setup() {

  // put your setup code here, to run once:

  pinMode(2, OUTPUT);

  pinMode(3, OUTPUT);

  pinMode(4, OUTPUT);

  pinMode(5, OUTPUT);

  pinMode(6, OUTPUT);

  pinMode(7, OUTPUT);

  pinMode(8, OUTPUT);

  pinMode(9, OUTPUT);

  

  Serial.begin(9600); 


}


void loop() {

  // put your main code here, to run repeatedly:

    

    if(Serial.available()){

//    Serial.write(Serial.read());

//    Serial.println();

//    showNum(Serial.read());

      showNum(Serial.parseInt());

  }

   

}

void showNum(int num){

  int pin = 2;

  int index = 0;

  for ( pin = 2; pin<9; pin++, index++){

    digitalWrite(pin, signal[num][index]);

  }

}


(작동사진 및 동영상)




LED밝기 조절 소스


void setup() {

  // put your setup code here, to run once:

  pinMode(11, OUTPUT);


}


void loop() {

  // put your main code here, to run repeatedly:

  int i =0;

  for(i=0; i<255; i++){        // 밝기가 점점 밝아지게

    analogWrite(11, i);   

    delay(10);

  }


  for(i=255; i>0; i--){         // 밝기가 점점 어두워지게

    analogWrite(11, i);

    delay(10);

  }

  

}


LED밝기 조절되는 영상!







Posted by 보로로롬
,