728x90
반응형
ADC 저항과 써미스터로 온도 측정
써미스터 :
서미스터(thermistor)란 저항기의 일종으로, 온도에 따라 물질의 저항이 변화하는 성질을 이용한 전기적 장치이다. 열가변저항기라고도 하며, 주로 회로의 전류가 일정 이상으로 오르는 것을 방지하거나, 회로의 온도를 감지하는 센서로써 이용된다.
adc.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #include "adc.h" void adc_Init(void) { ADMUX = (0 << REFS1)|(0 << REFS0)|(1 << ADLAR)|(0 << MUX4)|(0 << MUX3)|(0 << MUX2)|(0 << MUX1)|(0 << MUX0); //adlar 1 left ADCSRA = (1 << ADEN )|(0 << ADSC) |(0 << ADATE)|(0 << ADIF)|(0 << ADIE)|(1 << ADPS2)|(1 << ADPS1)|(0 << ADPS0); ADCSRB = (0 << ACME )|(0 << MUX5) |(0 << ADTS2)|(0 << ADTS1)|(0 << ADTS0); // 설정 없음 return; } unsigned int adc_Run0(void) { //adc_Init(); ADCSRA = ADCSRA |(1 << ADSC); // high while( 0 != (ADCSRA &(1 << ADSC))); //중지되면 data 출력 return ADCH; //high 만 리 } | cs |
4번 ADMUX 기존과 달리 ADLAR을 1로 바꿈 (왼쪽 정렬)
main.c
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 32 33 | #include "main.h" #include "lcd.h" #include "usart.h" #include "adc.h" int main(void) { unsigned char ucData; char caVal[] = "0000"; unsigned int uiVal; LCD_Init(); // usart0_Init(); adc_Init(); sei(); usart0_Str("AVR ON"); while(1) { uiVal = adc_Run0(); caVal[0] = '0' + (uiVal/1000); caVal[1] = '0' + (uiVal%1000)/100; caVal[2] = '0' + (uiVal%1000)%100/10; caVal[3] = '0' + (uiVal%1000)%100%10; // uival%10 LCD_Str(caVal); usart0_Str(caVal); LCD_Inst(LCD_HOME); } return 0; } | cs |
29번 : LCD_Inst(LCD_HOME); 여러번 찍히는거 반복 막음
PWM
PWM은 프로세서의 디지털 출력으로 아날로그 회로를 제어하는 강력한 기법이다. PWM은 계측과 통신에서 전력제어와 전력 변환에 이르기까지 광범위한 영역에서 사용되고 있다.
728x90
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
2016_04_04_업무일지_노태경 (0) | 2016.04.04 |
---|---|
20160328-업무일지-허도경-로봇제어-환경변수 (0) | 2016.04.04 |
20160401_노유찬_리눅스 명령어 (1) | 2016.04.04 |
20160330_김도관_업무일지_C언어기초 및 리눅스기초 (0) | 2016.04.03 |
20160323_김도관_업무일지_시리얼통신3_저항연결 (0) | 2016.04.03 |
20160322_김도관_업무일지_시리얼통신2 (0) | 2016.04.03 |
20160321_김도관_업무일지_시리얼통신1 (0) | 2016.04.03 |
20160403_김가연_스터디일지_섭씨 화씨 변환 소스 (7) | 2016.04.03 |