ARM

A31G123ML + Keil uVision : ADC๋กœ ์•„๋‚ ๋กœ๊ทธ ์„ผ์„œ๊ฐ’ ์ฝ๊ธฐ — ๊ฐ€๋ณ€์ €ํ•ญ/์กฐ๋„์„ผ์„œ ์ธก์ •

๊ฒŒ์ž„๊ต์ˆ˜ 2025. 4. 18. 07:51
๋ฐ˜์‘ํ˜•

๐Ÿ“Š A31G123ML + Keil uVision โ€” ADC๋กœ ์•„๋‚ ๋กœ๊ทธ ์„ผ์„œ๊ฐ’ ์ฝ๊ธฐ

์ด๋ฒˆ ํŽธ์—์„œ๋Š” ABOV A31G123ML์˜ ๋‚ด์žฅ ADC๋ฅผ ํ™œ์šฉํ•ด ๊ฐ€๋ณ€์ €ํ•ญ์ด๋‚˜ ์กฐ๋„์„ผ์„œ(LDR) ๋“ฑ์˜ ์•„๋‚ ๋กœ๊ทธ ์ž…๋ ฅ๊ฐ’์„ ์ฝ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ UART๋กœ ์‹œ๋ฆฌ์–ผ ์ถœ๋ ฅํ•˜๋Š” ์‹ค์Šต์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿงฐ ์ค€๋น„๋ฌผ

  • ABOV A31G123ML ๋ณด๋“œ
  • ๊ฐ€๋ณ€์ €ํ•ญ ๋˜๋Š” LDR ์กฐ๋„์„ผ์„œ
  • 10kฮฉ ์ €ํ•ญ
  • USB to UART ๋ชจ๋“ˆ

๐Ÿ”Œ ํšŒ๋กœ ์—ฐ๊ฒฐ

  • ์„ผ์„œ ์ถœ๋ ฅ โ†’ AIN0 (P2.0)
  • GND โ†’ ์„ผ์„œ ํ•˜๋‹จ
  • 5V โ†’ ์„ผ์„œ ์ƒ๋‹จ

๐Ÿ’ป ์ฝ”๋“œ ์˜ˆ์‹œ: ADC ๊ฐ’ ์ฝ๊ณ  UART๋กœ ์ถœ๋ ฅ

#include "A31G123.h"

void uart_send(char c) {
    while (!(UART1->STAT & (1 << 1)));
    UART1->TXD = c;
}

void uart_print(const char* str) {
    while (*str) uart_send(*str++);
}

void uart_print_num(uint16_t value) {
    char buf[10];
    sprintf(buf, "%d\r\n", value);
    uart_print(buf);
}

void uart_init(void) {
    SYSCON->SYSAHBCLKCTRL |= (1 << 12);
    UART1->BAUD = 52;
    UART1->CTRL = (1 << 0) | (1 << 2);
}

void adc_init(void) {
    SYSCON->SYSAHBCLKCTRL |= (1 << 24); // ADC CLK enable
    ADC->CR = (1 << 0);                 // AIN0 ์„ ํƒ
    ADC->CTRL = (1 << 0);               // Enable ADC
}

uint16_t adc_read(void) {
    ADC->CR |= (1 << 24); // Start
    while (!(ADC->STAT & (1 << 0))); // ์™„๋ฃŒ ๋Œ€๊ธฐ
    return ADC->DR & 0x3FF; // 10๋น„ํŠธ ๊ฒฐ๊ณผ
}

int main(void) {
    uart_init();
    adc_init();

    while (1) {
        uint16_t value = adc_read();
        uart_print("ADC Value: ");
        uart_print_num(value);
        for (volatile int i = 0; i < 800000; i++);
    }
}

โœ… ๊ฒฐ๊ณผ ํ™•์ธ

  • ํ„ฐ๋ฏธ๋„(9600bps)์—์„œ "ADC Value: xxxx" ํ˜•ํƒœ๋กœ ์ถœ๋ ฅ๋จ
  • ์กฐ๋„ ๋ณ€ํ™” or ๊ฐ€๋ณ€์ €ํ•ญ ํšŒ์ „์— ๋”ฐ๋ผ ๊ฐ’์ด ๋ณ€ํ™”ํ•จ

๐Ÿ“š ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ํŽธ์—์„œ๋Š” ADC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ผ์„œ๊ฐ’์„ ์ธก์ •ํ•˜๊ณ , ์ด๋ฅผ UART๋กœ ์‹ค์‹œ๊ฐ„ ์ถœ๋ ฅํ•˜๋Š” ํ๋ฆ„์„ ์ตํ˜”์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์€ ์ด ๊ฐ’์„ ๊ธฐ์ค€๊ฐ’๊ณผ ๋น„๊ตํ•ด ๋™์ž‘ ์ œ์–ดํ•˜๊ฑฐ๋‚˜, PWM ์ถœ๋ ฅ์œผ๋กœ ์‘์šฉ

๋ฐ˜์‘ํ˜•