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

Arduino UNO를 사용한 가변 전원 공급 장치 – 회로 및 코드

Arduino UNO를 사용하여 가변 전원 공급 장치를 만드는 방법은 무엇입니까?

전원 공급 장치는 전자 및 전기 장비 및 회로에 대한 기본적이고 필수적인 요구 사항입니다. 다양한 유형의 회로 및 장비가 있으므로 전원 공급 장치의 요구 사항은 전자 회로마다 다릅니다. 예를 들어 Wi-Fi 모듈, 릴레이, 모터 등은 서로 다른 전압이 필요합니다. 시장에서 우리는 모든 전자 제품에 대해 다른 전원 공급 장치를 얻지 못하므로 다양한 방법으로 고유한 특정 전원 공급 장치를 생성합니다. 이에 대한 간단한 해결책은 배터리를 사용하는 것입니다.

배터리는 일반적으로 쉽게 구할 수 있고 쉽게 연결할 수 있기 때문에 전자 회로 및 프로젝트의 전원을 켜는 데 사용됩니다. 그러나 그들은 빨리 소모되어 새 배터리가 필요합니다. 또한 이 배터리는 강력한 모터를 구동하기 위해 고전류를 제공할 수 없습니다. 따라서 배터리가 방전되고 회로가 부피가 커집니다. 또한 전자 제품을 장기간 또는 과도하게 사용하고 시간이 지남에 따라 배터리 수명이 감소하면 배터리가 뜨거워집니다. 이 문제를 극복하기 위해 우리는 모든 회로에서 사용할 수 있는 더 좋고 효율적인 솔루션을 소개합니다. 이 프로젝트에서는 Arduino UNO에서 가변 전원 공급 장치를 생성하는 방법을 보여줍니다. .

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

필요한 구성요소

소프트웨어: AURDINO Nightly 또는 Atmel Studio 6.2

가변 전원 공급 장치 회로도

이 프로젝트를 시작하기 전에 프로젝트에 대한 몇 가지 정보를 알려주십시오.

아두이노 UNO

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

이 보드는 일반적으로 마이크로 USB 케이블을 사용하여 소프트웨어 Arduino IDE를 사용하여 프로그래밍됩니다. ATmega328은 사전 프로그래밍된 온보드 부트 로더와 함께 제공되므로 외부 하드웨어의 도움 없이 코드를 더 쉽게 업로드할 수 있습니다. 전자 프로젝트 또는 제품을 만드는 데 광범위하게 적용됩니다. C 및 C++ 언어는 배우고 사용하기 매우 쉬운 보드를 프로그래밍하는 데 사용됩니다. Arduino IDE를 사용하면 훨씬 쉽게 프로그래밍할 수 있습니다. 코드를 void setup()과 void loop()의 두 부분으로 분리합니다. void setup() 함수는 한 번만 실행되며 주로 일부 프로세스를 시작하는 데 사용되는 반면 void 루프()는 계속 실행되어야 하는 코드 부분으로 구성됩니다.

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

저전력 장치를 작동하기 위해 3.3볼트를 생성하는 온보드 전압 조정기가 있습니다. ATmega328은 USART, SPI 및 I2C 통신 프로토콜에서 작동하므로 USART 통신용 0(Rx) 및 1(Tx) 핀, I2C 및 SS(10), MOSI(11)용 SDA(A4) 및 SCL(A5) 핀이 있습니다. , SPI 통신 프로토콜용 MISO(12) 및 SCK(13) 핀.

Arduino UNO의 ADC

Arduino UNO에는 0V ~ 5V 범위의 아날로그 신호를 감지하거나 읽는 데 사용할 수 있는 6개의 ADC 채널이 내장되어 있습니다. Arduino UNO와 같은 마이크로 컨트롤러와 센서를 인터페이스하면 센서가 아날로그 출력 값을 생성합니다. Arduino UNO는 디지털 값을 감지합니다. 따라서 ADC는 센서 값을 아날로그 값으로 변환하고 이를 마이크로컨트롤러에 공급하는 데 도움이 됩니다. 온도 감지, 거리 측정, 속도 측정 및 아날로그 값을 생성하는 많은 센서와 같은 ADC의 많은 응용 프로그램이 있습니다.

Arduino UNO에는 10비트 ADC가 있으므로 각 단계에서 값이 0에서 1023으로 변경됩니다. 이것은 아날로그 값의 범위에 걸쳐 생성할 수 있는 이산 값의 수를 나타내는 분해능이라고 합니다.

ADC 최대 전압이 5V이므로 0에서 1023까지 ADC의 각 단계는 약 5mV에 해당하는 값을 갖습니다. Arduino UNO 보드의 A0에서 A5까지 6개의 ADC 채널이 있으며 이는 아날로그 값을 생성하는 6개의 장치를 제어하거나 인터페이스할 수 있음을 의미합니다.

Arduino IDE는 아날로그 값을 읽는 내장 기능을 제공합니다:analogRead(pin).

장치가 연결된 A0에서 A5까지의 핀 번호를 주기만 하면 이 기능은 아날로그 값을 읽는 데 도움이 됩니다.

Arduino UNO의 PWM

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

신호의 듀티 사이클:

전체 기간에서 신호가 켜져 있는 부분을 듀티 사이클이라고 합니다.

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

일반적으로 신호를 켜고 끄는 방식으로 부하에 전달되는 전력을 제어하는 ​​데 사용됩니다. 예를 들어 빛의 강도나 일부 모터의 속도를 제어하는 ​​데 사용할 수 있습니다. analogWrite() 함수를 호출한 후 핀은 동일한 핀에서 다음 analogWrite() 또는 digitalRead() 또는 digitalWrite()를 호출할 때까지 지정된 듀티 사이클의 꾸준한 구형파를 생성합니다.

신호의 빈도:

신호의 빈도는 신호가 주기를 완료하는 속도를 의미하며 ON 상태에서 OFF 상태로 또는 그 반대로 전환되는 시간을 의미합니다. 특정 듀티 사이클에서 그렇게 함으로써 출력은 일정한 아날로그 전압처럼 동작합니다. 대부분의 핀에서 PWM 신호의 주파수는 약 490Hz입니다. Uno 및 유사 보드에서 핀 5와 6은 약 980Hz의 주파수를 갖습니다. Leonardo의 핀 3과 11도 980Hz에서 실행됩니다.

Arduino UNO에는 ~ 기호가 있는 6개의 8비트 PWM 채널이 있습니다. Arduino IDE에서 analogWrite 기능을 사용하여 아날로그 전압을 얻을 수 있습니다.

analogWrite(핀, 듀티 사이클)

핀:아날로그 출력을 생성하는 데 사용되는 Arduino UNO의 핀을 사용합니다.

듀티 사이클:0(최소)에서 255(최대) 사이의 값을 입력으로 사용하여 듀티 사이클을 변경합니다.

16×2 LCD 디스플레이

LCD에서 사용자 정의 문자를 생성하는 것은 그리 어렵지 않습니다. LCD의 CG-RAM(Custom Generated Random Access Memory) 및 LCD 칩 컨트롤러에 대한 지식이 필요합니다. 이것은 Arduino UNO를 16×2 JHD162A LCD 모듈에 인터페이스하는 것입니다. JHD162A는 Hitachi의 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를 Arduino UNO와 인터페이스하는 것은 매우 쉽습니다. Arduino IDE는 디스플레이에서 무엇이든 더 쉽게 초기화하고 인쇄할 수 있는 많은 내장 기능이 있는 LiquidCrystal 라이브러리를 제공합니다. 이 프로젝트에서 주로 사용할 LCD 기능은 다음과 같습니다.

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

Arduino를 사용한 가변 전원 공급 장치 작동

회로도에 표시된 대로 배선을 올바르게 연결합니다. 이 프로젝트에서는 출력 단자에서 얻은 전압을 ADC 채널 중 하나에 입력으로 제공합니다. 또한 ADC 채널은 나중에 16×2 LCD 디스플레이에 표시되는 디지털 값을 제공합니다. 프로젝트에 사용된 버튼은 전압을 증감하는 것으로 아두이노 UNO의 4번 핀과 5번 핀에 연결됩니다. Arduino UNO는 10비트 분해능을 가지므로 0에서 1023까지 다양하고 최대 ADC 전압은 5볼트이므로 1비트는 5/1024 =4.9밀리볼트(약)와 같습니다. 따라서 디지털 값을 이동하는 증가 및 감소는 0에서 1023까지 다양합니다.

이제 A0 채널에서 ADC 값을 읽고 있습니다. Arduino IDE는 ADC 값을 읽는 내장 기능 analogRead(핀)를 제공합니다. 여기에서 핀은 Arduino UNO에서 채널이 A0이기 때문에 A0입니다. 또한 Arduino UNO의 Pwm에 핀 3을 사용하고 있습니다. Arduino IDE는 핀 3에서 주어진 듀티 사이클로 원하는 출력 전압을 생성하기 위해 analogWrite(pin,Duty Cycle) 기능을 제공합니다.

이제 두 개의 버튼을 누르면 pwm 신호의 듀티 사이클이 변경되어 결과적으로 출력 전압이 변경됩니다. 하나의 버튼은 듀티 사이클을 증가시키는 것이고 다른 하나는 듀티 사이클을 감소시키는 것입니다. Arduino Uno의 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;

액정 lcd는 LCD 디스플레이의 데이터 핀과 RS, RW 및 E 핀이 연결된 핀 번호를 취합니다. 기준 전압을 2.5볼트로 설정하고 있으므로 ref_volt를 125로 설정하여 듀티 사이클을 50%로 설정합니다.

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

Arduino UNO의 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 디스플레이의 문자 수를 설정합니다. 처음에는 화면에 "가변 전압"이 표시됩니다.

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

값 변수는 A0 ADC 채널에서 얻은 디지털 값을 읽고 이 디지털 값을 전압 값으로 변환합니다. AnalogWrite는 Arduino UNO의 핀 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가 감소합니다.

이렇게 하면 Arduino UNO를 사용하여 5볼트 가변 전원 공급 장치를 생성할 수 있습니다. 배터리에 대한 걱정과 회로를 크게 만들 필요가 없습니다.


산업기술

  1. AI를 사용하여 공급망에서 야생동물 및 인신매매 적발
  2. Arduino만 사용하는 DTMF 디코더
  3. Arduino와 스마트폰을 사용한 DIY 전압계
  4. Arduino Uno WiFi를 사용하는 WebServerBlink
  5. Python3 및 Arduino 통신
  6. Arduino 및 RDA8057M을 사용하는 FM 라디오
  7. G-센서 스마트폰을 사용하여 제어되는 로봇카
  8. 가변 속도 드라이브의 전류, 전력 및 토크
  9. 이중 전원 공급 장치 회로도 – 230VAC ~ ±12VDC
  10. 변압기 없는 전원 공급 장치:비용과 공간을 극복하는 승인된 방법