# 목적
아날로그 입력값을 처리하여 디지털 값으로 출력하는방법을 배운다.
# 가변저항으로 FND 에 0부터 9까지 숫자 표시하기
목표 : 가변저항에 따라 FND에 0부터 9까지의 숫자 중 하나를 표시하기
준비물 : 아두이노 키트, FND, 가변저항
입출력 설명
입력 : analogRead
처리 :
출력 : digitalWrite
## 하드웨어
## 코드
int value = 0;
void setup(){
for(int i = 6; i < 14; i++){
pinMode(i, OUTPUT);
}
}
void loop(){
// 입력받은 아날로그 값(0~1023)의 FND가 출력할 숫자의 범위(0~9)로 변환하는 방법. 입력 값에 110을 나눠서 사용하거나, map() 함수를 이용하여 범위를 지정할 수 있다.
// value = map(analogRead(0), 0, 1023, 0, 9);
value = analogRead(0);
value = value / 110;
fnd(value);
}
void fnd(int i){
if(i == 0){
// FND에 0표시
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(i == 1){
// FND에 1표시
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
if(i == 2){
// FND에 2표시
digitalWrite(7, HIGH);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(i == 3){
// FND에 3표시
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, HIGH);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(i == 4){
// FND에 4표시
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, LOW);
}
if(i == 5){
// FND에 5표시
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, HIGH);
}
if(i == 6){
// FND에 6표시
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
}
if(i == 7){
// FND에 7표시
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(i == 8){
// FND에 8표시
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
if(i == 9){
// FND에 9표시
digitalWrite(7, LOW);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, LOW);
digitalWrite(11, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
}
## 시뮬레이션