SM1205 C Dongyang Mirae University ICT ARDUINO LOGO

  • Slides: 54
Download presentation

부저 SM-1205 C 세부정보 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) LOGO prepared by Choon Woo

부저 SM-1205 C 세부정보 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) LOGO prepared by Choon Woo Kwon

음계와 주파수(Hz) LOGO (Hz) octave 1 2 3 4 5 6 7 8 도(C)

음계와 주파수(Hz) LOGO (Hz) octave 1 2 3 4 5 6 7 8 도(C) 32. 7032 65. 4064 130. 8128 261. 6256 523. 2511 1046. 502 2093. 005 4186. 009 도#(C#) 34. 6478 69. 2957 138. 5913 277. 1826 554. 3653 1108. 731 2217. 461 4434. 922 레(D) 36. 7081 73. 4162 146. 8324 293. 6648 587. 3295 1174. 659 2349. 318 4698. 636 레#(D#) 38. 8909 77. 7818 155. 5636 311. 1272 622. 2544 1244. 509 2489. 018 4978. 036 미(E) 41. 2034 82. 4069 164. 8138 329. 6276 659. 2551 1318. 51 2637. 02 5274. 041 파(F) 43. 6535 87. 3071 174. 6141 349. 2282 698. 4565 1396. 913 2793. 826 5587. 652 파#(F#) 46. 2493 92. 4986 184. 9972 369. 9944 739. 9888 1479. 978 2959. 955 5919. 911 솔(G) 48. 9994 97. 9989 195. 9977 391. 9954 783. 9909 1567. 982 3135. 963 6271. 927 솔#(G#) 51. 913 103. 8262 207. 6523 415. 3047 830. 6094 1661. 219 3322. 438 6644. 875 라(A) 55 110 220 440 880 1760 3520 7040 라#(A#) 58. 2705 116. 5409 233. 0819 466. 1638 932. 3275 1864. 655 3729. 31 3951. 066 시(B) 61. 7354 123. 4708 246. 9417 493. 8833 987. 7666 1975. 533 3951. 066 7902. 133 도(C) 65. 4064 130. 8128 261. 6256 523. 2511 1046. 502 2093. 005 4186. 009 8372. 018 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) prepared by Choon Woo Kwon

LOGO 부저(Buzzer) 울리기 배선도 : 아두이노-하드웨어 연결 D 8 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO)

LOGO 부저(Buzzer) 울리기 배선도 : 아두이노-하드웨어 연결 D 8 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 7 prepared by Choon Woo Kwon

부저(Buzzer) 울리기 Dongyang Mirae University 회로도 센서활용프로그래밍/ICT융합실무 (ARDUINO) 8 LOGO prepared by Choon Woo

부저(Buzzer) 울리기 Dongyang Mirae University 회로도 센서활용프로그래밍/ICT융합실무 (ARDUINO) 8 LOGO prepared by Choon Woo Kwon

tone() 과 출력 신호 LOGO [예제] tone() 명령에 의한 Arduino 핀 출력 파형 int

tone() 과 출력 신호 LOGO [예제] tone() 명령에 의한 Arduino 핀 출력 파형 int buzzer = 8; void setup() { pin. Mode(buzzer, OUTPUT); Serial. begin(9600); Arduino Uno PC IDE tone(buzzer, 500, 1000); Serial. print("Frequency(Hz) : "); Serial. println(500); } void loop() { } 2 msec = 1000 msec / 500 Hz Square wave(duty 50% ) 2 pin 8 출력 • • 1000 msec Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) prepared by Choon Woo Kwon

LOGO 부저(buzzer) 울리기 : p. 71 스케치(sketch) 프로그래밍 int buzzer = 8; int freq

LOGO 부저(buzzer) 울리기 : p. 71 스케치(sketch) 프로그래밍 int buzzer = 8; int freq = 440; int duration = 1000; // 부저 음 주파수(Hz) // 부저 음 지속 시간(msec) void setup() { pin. Mode(buzzer, OUTPUT); } void loop() { tone(buzzer, freq, duration); delay(2000); /* } 단자에 ‘HIGH(5 V)’가 인가되었을 때 부저 음이 발생하는 부저에 대해 사용 digital. Write(buzzer, HIGH); // Buzzer on delay(1000); digital. Write(buzzer, LOW); // Buzzer off delay(1000); */ Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 11 prepared by Choon Woo Kwon

(과제) 부저(buzzer) 울리기 LOGO v 과제 내용 ü 부저 동작을 위한 스케치 프로그램을 분석하라.

(과제) 부저(buzzer) 울리기 LOGO v 과제 내용 ü 부저 동작을 위한 스케치 프로그램을 분석하라. § (과제 1) 부저 울리기(1) : Melody() § (과제 2) 부저 울리기(2) : Melody(도레미. . ) § (과제 3) Melody : Plays a melody(Tom Igoe) § (과제 4) Multiple tone player(Tom Igoe) Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 12 prepared by Choon Woo Kwon

(과제 1) 부저 울리기(1) : Melody() int speaker. Pin = 8; int length =

(과제 1) 부저 울리기(1) : Melody() int speaker. Pin = 8; int length = 15; // the number of notes char notes[] = "ccggaagffeeddc "; // a space represents a rest int beats[] = { 1, 1, 1, 2, 4 }; int tempo = 300; void play. Tone(int tone, int duration) { for (long i = 0; i < duration * 1000 L; i += tone * 2) { digital. Write(speaker. Pin, HIGH); delay. Microseconds(tone); digital. Write(speaker. Pin, LOW); delay. Microseconds(tone); } } void play. Note(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; } LOGO void setup() { pin. Mode(speaker. Pin, OUTPUT); } void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // rest } else { play. Note(notes[i], beats[i] * tempo); } } } // pause between notes delay(tempo / 2); // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { play. Tone(tones[i], duration); } } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 13 prepared by Choon Woo Kwon

(과제 2) 부저 울리기(2) : Melody(도레미. . ) int speaker. Pin = 8; int

(과제 2) 부저 울리기(2) : Melody(도레미. . ) int speaker. Pin = 8; int length = 18; // the number of notes char notes[] = "cdefgab. C Cbagfedc "; // a space represents a rest int beats[] = { 1, 1, 1, 1, 2, 4 }; int tempo = 400; void play. Tone(int tone, int duration) { for (long i = 0; i < duration * 1000 L; i += tone * 2) { digital. Write(speaker. Pin, HIGH); delay. Microseconds(tone); digital. Write(speaker. Pin, LOW); delay. Microseconds(tone); } } void play. Note(char note, int duration) { char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 }; } LOGO void setup() { pin. Mode(speaker. Pin, OUTPUT); } void loop() { for (int i = 0; i < length; i++) { if (notes[i] == ' ') { delay(beats[i] * tempo); // rest } else { play. Note(notes[i], beats[i] * tempo); } } } // pause between notes delay(tempo / 2); // play the tone corresponding to the note name for (int i = 0; i < 8; i++) { if (names[i] == note) { play. Tone(tones[i], duration); } } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 14 prepared by Choon Woo Kwon

(과제 3) Melody : Plays a melody(Tom Igoe) LOGO /* Melody : Plays a

(과제 3) Melody : Plays a melody(Tom Igoe) LOGO /* Melody : Plays a melody circuit: 8 -ohm speaker on digital pin 8 void setup() { // iterate over the notes of the melody: for (int this. Note = 0; this. Note < 8; this. Note++) { created 21 Jan 2010, modified 30 Aug 2011, by Tom Igoe // to calculate the note duration, take one second // divided by the note type. //e. g. quarter note = 1000 / 4, eighth note = 1000/8, etc. int note. Duration = 1000 / note. Durations[this. Note]; tone(8, melody[this. Note], note. Duration); This example code is in the public domain. http: //www. arduino. cc/en/Tutorial/Tone */ #include "pitches. h" // notes in the melody: int melody[] = { NOTE_C 4, NOTE_G 3, NOTE_A 3, NOTE_G 3, 0, NOTE_B 3, NOTE_C 4 }; // note durations: 4 = quarter note, 8 = eighth note, etc. : int note. Durations[] = { 4, 8, 8, 4, 4, 4 }; Dongyang Mirae University // to distinguish the notes, set a minimum time between them. // the note's duration + 30% seems to work well: int pause. Between. Notes = note. Duration * 1. 30; delay(pause. Between. Notes); // stop the tone playing: no. Tone(8); } } void loop() { // no need to repeat the melody. } 센서활용프로그래밍/ICT융합실무 (ARDUINO) 15 prepared by Choon Woo Kwon

(과제 3) Melody : Plays a melody(Tom Igoe) /************* * Public Constants * (pitches.

(과제 3) Melody : Plays a melody(Tom Igoe) /************* * Public Constants * (pitches. h) *************/ #define NOTE_B 0 31 #define NOTE_C 1 33 #define NOTE_CS 1 35 #define NOTE_D 1 37 #define NOTE_DS 1 39 #define NOTE_E 1 41 #define NOTE_F 1 44 #define NOTE_FS 1 46 #define NOTE_G 1 49 #define NOTE_GS 1 52 #define NOTE_A 1 55 #define NOTE_AS 1 58 #define NOTE_B 1 62 #define NOTE_C 2 65 #define NOTE_CS 2 69 #define NOTE_D 2 73 #define NOTE_DS 2 78 #define NOTE_E 2 82 #define NOTE_F 2 87 #define NOTE_FS 2 93 #define NOTE_G 2 98 #define NOTE_GS 2 104 #define NOTE_A 2 110 #define NOTE_AS 2 117 Dongyang Mirae University #define #define #define #define #define #define #define NOTE_B 2 123 NOTE_C 3 131 NOTE_CS 3 139 NOTE_D 3 147 NOTE_DS 3 156 NOTE_E 3 165 NOTE_F 3 175 NOTE_FS 3 185 NOTE_G 3 196 NOTE_GS 3 208 NOTE_A 3 220 NOTE_AS 3 233 NOTE_B 3 247 NOTE_C 4 262 NOTE_CS 4 277 NOTE_D 4 294 NOTE_DS 4 311 NOTE_E 4 330 NOTE_F 4 349 NOTE_FS 4 370 NOTE_G 4 392 NOTE_GS 4 415 NOTE_A 4 440 NOTE_AS 4 466 NOTE_B 4 494 NOTE_C 5 523 NOTE_CS 5 554 NOTE_D 5 587 #define #define #define #define #define #define #define NOTE_DS 5 622 NOTE_E 5 659 NOTE_F 5 698 NOTE_FS 5 740 NOTE_G 5 784 NOTE_GS 5 831 NOTE_A 5 880 NOTE_AS 5 932 NOTE_B 5 988 NOTE_C 6 1047 NOTE_CS 6 1109 NOTE_D 6 1175 NOTE_DS 6 1245 NOTE_E 6 1319 NOTE_F 6 1397 NOTE_FS 6 1480 NOTE_G 6 1568 NOTE_GS 6 1661 NOTE_A 6 1760 NOTE_AS 6 1865 NOTE_B 6 1976 NOTE_C 7 2093 NOTE_CS 7 2217 NOTE_D 7 2349 NOTE_DS 7 2489 NOTE_E 7 2637 NOTE_F 7 2794 NOTE_FS 7 2960 센서활용프로그래밍/ICT융합실무 (ARDUINO) 16 #define #define #define LOGO NOTE_G 7 3136 NOTE_GS 7 3322 NOTE_A 7 3520 NOTE_AS 7 3729 NOTE_B 7 3951 NOTE_C 8 4186 NOTE_CS 8 4435 NOTE_D 8 4699 NOTE_DS 8 4978 prepared by Choon Woo Kwon

(과제 4) Multiple tone player(Tom Igoe) /* Multiple tone player Plays multiple tones on

(과제 4) Multiple tone player(Tom Igoe) /* Multiple tone player Plays multiple tones on multiple pins in sequence // turn off tone function for pin 6: no. Tone(6); // play a note on pin 7 for 500 ms: tone(7, 494, 500); delay(500); circuit: * 3 8 -ohm speaker on digital pins 6, 7, and 8 created 8 March 2010, by Tom Igoe based on a snippet from Greg Borenstein This example code is in the public domain. http: //www. arduino. cc/en/Tutorial/Tone 4 */ LOGO } // turn off tone function for pin 7: no. Tone(7); // play a note on pin 8 for 500 ms: tone(8, 523, 300); delay(300); void setup() { } void loop() { // turn off tone function for pin 8: no. Tone(8); // play a note on pin 6 for 200 ms: tone(6, 440, 200); delay(200); Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 17 prepared by Choon Woo Kwon

LOGO 시리얼(RS-232 C) 통신(p 73) Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 18 prepared by Choon

LOGO 시리얼(RS-232 C) 통신(p 73) Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 18 prepared by Choon Woo Kwon

아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3의 가상 COM 포트

아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3의 가상 COM 포트 기능 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 20 prepared by Choon Woo Kwon

아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3와 PC의 USB 연결

아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3와 PC의 USB 연결 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 21 prepared by Choon Woo Kwon

PC와 시리얼(RS 232) 통신하기 - 스케치 LOGO void setup() { Serial. begin(9600); Serial. println(“Hello

PC와 시리얼(RS 232) 통신하기 - 스케치 LOGO void setup() { Serial. begin(9600); Serial. println(“Hello Arduino. ”); } void loop() { char read_data; } if (Serial. available()) { read_data = Serial. read(); Serial. print(read_data); } delay(10); Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 24 prepared by Choon Woo Kwon

PC와 시리얼(RS 232) 통신하기 - 실행결과 LOGO 아두이노 시리얼 모니터 실행 Dongyang Mirae University

PC와 시리얼(RS 232) 통신하기 - 실행결과 LOGO 아두이노 시리얼 모니터 실행 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 25 prepared by Choon Woo Kwon

시리얼(RS 232) 통신으로 LED 제어하기 - 배선도 LOGO D 6 D 7 Dongyang Mirae

시리얼(RS 232) 통신으로 LED 제어하기 - 배선도 LOGO D 6 D 7 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 27 prepared by Choon Woo Kwon

시리얼(RS 232) 통신으로 LED 제어하기 - 회로도 LOGO Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 28

시리얼(RS 232) 통신으로 LED 제어하기 - 회로도 LOGO Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 28 prepared by Choon Woo Kwon

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO int led 1 = 7; int

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO int led 1 = 7; int led 2 = 6; int led 1_status = LOW; // LED 1 상태 int led 2_status = LOW; // LED 2 상태 void setup() { pin. Mode(led 1, OUTPUT); pin. Mode(led 2, OUTPUT); digital. Write(led 1, LOW); digital. Write(led 2, LOW); Serial. begin(9600); } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 29 prepared by Choon Woo Kwon

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO void loop() { char read_data; if

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO void loop() { char read_data; if (Serial. available()) { read_data = Serial. read(); if( read_data == '1' && led 1_status == LOW) { digital. Write(led 1, HIGH); led 1_status = HIGH; Serial. println("LED 1 ON"); } else if( read_data == '1' && led 1_status == HIGH ) { digital. Write(led 1, LOW); led 1_status = LOW; Serial. println("LED 1 OFF"); } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 30 prepared by Choon Woo Kwon

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO if( read_data == '2' && led

시리얼(RS 232) 통신으로 LED 제어하기 - 스케치 LOGO if( read_data == '2' && led 2_status == LOW) { digital. Write(led 2, HIGH); led 2_status = HIGH; Serial. println("LED 2 ON"); } else if( read_data == '2' && led 2_status == HIGH ) { digital. Write(led 2, LOW); led 2_status = LOW; Serial. println("LED 1 OFF"); } } delay(10); } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 31 prepared by Choon Woo Kwon

LOGO 시리얼(RS 232) 통신으로 LED 제어하기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 32

LOGO 시리얼(RS 232) 통신으로 LED 제어하기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 32 prepared by Choon Woo Kwon

LOGO 아날로그 입력과 출력(p. 85) Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 33 prepared by Choon

LOGO 아날로그 입력과 출력(p. 85) Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 33 prepared by Choon Woo Kwon

가변 저항으로 LED밝기 조절하기 - 배선도 D 9 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 36

가변 저항으로 LED밝기 조절하기 - 배선도 D 9 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 36 LOGO A 0 prepared by Choon Woo Kwon

가변 저항으로 LED밝기 조절하기 - 배선도 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 37 LOGO prepared

가변 저항으로 LED밝기 조절하기 - 배선도 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 37 LOGO prepared by Choon Woo Kwon

가변 저항으로 LED밝기 조절하기 - 스케치 LOGO int sensor. Pin = A 0; //

가변 저항으로 LED밝기 조절하기 - 스케치 LOGO int sensor. Pin = A 0; // select the input pin for the potentiometer int led = 9; // the pin that the LED is attached to void setup() { pin. Mode(led, OUTPUT); Serial. begin(9600); } void loop() { int sensor. Value = 0; § analog. Read() 결과값의 범위 : 0~1023(10 bit, 210) § analog. Write(핀, 값) PWM 출력에서 값의 범위 : 0~255(8 bit, 28) v 2개의 범위를 매핑(mapping)하는 함수 § map(value, from. Low, from. High, to. Low, to. High) (예) y = map(x, 1, 50, 1); analog. Write(led, map(sensor. Value, 0, 1023, 0, 255)); sensor. Value = analog. Read(sensor. Pin); analog. Write(led, sensor. Value); Serial. println(sensor. Value); } delay(10); Dongyang Mirae University y 255 PWM출력을 위한 값 0 센서활용프로그래밍/ICT융합실무 (ARDUINO) 38 sensor. Value 1023 x prepared by Choon Woo Kwon

가변 저항으로 LED밝기 조절하기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 39 LOGO prepared

가변 저항으로 LED밝기 조절하기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 39 LOGO prepared by Choon Woo Kwon

아날로그 입력으로 전압값 읽기 - 배선도 D 9 LOGO A 0 3. 3 V

아날로그 입력으로 전압값 읽기 - 배선도 D 9 LOGO A 0 3. 3 V Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 41 prepared by Choon Woo Kwon

아날로그 입력으로 전압값 읽기 - 스케치 LOGO int sensor. Pin = A 0; //

아날로그 입력으로 전압값 읽기 - 스케치 LOGO int sensor. Pin = A 0; // select the input pin for the potentiometer int led = 9; // the pin that the LED is attached to void setup() { pin. Mode(led, OUTPUT); Serial. begin(9600); } void loop() { int sensor. Value = 0; float voltage = 0. 0; sensor. Value = analog. Read(sensor. Pin); voltage = ((float)sensor. Value/1023. 0)*5. 0; Serial. print(sensor. Value); Serial. print(", "); Serial. println(voltage); analog. Write(led, sensor. Value); delay(10); } Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 42 prepared by Choon Woo Kwon

아날로그 입력으로 전압값 읽기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 43 LOGO prepared

아날로그 입력으로 전압값 읽기 - 실행결과 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 43 LOGO prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 45 LOGO prepared by Choon

7 세그먼트(Seven Segment) LED Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 45 LOGO prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 LOGO 7 Segment Common Cathode FND (flexible numeric display)

7 세그먼트(Seven Segment) LED 구동 LOGO 7 Segment Common Cathode FND (flexible numeric display) 9 10 7 6 1 2 Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 46 4 5 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 7 Segment Common Cathode FND Dongyang Mirae University LOGO

7 세그먼트(Seven Segment) LED 구동 7 Segment Common Cathode FND Dongyang Mirae University LOGO (flexible numeric display) 센서활용프로그래밍/ICT융합실무 (ARDUINO) 47 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 #define SEG_START 11 // 시작 글자 모양 (11번) //

7 세그먼트(Seven Segment) LED 구동 #define SEG_START 11 // 시작 글자 모양 (11번) // 7 Segment FND의 각 Segment 지정 : led 불이 켜지는 숫자 지정 #define #define SEG_A SEG_B SEG_C SEG_D SEG_E SEG_F SEG_G SEG_H 7 6 5 2 1 9 10 4 a // Segment a ******* // Segment b f* *b // Segment c * g * // Segment d ******* // Segment e e* *c // Segment f * * // Segment g ******* * h(DP) // Segment h d void fnd(unsigned char n) { //display_number 함수를 지정 : 숫자모양 생성 switch (n) { case 0: // Number 0 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, LOW); digital. Write(SEG_H, LOW); break; case 1: // Number 1 digital. Write(SEG_A, LOW); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, LOW); break; Dongyang Mirae University LOGO case 2: // Number 2 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, LOW); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, LOW); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 3: // Number 3 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW ); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 4: // Number 4 digital. Write(SEG_A, LOW); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, HIGH ); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; 센서활용프로그래밍/ICT융합실무 (ARDUINO) 48 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 case 5: // Number 5 digital. Write(SEG_A, HIGH); digital.

7 세그먼트(Seven Segment) LED 구동 case 5: // Number 5 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, LOW); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, LOW); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 6: // Number 6 digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 7: // Number 7 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, LOW); break; Dongyang Mirae University LOGO case 8: // Number 8 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 9: // Number 9 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 10: // POINT digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; 센서활용프로그래밍/ICT융합실무 (ARDUINO) 49 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 case 11: // MINUS digital. Write(SEG_A, LOW); digital. Write(SEG_B,

7 세그먼트(Seven Segment) LED 구동 case 11: // MINUS digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, LOW); break; case 12: // BLANK digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, LOW); break; } } Dongyang Mirae University LOGO void setup() { pin. Mode(SEG_A, OUTPUT); pin. Mode(SEG_B, OUTPUT); pin. Mode(SEG_C, OUTPUT); pin. Mode(SEG_D, OUTPUT); pin. Mode(SEG_E, OUTPUT); pin. Mode(SEG_F, OUTPUT); pin. Mode(SEG_G, OUTPUT); pin. Mode(SEG_H, OUTPUT); } void loop() { int i; fnd(SEG_START ); //처음 시작은 가운데에만 빨간불을 켜 준다(11로 시작) delay(2000); } for(i = 0; i<11; i++) { fnd(i); delay(1000); } 센서활용프로그래밍/ICT융합실무 (ARDUINO) 50 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동 (old) 7 Segment Common Anode FND Dongyang Mirae University

7 세그먼트(Seven Segment) LED 구동 (old) 7 Segment Common Anode FND Dongyang Mirae University LOGO (flexible numeric display) 센서활용프로그래밍/ICT융합실무 (ARDUINO) 52 prepared by Choon Woo Kwon

7 세그먼트(Seven Segment) LED 구동(old) 7 Segment Common Anode FND Dongyang Mirae University 센서활용프로그래밍/ICT융합실무

7 세그먼트(Seven Segment) LED 구동(old) 7 Segment Common Anode FND Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 53 LOGO (flexible numeric display) prepared by Choon Woo Kwon

LOGO Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 54 prepared by Choon Woo Kwon

LOGO Dongyang Mirae University 센서활용프로그래밍/ICT융합실무 (ARDUINO) 54 prepared by Choon Woo Kwon