LOGO v Buzzer v RS232 C v LED
목차 LOGO v 부저(Buzzer) 울리기 : 부저, 멜로디 등 v 시리얼(RS-232 C) 통신 v 가변 저항으로 LED밝기 조절하기 v 7 세그먼트(Seven Segmnet) LED 구동디지털 Dongyang Mirae University 최신인터넷기술(ARDUINO) 2 prepared by Choon Woo Kwon
부저(Buzzer) 울리기 - 배선도 LOGO D 8 Dongyang Mirae University 최신인터넷기술(ARDUINO) 5 prepared by Choon Woo Kwon
부저(Buzzer) 울리기 - 회로도 Dongyang Mirae University 최신인터넷기술(ARDUINO) LOGO 6 prepared by Choon Woo Kwon
부저(buzzer) 울리기(1) : p. 71 LOGO int buzzer = 8; int freq = 440; 부저 음 주파수(Hz) int duration = 1000; 부저 음 지속 시간(msec) void setup() { pin. Mode(buzzer, OUTPUT); } void loop() { tone(buzzer, freq, duration); digital. Write(buzzer, HIGH); // Buzzer on delay(1000); } digital. Write(buzzer, LOW); // Buzzer off delay(1000); Dongyang Mirae University 최신인터넷기술(ARDUINO) 8 prepared by Choon Woo Kwon
부저(buzzer) 울리기(2) : 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 최신인터넷기술(ARDUINO) 9 prepared by Choon Woo Kwon
부저(buzzer) 울리기(3) : 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 최신인터넷기술(ARDUINO) 10 prepared by Choon Woo Kwon
LOGO 시리얼(RS-232 C) 통신(p 73) Dongyang Mirae University 최신인터넷기술(ARDUINO) 11 prepared by Choon Woo Kwon
아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3의 가상 COM 포트 기능 Dongyang Mirae University 최신인터넷기술(ARDUINO) 13 prepared by Choon Woo Kwon
아두이노 시리얼(RS 232) 통신 포트 LOGO □ 아두이노 UNO R 3와 PC의 USB 연결 Dongyang Mirae University 최신인터넷기술(ARDUINO) 14 prepared by Choon Woo Kwon
PC와 시리얼(RS 232) 통신하기 - 스케치 LOGO void setup() { Serial. begin(9600); Serial. println(“Hellow Arduino”); } void loop() { char read_data; } if (Serial. available()) { read_data = Serial. read(); Serial. print(read_data); } delay(10); Dongyang Mirae University 최신인터넷기술(ARDUINO) 17 prepared by Choon Woo Kwon
PC와 시리얼(RS 232) 통신하기 - 실행결과 LOGO 아두이노 시리얼 모니터 실행 Dongyang Mirae University 최신인터넷기술(ARDUINO) 18 prepared by Choon Woo Kwon
시리얼(RS 232) 통신으로 LED 제어하기 - 배선도 LOGO D 6 D 7 Dongyang Mirae University 최신인터넷기술(ARDUINO) 20 prepared by Choon Woo Kwon
시리얼(RS 232) 통신으로 LED 제어하기 - 회로도 LOGO Dongyang Mirae University 최신인터넷기술(ARDUINO) 21 prepared by Choon Woo Kwon
시리얼(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 최신인터넷기술(ARDUINO) 22 prepared by Choon Woo Kwon
시리얼(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 최신인터넷기술(ARDUINO) 23 prepared by Choon Woo Kwon
시리얼(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 최신인터넷기술(ARDUINO) 24 prepared by Choon Woo Kwon
LOGO 시리얼(RS 232) 통신으로 LED 제어하기 - 실행결과 Dongyang Mirae University 최신인터넷기술(ARDUINO) 25 prepared by Choon Woo Kwon
LOGO 아날로그 입력과 출력(p. 85) Dongyang Mirae University 최신인터넷기술(ARDUINO) 26 prepared by Choon Woo Kwon
가변 저항으로 LED밝기 조절하기 - 배선도 A 0 D 9 Dongyang Mirae University 최신인터넷기술(ARDUINO) LOGO 29 prepared by Choon Woo Kwon
가변 저항으로 LED밝기 조절하기 - 배선도 Dongyang Mirae University 최신인터넷기술(ARDUINO) 30 LOGO prepared by Choon Woo Kwon
가변 저항으로 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; sensor. Value = analog. Read(sensor. Pin); analog. Write(led, sensor. Value); Serial. println(sensor. Value); } delay(10); Dongyang Mirae University 최신인터넷기술(ARDUINO) 31 prepared by Choon Woo Kwon
가변 저항으로 LED밝기 조절하기 - 실행결과 Dongyang Mirae University 최신인터넷기술(ARDUINO) 32 LOGO prepared by Choon Woo Kwon
아날로그 입력으로 전압값 읽기 - 배선도 LOGO A 0 D 9 3. 3 V Dongyang Mirae University 최신인터넷기술(ARDUINO) 34 prepared by Choon Woo Kwon
아날로그 입력으로 전압값 읽기 - 스케치 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 최신인터넷기술(ARDUINO) 35 prepared by Choon Woo Kwon
아날로그 입력으로 전압값 읽기 - 실행결과 Dongyang Mirae University 최신인터넷기술(ARDUINO) 36 LOGO prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 (p. 53) LOGO 7 Segment Common Anode FND(flexible numeric display) Dongyang Mirae University 최신인터넷기술(ARDUINO) 37 prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 LOGO 7 Segment Common Anode FND(flexible numeric display) Dongyang Mirae University 최신인터넷기술(ARDUINO) 38 prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 #define SEG_START 11 // 시작 글자 모양 (11번) case 2: // Number 2 digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, HIGH); digital. Write(SEG_D, LOW); digital. Write(SEG_E, LOW); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; // 7 Segment FND의 각 Segment 지정 : led 불이 켜지는 숫자 지정 #define #define SEG_A SEG_B SEG_C SEG_D SEG_E SEG_F SEG_G SEG_H 2 3 4 5 6 7 8 9 // Segment a // Segment b // Segment c // Segment d // Segment e // Segment f // Segment g // Segment h ******* f* *b * g * ******* e* *c * * ******* * h d void fnd(unsigned char n) { //display_number 함수를 지정 : 숫자모양 생성 switch (n) { case 0: // Number 0 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, HIGH); break; case 1: // Number 1 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, HIGH); break; Dongyang Mirae University LOGO case 3: // Number 3 digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, LOW); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH ); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; case 4: // Number 4 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, LOW ); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; 최신인터넷기술(ARDUINO) 39 prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 case 5: // Number 5 digital. Write(SEG_A, LOW); digital. Write(SEG_B, HIGH); digital. Write(SEG_C, LOW); digital. Write(SEG_D, LOW); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; case 6: // Number 6 digital. Write(SEG_A, HIGH); digital. Write(SEG_B, HIGH); 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; case 7: // Number 7 digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, HIGH); digital. Write(SEG_G, HIGH); digital. Write(SEG_H, HIGH); break; Dongyang Mirae University LOGO case 8: // Number 8 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; case 9: // Number 9 digital. Write(SEG_A, LOW); digital. Write(SEG_B, LOW); digital. Write(SEG_C, LOW); digital. Write(SEG_D, HIGH); digital. Write(SEG_E, HIGH); digital. Write(SEG_F, LOW); digital. Write(SEG_G, LOW); digital. Write(SEG_H, HIGH); break; case 10: // POINT 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; 최신인터넷기술(ARDUINO) 40 prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 case 11: // MINUS 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, HIGH); break; case 12: // BLANK 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, HIGH); 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); } 최신인터넷기술(ARDUINO) 41 prepared by Choon Woo Kwon
7 세그먼트(Seven Segmnet) LED 구동 (p. 53) LOGO 7 Segment Common Anode FND (flexible numeric display) Dongyang Mirae University 최신인터넷기술(ARDUINO) 42 prepared by Choon Woo Kwon
LOGO Dongyang Mirae University 최신인터넷기술(ARDUINO) 43 prepared by Choon Woo Kwon
- Slides: 43