Presentation is loading. Please wait.

Presentation is loading. Please wait.

PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.

Similar presentations


Presentation on theme: "PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소."— Presentation transcript:

1 PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소

2 세미나 소개 대상: 회로 구성 및 프로그램에 대한 경험이 적은 사람 목적 : PIC에 대한 자신감 얻기!!! 일정
PIC로 LED 제어 2일째 : PIC와 PC간의 통신, 기본적인 센서 다루는 방법 알기 PIC와 PC를 시리얼로 통신하여 LED를 제어 PIC로 센서 값을 읽어서 PC로 전송 3~7일째 : 지금까지 배운 것들을 응용해서 새로운 것 만들기.

3 PIC 소개 PIC는 일종의 CPU PIC16F73 / PIC16F84 / PIC16F877 / PIC12F675
ALU / 메모리 / 제어모듈을 모두 포함 제어모듈 : UART통신, 모터제어, Analog-Digital Converter 등 마이크로 컴퓨터 혹은 마이크로 컨트롤러라고 불림. 흔히 마이컴이라 불리기도 . RISC 구조 (보통 35개 정도의 instruction을 갖고 있음) 어쩌구 저쩌구.. PIC16F73 / PIC16F84 / PIC16F877 / PIC12F675

4 PIC 소개 PIC16F73 적당히 다양한 기능과 적당한 수의 ADC 포트와 적당한 수의 IO핀 등을 제공한다. (28 pin) PWM 까지도 갖추고 있어 웬만한 건 다 가능하다. 연구실에서 가장 많이 사용 <PIC16F73> <L-Luminaria에서의 응용 예>

5 PIC 소개 oscillator 좌측 상단부터 1번 핀 동그란 마크가 있음 A Port / ADC Port B Port
Master Clear A Port / ADC Port B Port Power VDD-5V VSS-GND oscillator UART PWM C Port

6 PIC 소개 PIC 1 Power CLOCK Oscillator VDD, VSS B Port A Port ADC C Port
UART PWM

7 PIC 소개 Program memory: 4096x14 Data RAM: 192 Stack: 8 I/O: 22
Analog Pins: 5

8 PIC 소개 PIC16F84 우리 연구소에 널리 돌아다니는 PIC관련 서적인 <PIC16F84의 기초 + α>의 주인공. 현재 확인 결과 연구소에 존재하지 않는 것 같음 아래의 그림과 같이 아주 심플한 구조를 갖고 ..

9 PIC 소개 PIC16F877 <PIC16F877A> <SOTORO2007에서 응용 예>
스타크에서 울트라 같은 놈 (40 pin) 다양한 기능보다는 많은 포트가 필요할 때 사용되는 것 같음 (경험상). 커서 꽂아 놓기만 해도 뭔가 ‘있어 보이는’ 시각적 효과. 착시. <PIC16F877A> <SOTORO2007에서 응용 예>

10 PIC 소개 Program memory: 8192x14 Data RAM: 367 Stack: 8 I/O: 33
Analog Pins: 8 Data EEPROM: 256

11 PIC 소개 PIC12F675 적은 포트와 적은 기능을 갖추고 있음 (8 pin) <Nanobot에서 응용 예>

12 디버깅 Multimeter 주로 전압이나 저항을 재거나 Connectivity 테스트에 사용됨
위의 그림과 같이 파워 세이브를 위해 꺼져있는데 이 때 다시 동작시키기 위해서는 OFF로 돌렸다가 다시 원하는 위치로 돌리면 켜짐. 시가 40만원 상당

13 디버깅 Scopemeter 주로 전압의 파형(?)을 보기 위해 사용 이쯤만 되도 완전 신세계. 특히 통신이 있을 경우 필수품.
없으면 ? 시가 400만원 상당. 작다 ! 좋다 ! (1기 장선연 선배님 말씀)

14 책 PIC 관련 PIC용 C언어 관련 전자공학 관련 PIC16F84의 기초 + α
PIC용 C언어 관련 CCS-C 실전가이드: PIC 마이컴용 C언어 전자공학 관련 Physical Computing: 전자회로 구성에 대한 쉬운 설명

15 참고 사이트 Microchip社 (PIC 제작사) http://www.microchip.com Datasheets
전자부품, 로봇부품, 기계부품

16 1st Day: PIC로 LED 깜박거리게 하기

17 1st Day: 목차 회로구성 프로그래밍 생각해 볼 거리

18 1st Day: 회로 구성 머리 에너지: 7805 Output: LED(빛이 나오는 소자) Input: 없음 PIC 7805
PIC16F73 (PIC의 한 종류) OSC: PIC는 CPU므로 클럭이 필요 에너지: 7805 5V 이상의 전압을 5V로 바꿔 줌(12V  5V) 일반적인 PIC는 5V에서 동작 Output: LED(빛이 나오는 소자) Input: 없음 PIC 5V 12V 7805 Adaptor LED OSC

19 1st Day: 회로 구성 . . . . . Socket-12V Adapter가 꽂힌다.
v전압을 5v로 떨어뜨린다. . LED-Light Emissive Diode. . OSC-클럭을 발생시킨다. . PIC-마이크로 컨트롤러.

20 1st Day: 프로그래밍 A port를 ADC로 사용하지 않음 PIC 내부에 필요한 타이머를 Setting
IO 포트인 B port를 Input용으로 사용할 것인지 Output용으로 사용할 것인지 setting LSB-0번 포트/MSB-7번 포트로 Map, 1-In / 0-Out Output으로 지정된 모든 B port에 대해 output signal을 High/Low 중 하나로 결정 1-High / 0-Low

21 1st Day: 프로그래밍(1) Header File #include <16F73.h> #device adc=8
#FUSES NOWDT //No Watch Dog Timer //다른 클럭 (ex_20Mhz) 주의해야 하는 옵션 #FUSES XT //Crystal osc <= 4mhz #FUSES NOPUT //No Power Up Timer #FUSES NOPROTECT //Code not protected from reading #FUSES BROWNOUT //Reset when brownout detected //클럭에 따라 값을 setting #use delay(clock= ) //1일째에는 사용되지 않지만 UART 통신에 관한 옵션 //232통신을 사용하고 Baud Rate이 9,600. Parity Bit을 사용하지 않고 C6, C7 pin을 각각 Tx, Rx핀으로 사용 #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

22 1st Day: 프로그래밍(2) set_tris_b(0b00000000) output_b(0b11000000)
PIC B ports의 Output / Input 기능 결정 0: Output ( 숫자 0은 ‘O’랑 비슷하니까 Output) 1: Input ( 숫자 1은 ‘I’ 랑 비슷하니까 Input) B7 ~ B0 Ex. set_tris_b(0b ) : B0 Pin Input 기능, 나머지 Pin Output 기능 output_b(0b ) PIC B ports의 출력의 High/Low 결정 1: High, 0: Out (Digital 이니까) Ex. output_b(0b ) : B7, B6 Pin High, 나머지 Pin Low

23 1st Day: 프로그래밍(3) delay_ms(500) 일정 시간 동안 프로그램 진행 지연 단위: [ms]

24 1st Day: 생각해 볼 문제 Delay 시간을 500ms, 200ms, 10ms로 바꾸면서 실험해보세요. 그리고 어떤 이상한 현상이 일어나면 왜 그런 현상이 일어나는지를 생각해보세요.

25 2nd Day: PIC와 PC 간의 통신 PIC로 센서 값 읽기

26 2nd Day: 목차 UART 통신 회로구성 프로그래밍 센서값 읽어오기 센서

27 UART 통신: 회로 구성 MAX232: PIC를 PC와 RS232 통신 할 수 있게 해주는 녀석
Output: LED, PC로 송신 Input: PC로부터 오는 값 (디지털) PIC LED 5V 12V 7805 Adaptor MAX232 OSC

28 UART 통신: 회로 구성 . . . . . . Socket-12V Adapter가 꽂힌다.
v전압을 5v로 떨어뜨린다. . LED-Light Emissive Diode. . OSC-클럭을 발생시킨다. Serial Cable을 통해 PC로 전송 PIC-마이크로 컨트롤러. . . MAX232-MAXIM社의 232Chip

29 UART 통신: 프로그래밍 Standard Input이 PIC의 Rx (Receive)pin으로 설정.
이 경우 UART로 연결된 PC의 키보드 Input을 읽어 온다. Standard Out이 PIC의 Tx (Transmit)pin으로 설정. 이 경우 UART로 연결된 PC로 문자가 전송된다.

30 UART 통신: 프로그래밍(2) getc() printf(“LED B7 On\n\r”)
PC에서 오는 1byte data 수신하는 함수 8 bit character return PC에서 Data 수신 전까지 다음 줄로 안 넘어감(내부적으로 Loop 문) printf(“LED B7 On\n\r”) PC의 하이퍼터미널에 그대로 찍힘 보통 자신이 짠 PC와의 통신 프로그램에서는 ‘putc()’를 이용해서 1byte씩 보냄

31 센서 센서 뭔가를 측정해서 전기적으로 알려주는 녀석 뭔가?: 열, 빛, 연기, 습도, 바람 등
우리가 사용 할 센서: CDS(Cadmium Sulfide) 빛 감지 센서 밝으면 저항값 감소 어두우면 저항값 증가 CdS... 화학기호입니다. 황화 카드뮴 셀.. 이란 거죠.. Cd 가 카드뮴 S 가 황 이죠.. CdS 센서는 광에 쏘여지면 저항값이 감소하는 광도전효과(Photo conductive effect)를 이용한 반도체 포토센서 입니다. 광도전셀로서 CdS 말고도 CdSe(셀렌화 카드뮴), Cd(S.Se) 황화셀렌화 카드뮴등이 있으나 특별히 지정하지 않는한 CdS 셀로 총칭하고 있습니다.

32 센서: 회로 구성 Input: CDS(아날로그) Output: PC로 송신(센서 값) PIC CDS 7805 Adaptor
5V 12V 7805 Adaptor MAX232 OSC

33 센서: 회로 구성 . . . . . . . Socket-12V Adapter가 꽂힌다.
v전압을 5v로 떨어뜨린다. . LED-Light Emissive Diode. . CDS센서-조도센서 Serial Cable을 통해 PC로 전송 . PIC-마이크로 컨트롤러. . MAX232-MAXIM社의 232Chip . OSC-클럭을 발생시킨다.

34 센서: 프로그래밍 ADC로 설정된 포트 중 어느 곳에서 값을 읽어 올 것인지를 결정
Set_adc_channel() 함수로 지정된 ADC포트의 값을 읽어서 리턴한다.

35 센서: 프로그래밍(2) read_adc() PIC로 들어오는 아날로그 입력 값을 읽음
PIC 종류에 따라서 8bit or 16bit int return PIC16F73은 8bit ADC int: 8bit, long int: 16bit

36 기타 센서들 Tilt Sensor: 기울기 측정 IR 거리 센서 압력센서 온도센서 디지털 나침반 동작 감지 센서 버튼 등등…

37 Actuators LED 전구 솔레노이드 모터 스피커 펠티어소자 등등…

38 몇 가지 팁


Download ppt "PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소."

Similar presentations


Ads by Google