J 창고

[Arduino] 7 - Segment, 가변저항 본문

컴퓨터/Firmware

[Arduino] 7 - Segment, 가변저항

JSFamily 2013. 9. 22. 16:06



가변저항으로부터 A5 아날로그 단자로 받은 0~1023의 값을 int sensorValue에 대입


0~9의 10단계로 변환 후 int number 에 대입


그 number 값을 sevenSegWrite에 전달


SevenSegment에 number 값을 출력









int port1 = A5;

int sensorValue = 0;

int number =0;


byte seven_seg_digits[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() {                

  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 sevenSegWrite(byte digit) {

  byte pin = 2;

  for (byte segCount = 0; segCount < 7; ++segCount) {

    digitalWrite(pin, seven_seg_digits[digit][segCount]);

    ++pin;

  }

}


void loop() {

//  Serial.println("Press Number from 0 to 9");

  while(1){

    analogREAD();

    sevenSegWrite(number); 

  }

}



void analogREAD(){

  int sensorValue = analogRead(port1);

  number = map(sensorValue, 0, 1023, 0, 9);

  Serial.print("sensorValue(0~9) : ");

  Serial.println(number);                   // between 0~9 from sensorValue 0~1023

}


Comments