산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

아두이노 우노로 맞춤형 가변 전원 공급 장치 만들기 - 회로도 & 코드 단계별 가이드

아두이노 우노로 가변 전원 공급 장치 만드는 방법?

전원 공급 장치는 전자 및 전기 장비와 회로의 기본적이고 필수적인 요구 사항입니다. 다양한 유형의 회로와 장비가 있으므로 전자 회로마다 전원 공급 장치 요구 사항이 다릅니다. 예를 들어 와이파이 모듈, 릴레이, 모터 등은 서로 다른 전압을 필요로 합니다. 시중에서 모든 전자 기기용으로 서로 다른 전원 공급 장치를 구할 수 없으므로 다양한 방법으로 자체 전원 공급 장치를 생성합니다. 간단한 해결책은 배터리를 사용하는 것입니다.

배터리는 일반적으로 쉽게 구할 수 있고 쉽게 연결할 수 있어 전자 회로와 프로젝트 전원으로 널리 사용됩니다. 하지만 빨리 방전되어 새 배터리가 필요하고, 강력한 모터를 구동하기 위한 높은 전류를 공급할 수 없습니다. 배터리가 방전되고 장시간 또는 과도하게 사용하면 뜨거워지며, 시간이 지날수록 수명이 줄어듭니다. 이 문제를 극복하기 위해 어떤 회로에서든 사용할 수 있는 더 효율적이고 나은 솔루션을 소개합니다. 이 프로젝트에서는 아두이노 우노로 가변 전원 공급 장치 생성 방법을 보여드리겠습니다.

이 프로젝트를 사용하면 충전, 방전, 발열 문제 걱정 없이 전자 장비에 맞춘 가변 전원 공급 장치를 얻을 수 있습니다. 가변 전원 공급 장치를 생성하는 방법은 많지만 이는 저렴하고 쉽게 구할 수 있는 부품으로 가능한 가장 쉬운 방법입니다. 그럼 이 프로젝트에 필요한 구성 요소를 살펴보겠습니다.

필요한 구성 요소

소프트웨어: 아두이노 나이트리 또는 Atmel Studio 6.2

가변 전원 공급 장치 회로도

이 프로젝트에 들어가기 전에 몇 가지 사항을 알아보겠습니다.

아두이노 우노로 맞춤형 가변 전원 공급 장치 만들기 - 회로도 & 코드 단계별 가이드

아두이노 우노

아두이노 우노는 전자 프로젝트 개발에 사용되는 오픈 소스 플랫폼입니다. 언제든 쉽게 프로그래밍, 삭제, 재프로그래밍할 수 있습니다. 시장에는 아두이노 우노, 나노, 메가, 릴리패드 등 용도에 따라 다양한 사양의 아두이노 보드가 있습니다. 이 프로젝트에서는 가정용 가전제품을 자동으로 제어하기 위해 아두이노 우노를 사용합니다. 16MHz 클럭 속도로 작동하는 ATmega328 마이크로컨트롤러 IC가 탑재되어 있습니다. USART, I2C, SPI 통신 프로토콜에서 작동할 수 있는 강력한 칩입니다.

이 보드는 일반적으로 마이크로 USB 케이블을 사용하여 아두이노 IDE 소프트웨어로 프로그래밍합니다. ATmega328에는 온보드 부트로더가 사전 프로그래밍되어 있어 외부 하드웨어 도움 없이 코드 업로드가 쉽습니다. 전자 프로젝트나 제품 제작에 광범위하게 응용됩니다. C와 C++ 언어로 프로그래밍하며 배우고 사용하기 매우 쉽습니다. 아두이노 IDE는 프로그래밍을 훨씬 쉽게 만듭니다. 코드를 void setup()과 void loop() 두 부분으로 분리합니다. void setup() 함수는 한 번만 실행되어 주로 프로세스 초기화에 사용되고, void loop()는 지속적으로 실행되어야 하는 코드 부분으로 구성됩니다.

이 모델은 6개의 아날로그 입력 핀과 14개의 디지털 GPIO 핀으로 구성되며, 입출력으로 사용 가능하고 이 중 6개는 PWM 출력과 아날로그 기능을 제공합니다. pinMode(), digitalWrite(), digitalRead(), analogRead() 함수를 사용합니다. 6개 아날로그 입력 채널은 A0~A5 핀에서 10비트 해상도를 제공합니다. 보드는 5볼트에서 작동하는 USB 케이블 또는 7~20볼트에서 작동하는 DC 잭으로 전원 공급 가능합니다.

저전력 장치 작동을 위한 3.3볼트 생성을 위한 온보드 전압 레귤레이터가 있습니다. ATmega328이 USART, SPI, I2C 통신 프로토콜에서 작동하므로 USART 통신용 0(Rx)과 1(Tx) 핀, I2C용 SDA(A4)와 SCL(A5) 핀, SPI 통신 프로토콜용 SS(10), MOSI(11), MISO(12), SCK(13) 핀이 있습니다.

아두이노 우노의 ADC

아두이노 우노에는 0볼트~5볼트 범위의 아날로그 신호를 감지하거나 읽는 데 사용할 수 있는 온보드 6개 ADC 채널이 있습니다. 아두이노 우노 같은 마이크로컨트롤러에 센서를 인터페이스하면 센서가 아날로그 출력 값을 생성하고 아두이노 우노는 디지털 값을 감지합니다. 따라서 ADC는 센서 값을 아날로그 값으로 변환하여 마이크로컨트롤러에 공급합니다. 온도 감지, 거리 측정, 속도 측정 및 아날로그 값을 생성하는 많은 센서 등 ADC의 응용 분야가 많습니다.

아두이노 우노는 10비트 ADC를 가지며, 이는 0~1023까지 각 단계에서 값이 변함을 의미합니다. 이를 해상도라고 하며 아날로그 값 범위에서 생성할 수 있는 이산 값의 수를 나타냅니다.

ADC 최대 전압이 5볼트이므로 0~1023 범위의 ADC 각 단계 값은 약 5mV에 해당합니다. 아두이노 우노 보드에는 A0~A5에서 6개 ADC 채널이 있어 한 번에 아날로그 값을 생성하는 6개 장치를 제어하거나 인터페이스할 수 있습니다.

아두이노 IDE는 아날로그 값 읽기용 내장 함수 analogRead(pin)을 제공합니다.

단순히 A0~A5에서 장치가 연결된 핀 번호를 주면 이 함수가 아날로그 값을 읽는 데 도움이 됩니다.

아두이노 우노의 PWM

펄스 폭 변조(PWM)는 주파수를 일정하게 유지하면서 펄스 폭을 변화시켜 디지털 소스로 아날로그 신호를 생성하는 기술입니다. PWM을 정의하는 두 가지 주요 요소는 듀티 사이클과 주파수입니다.

신호의 듀티 사이클:

한 주기 동안 신호가 ON 상태인 비율을 듀티 사이클이라고 합니다.

듀티 사이클 = 100 × Ton / (Ton + Toff)

이는 일반적으로 신호를 켜고 꺼서 부하에 전달되는 전력을 제어하는 데 사용됩니다. 예를 들어 조명 밝기나 모터 속도 제어에 사용할 수 있습니다. analogWrite() 함수 호출 후, 다음 analogWrite() 호출이나 같은 핀에서 digitalRead() 또는 digitalWrite() 호출이 있을 때까지 해당 핀은 지정된 듀티 사이클로 꾸준한 사각파를 생성합니다.

신호의 주파수:

신호의 주파수는 신호가 주기를 완료하는 속도, 즉 ON 상태에서 OFF 상태로 또는 그 반대로 전환하는 데 걸리는 시간을 의미합니다. 특정 듀티 사이클에서 이렇게 하면 출력이 일정한 아날로그 전압처럼 동작합니다. 대부분의 핀에서 PWM 신호 주파수는 약 490Hz입니다. 우노 및 유사 보드에서 핀 5와 6은 약 980Hz 주파수를 가집니다. 레오나르도의 핀 3과 11도 980Hz에서 작동합니다.

아두이노 우노에는 ~ 기호가 있는 6개의 8비트 PWM 채널이 있습니다. 아두이노 IDE의 analogWrite 함수로 아날로그 전압을 얻을 수 있습니다:

analogWrite(핀, 듀티 사이클)

핀: 아두이노 우노에서 아날로그 출력을 생성하는 데 사용되는 핀을 받습니다.

듀티 사이클: 듀티 사이클을 변경하기 위해 0(최소)~255(최대) 범위의 값을 입력으로 받습니다.

16×2 LCD 디스플레이

LCD에 사용자 정의 문자 생성은 그리 어렵지 않습니다. LCD의 사용자 정의 생성 랜덤 액세스 메모리(CG-RAM)와 LCD 칩 컨트롤러에 대한 지식이 필요합니다. 이는 아두이노 우노를 16×2 JHD162A LCD 모듈과 인터페이스하는 것입니다. JHD162A는 히타치의 HD44780 드라이버 기반 16×2 LCD 모듈입니다. JHD162A는 16핀을 가지며 4비트 모드(데이터 라인 4개만 사용) 또는 8비트 모드(모든 8개 데이터 라인 사용)로 작동할 수 있습니다. 이 프로젝트에서는 연결 와이어를 적게 쓰는 4비트 모드를 사용합니다.

16×2 LCD 모듈 핀 설명:

LCD 핀 설명
VSS 그라운드 핀
VCC +5V 전원 공급
VEE LCD 콘트라스트 변경 핀
RS 레지스터 선택: 데이터 모드 또는 명령 모드
RW 읽기 또는 쓰기 모드
E LCD 인에이블
DB0-DB7 이 핀들로 데이터와 명령 입력
LED+ 백라이트 LED 양극
LED- 백라이트 LED 음극

이 LCD는 자체 조명이 없어 화면 뒤의 LED가 백라이트 역할을 합니다. 아두이노 우노와 이 LCD 인터페이싱은 아두이노 IDE가 LCD 초기화와 출력에 사용할 수 있는 많은 내장 함수를 제공하는 LiquidCrystal 라이브러리 덕분에 꽤 쉽습니다. 이 프로젝트에서 주로 사용할 LCD 함수는:

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
lcd.begin()
lcd.clear()
lcd.print()

아두이노 활용 가변 전원 공급 장치 작동 원리

회로도에 따라 와이어를 제대로 연결하세요. 이 프로젝트에서는 출력 단자에서 얻은 전압을 입력으로 하여 ADC 채널 중 하나에 공급합니다. 그러면 ADC 채널이 디지털 값을 제공하고 이는 나중에 16×2 LCD 디스플레이에 표시됩니다. 프로젝트에 사용된 버튼은 전압 증감용으로 아두이노 우노의 핀 4와 핀 5에 연결됩니다. 아두이노 우노는 10비트 해상도(0~1023 변동)이며 최대 ADC 전압이 5볼트이므로 1비트는 5/1024 = 약 4.9밀리볼트입니다. 따라서 증감 시 디지털 값이 0~1023으로 변동합니다.

이제 A0 채널에서 ADC 값을 읽습니다. 아두이노 IDE는 내장 함수 analogRead(pin)으로 ADC 값을 읽을 수 있으며, 여기서는 채널이 아두이노 우노의 A0이므로 pin은 A0입니다. 또한 아두이노 우노의 핀 3을 PWM용으로 사용합니다. 아두이노 IDE는 주어진 듀티 사이클로 핀 3에서 원하는 출력 전압을 생성하는 analogWrite(pin, Duty Cycle) 함수를 제공합니다.

이제 두 버튼을 눌러 PWM 신호의 듀티 사이클을 변경하여 출력 전압을 변경합니다. 한 버튼은 듀티 사이클 증가, 다른 버튼은 감소용입니다. 아두이노 우노의 PWM 값은 0~255로 변하며, 0은 0볼트 달성용 최소값, 255는 5볼트 달성용 최대값입니다. 핀 3은 NPN 트랜지스터에 공급되어 이미터에서 가변 전압을 제공하고 스위칭 장치 역할을 합니다.

트랜지스터 베이스는 가변 듀티 비율 PWM을 가지므로 단자에서 가변 출력 전압을 얻을 수 있습니다. 전압이 선형적이지 않으므로 커패시터를 연결하여 가변 출력 전압의 노이즈를 필터링합니다.

코드 설명

라이브러리 포함:

#include <LiquidCrystal.h>

LCD 디스플레이용 내장 라이브러리입니다. LCD 디스플레이에 문자를 쉽게 표시하는 데 사용할 수 있는 함수를 제공합니다.

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
int ref_volt = 125;
float flag = 0;

liquid crystal lcd는 LCD 디스플레이의 데이터 핀과 RS, RW, E 핀이 연결된 핀 번호를 받습니다. 기준 전압을 2.5볼트로 설정하므로 듀티 사이클을 50%로 설정하기 위해 ref_volt를 125로 설정합니다.

pinMode(3, OUTPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);

아두이노 우노의 핀 3을 PWM 출력으로, 핀 4와 5를 전압 증감 입력으로 설정합니다.

lcd.begin(16, 2);
delay(100);
lcd.setCursor(1, 0);
lcd.print("Variable Voltage");
lcd.clear();
delay(1000);

lcd.begin 함수는 LCD 디스플레이 문자 수를 설정합니다. 처음에는 화면에 "Variable voltage"를 표시합니다.

float value = (analogRead(A0));
value = (value * 5) / 1024;
analogWrite(3, ref_volt);

value 변수는 A0 ADC 채널에서 얻은 디지털 값을 읽고 이를 전압 값으로 변환합니다. AnalogWrite는 아두이노 우노의 핀 3에서 PWM을 제공합니다.

if (digitalRead(4) == LOW)
{
  if (ref_volt < 250)
  {
    ref_volt = ref_volt + 1;
    delay(100);
  }
}

증가 버튼이 눌렸는지 확인합니다. 증가 버튼을 누르면 ref_volt를 증가시킵니다.

if (digitalRead(5) == LOW)
{
  if (ref_volt > 0)
  {
    ref_volt = ref_volt - 1;
    delay(100);
  }
}

감소 버튼이 눌렸는지 확인합니다. 감소 버튼을 누르면 ref_volt를 감소시킵니다.

이렇게 아두이노 우노로 5볼트 가변 전원 공급 장치를 배터리 걱정 없이, 회로를 부피 크게 만들지 않고 생성할 수 있습니다.

산업기술

  1. AI로 글로벌 공급망 내 인신매매·야생동물 밀수 탐지하기
  2. 아두이노만으로 DTMF 디코더 구축하기 – 추가 IC 불필요
  3. 아두이노와 스마트폰으로 만드는 스마트 전압계 – 초간단 DIY 프로젝트
  4. 아두이노 우노 와이파이 웹 서버: 브라우저로 LED 제어하기
  5. 파이썬 3로 아두이노 우노 제어하기 – 시리얼 통신 LED 제어 기초
  6. 아두이노 나노와 RDA8057M으로 소형 FM 라디오 만들기
  7. 스마트폰 G-센서 제어 로봇카: 아두이노 & 블루투스 기반 RC카 제작
  8. 가변 속도 드라이브의 전류, 전력, 토크 마스터하기
  9. 230VAC에서 ±12VDC 듀얼 전원 공급 장치 회로도 & 가이드
  10. 트랜스포머리스 전원 공급 장치: 비용과 공간을 줄이는 검증된 솔루션