일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Minolta TC-1
- Germany
- Mamiya 7
- Kodak Ektar 100
- M-Rokkor 40/2
- SONY A7
- 2018 미국출장
- Hasselblad 500cm
- Minolta CLE
- Kodak 400TX
- cf80/2.8
- Nikon 28Ti
- Contax G2
- cs50/2.5
- Kodak T-Max 100
- ZeissIkon ZI
- FujiFilm C200
- Leica M7
- Kentmere 400
- N80/4
- fujifilm velvia 50
- 4870
- G28/2.8
- GRD2
- FujiFilm GFX50s
- Rollei35s
- 2019 유럽여행
- cf50/4 fle
- Kodak 5222
- kodak t-max 400
- Today
- Total
J 창고
[Arduino] 2-Digit 7-Segment, 가변저항 본문
int dataPin = 2;
int clockPin = 3;
int latchPin = 4;
int analogPin = A5;
int sensorValue = 0;
int number = 0;
// 0에서 9까지 숫자 표시를 위한 세그먼트 a, b, c, d, e, f, g, dp의 점멸 패턴
// 켜지는 부분이 1로 표현됨
byte digits_data[10] =
//{0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE4, 0xFE, 0xE6}; //Common Anode
{0x03, 0x9F, 0x25, 0x0D, 0x99, 0x49, 0x41, 0x1B, 0x01, 0x19}; //Comon Cathode
void setup(){
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
Serial.begin(9600);
}
void loop(){
analogREAD();
int ten = number / 10; // 십자리
int one = number % 10; // 일자리
// common anode 타입의 7 세그먼트를 사용하였으므로
// 켜지는 부분이 0이 되도록 하기 위해 비트 단위 부정(~) 연산자를 사용하였다.
digitalWrite(latchPin, LOW); // 래치 출력 금지
// 10자리 숫자를 먼저 출력한다.
shiftOut(dataPin, clockPin, LSBFIRST, ~digits_data[ten]);
// 1자리 숫자를 출력하면 10자리 숫자는 두 번째 74595로 이동된다.
shiftOut(dataPin, clockPin, LSBFIRST, ~digits_data[one]);
digitalWrite(latchPin, HIGH); // 래치 출력 허용
}
void analogREAD(){
int sensorValue = analogRead(analogPin);
number = map(sensorValue, 0, 1023, 0, 100);
Serial.println(number);
}