사실 ATmega328은 아두이노 Uno와 같은 MCU를 사용함으로 같이 사용하는데 무리가 없습니다.
간단한 아두이노에서 작업을 진행하여 setup(), loop()함수가 포함되어 있지만..
setup()은 한번 실행, loop()는 반복하는 의미빼곤 다른게 없습니다. ^^;
실은 시리얼통신이나 기타 부분을 설명하는데 어려움도 있고, (시리얼통신 부분은 AVR로 처리한게 아닙니다!)
사실 우리에게 중요한 것은 동작여부 아니겠습니까??
허나 단호하게 말씀드리지만 전공자 분들은 당연히 세부 내용까지 차곡차곡 지식을 쌓아야 합니다!
연결법은
아날로그 1번핀에 아날로그센서를 연결하고 (저는 포텐시오미터(가변저항) 사용했습니다. )
전원 물론 넣어주고!
아래 코드를 업로드 하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | void setup() { Serial.begin(9600); adc_init(); } void loop() { Serial.println(adc_read(1)); } void adc_init(void) { ADMUX = (1 << REFS0); //voltage Reference Selection (AVCC with External CAP at AREF pin ADMUX &= ~(1 << ADLAR); //default ADCSRA = (1 << ADEN) | 7; //ADC Enable, ADC Prescaler : 128 } uint16_t adc_read(uint8_t adc_pin) { ADMUX |= (adc_pin & 0x0F); //ADC Channel Selection ADCSRA |= (1 << ADSC); //ADC Start Conversion while ((ADCSRA & (1 << ADSC))); //When the conversion is complete, it returns to zero return ADC; //ADCL+ADCH 10bit } | cs |
참 쉽죠?
반응형
'b. 임베디드 > AVR' 카테고리의 다른 글
[ATtiny2313A] Blink 예제 (0) | 2018.11.16 |
---|---|
[ATmega328] Nokia 5110 LCD (GLCD) bmp파일 출력하기 (0) | 2018.08.18 |
[ATmega328] Nokia 5110 LCD (GLCD) 문자 출력하기 (0) | 2018.08.04 |
[ATmega328] 알람시계 만들기 (DS1307RTC, 부저) 1탄 (0) | 2018.08.04 |
[ATmega328] DS1307 RTC I2C(TWI)통신 2탄 (0) | 2018.08.04 |
[ATmega328] 아두이노 Uno 핀맵 (0) | 2018.08.04 |
[ATmega328] DS1307 RTC I2C(TWI)통신 1탄 (0) | 2018.08.04 |
[ATmega328] UART통신 송수신 예제 (0) | 2018.08.04 |