가변저항으로부터 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
}