일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kodak T-Max 100
- Kodak 5222
- Mamiya 7
- ZeissIkon ZI
- kodak t-max 400
- cf50/4 fle
- 2019 유럽여행
- FujiFilm C200
- 4870
- 2018 미국출장
- M-Rokkor 40/2
- Minolta TC-1
- Germany
- Minolta CLE
- fujifilm velvia 50
- SONY A7
- Kentmere 400
- cf80/2.8
- FujiFilm GFX50s
- Kodak 400TX
- Contax G2
- Nikon 28Ti
- cs50/2.5
- GRD2
- G28/2.8
- N80/4
- Kodak Ektar 100
- Leica M7
- Hasselblad 500cm
- Rollei35s
- Today
- Total
J 창고
[Arduino] 7 - Segment 본문
시리얼 모니터에 0~9까지의 숫자를 입력해서
7-segment에 출력하기
(BCD 디코더를 사용X)
int incomingByte = 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);
writeDot(0); // start with the "dot" off
Serial.begin(9600);
}
void writeDot(byte dot) {
digitalWrite(9, dot);
}
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){
if(Serial.available() >0){
incomingByte = Serial.read();
Serial.print("I received : ");
Serial.println(incomingByte, DEC);
sevenSegWrite(incomingByte - 48);
}
}
}