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

Arduino를 사용한 자동 야간 램프

Arduino를 사용한 자동 야간 램프 – 코드, 작업 및 시뮬레이션

자동화는 기본적으로 인간의 노력을 줄이거나 없애는 방법을 발명하는 것을 의미합니다. 이 튜토리얼에서는 Proteus 소프트웨어를 사용하여 Arduino와 릴레이의 간단한 인터페이스를 통해 야간 램프를 자동화하는 방법을 설명합니다. 자동화는 간단한 온도 조절 장치를 사용한 보일러 제어에서 방대한 양의 입력 및 출력 데이터가 포함된 대규모 산업 관리에 이르기까지 응용 범위가 다양하기 때문에 시급히 필요합니다. 자동화의 복잡성은 기본적인 온/오프 제어에서 산업 자동화 시스템과 같은 고도로 복잡한 다변수 알고리즘에 이르기까지 다양할 수 있습니다. 자동화 목적을 위한 제어 시스템은 개방 루프 또는 폐쇄 루프가 될 수 있습니다. 즉, 단일 입력 매개변수로 작동하거나 폐쇄 루프 시스템의 경우와 같이 입력으로 공급되는 출력에 응답하여 작동할 수 있습니다.

모든 기술 자동화의 경우와 마찬가지로 장점과 단점이 있습니다.

장점

  1. 생산성 향상
  2. 예측 가능한 품질(품질 개선)
  3. 향상된 견고성
  4. 훌륭한 출력 일관성
  5. 인건비 절감
  6. 매우 정확함
  7. 단조로운 작업에서 인간의 노력 감소

단점

  1. 보안 위협에 취약함
  2. 개발 비용이 예측을 초과할 수 있음
  3. 높은 설치 비용
  4. 많은 부문에서 실업의 원인

위에서 언급한 장점이 단점을 훨씬 능가하기 때문에 전 세계가 자동화 시대로 들어서고 있습니다.

이 튜토리얼에서는 회로가 빛의 강도에서 눈에 띄는 변화를 감지하고 이를 달성하기 위해 램프를 스스로 켜거나 끄려고 합니다. 자동화에 사용되는 가장 일반적인 두 가지 도구(예:Arduino 및 Relay)와 시뮬레이션과의 인터페이스는 Proteus 소프트웨어에 의해 달성됩니다.

필요한 구성요소

  1. 아두이노 UNO
  2. 릴레이 5볼트
  3. LDR(광 종속 저항기)
  4. 10K 옴 저항
  5. 트랜지스터 BC547
  6. DC 공급 5볼트
  7. AC 공급 220볼트

소프트웨어 필요

  1. 아두이노 IDE
  2. 프로테우스

자동 야간 램프 회로도

구성 요소 설명

아두이노 UNO

Arduino는 기본적으로 Microchip ATmega328P 마이크로컨트롤러를 사용하는 오픈 소스이며 Arduino.cc에서 제조한 개발 보드입니다. 이 보드에는 다양한 확장 보드 및 외부 회로에 인터페이스할 수 있는 디지털 및 아날로그로 구성된 입력/출력 핀 세트가 함께 제공됩니다. 이 보드에는 IDE(통합 개발 환경)의 도움으로 사용되거나 프로그래밍 가능한 6개의 아날로그 핀과 함께 14개의 디지털 핀이 있습니다. 프로그램은 USB 케이블 유형 B를 통해 레코딩됩니다.

보드에 전원을 공급하는 방법은 USB 케이블을 사용하거나 12볼트 DC 공급 장치를 연결하는 것입니다. 디자인과 작동 측면에서 다른 제품군인 Arduino Nano 및 Arduino Leonardo와 크게 다르지 않습니다.

STK500은 여전히 ​​Uno가 통신하는 원래 프로토콜입니다. 이전 제품과의 가장 큰 차이점은 FTDI(USB-to-serial 드라이버 칩)를 사용하지 않는다는 것입니다.

릴레이

릴레이는 전기적으로 작동할 수 있고 AC/DC 기기를 켜고 끌 수 있는 전자기 스위치입니다. Arduino 핀에서 제공하는 출력과 같이 5V의 낮은 전압으로도 제어할 수 있습니다. 코일은 한쪽(저전압 쪽)에 금속 접점이 있는 코일로 구성되어 있으며 다른 쪽(고전압 쪽)에 부착된 회로를 열거나 닫기 위해 자화 및 자기 소거할 수 있습니다. 고전압측은 커먼(COM), 상시 폐쇄(NC) 및 상시 개방(NO)의 3개 소켓이 있는 커넥터로 구성됩니다. 릴레이는 12V, 9V, 5V 및 3V와 같은 다양한 정격으로 제공됩니다.

LDR

LDR(Light Dependent Resistor)은 빛의 세기 변화에 따라 저항값이 변하는 가변저항 부품으로 광전도성 원리에 따라 작동한다. 저항값은 빛의 세기가 증가함에 따라 감소합니다. 감광 검출기 회로 및 광 활성화 스위칭 회로에 사용됩니다.

LDR은 빛이 없을 때 저항이 메가 옴인 반면 빛이 있을 때는 수백 옴의 저항을 갖는 고저항 반도체로 구성됩니다.

BC547 – NPN 트랜지스터

트랜지스터는 기본적으로 전자 신호와 전력을 증폭하거나 전환하는 데 사용되는 반도체 장치입니다. 반도체 물질로 이루어져 있으며 외부 회로와 연결하기 위한 3개의 단자를 가지고 있습니다. 이 회로에서는 NPN Bipolar Junction Transistor인 BC547을 사용했습니다.

베이스 터미널의 작은 전류 값은 이미 터 및 컬렉터 터미널의 큰 전류 값을 제어합니다. 특성 곡선의 원하는 영역에서 작동하려면 고정된 DC 전압이 트랜지스터 단자에 필요합니다. 증폭 목적으로 사용될 때 트랜지스터는 바이어스 상태를 유지하여 모든 입력에 대해 부분적으로 켜져 있고 증폭된 출력 신호는 이미 터에서 가져옵니다. 스위칭 애플리케이션의 경우 트랜지스터는 베이스 단자에 신호가 있으면 완전히 ON 상태를 유지하고 베이스 신호가 없으면 완전히 OFF되도록 바이어스됩니다.

평점

소프트웨어 설명

프로테우스

Proteus 디자인 제품군은 전자 디자인 자동화를 수행하는 데 사용되는 독점 소프트웨어 범주에 속합니다. 이 소프트웨어는 PCB 레이아웃이라고 하는 전자 형식의 회로도 및 인쇄물을 생성할 목적으로 전자 설계 엔지니어 및 해당 기술자에게 매우 편리합니다. 이 소프트웨어는 영국 요크셔에서 Labcenter Electronics Ltd.에 의해 개발되었으며 영어, 프랑스어, 스페인어 및 북경어의 다국어 지원이 함께 제공됩니다.

고급 구성 요소로 구성된 새 라이브러리로 정기적으로 업데이트되며 기존 라이브러리 목록에 쉽게 추가할 수 있습니다.

이 소프트웨어는 회로 또는 마이크로 컨트롤러를 시뮬레이션하는 기능 때문에 널리 사용됩니다. 시뮬레이션은 물리적 구성 요소를 사용하지 않고도 설계된 회로의 작동 및 테스트를 이해하는 데 도움이 됩니다. 사용자 인터페이스는 또한 시장에 나와 있는 다른 소프트웨어보다 우위에 있습니다. 라이브러리 섹션에서는 1,500만 개 이상의 구성 요소를 사용할 수 있으므로 사용자는 공간이나 구성 요소를 만드는 데 시간을 낭비할 필요가 없습니다.

Arduino IDE

Arduino IDE는 다양한 플랫폼에서 사용할 수 있는 소프트웨어입니다. 따라서 크로스 플랫폼 응용 프로그램이며 프로그래밍 언어 java를 사용하여 개발되었습니다. 스케치를 작성하고 Arduino 호환 보드에 업로드하는 영혼의 목적이 있습니다. 지원되는 언어는 C 및 C++로 약간 수정되었으며 사용 중인 라이브러리에 따라 다릅니다. 다양한 라이브러리가 소프트웨어에 내장되어 제공되며 다른 라이브러리는 타사 공급업체에서 다운로드할 수 있습니다. IDE는 avrdude라는 프로그램을 사용하여 코드를 16진수 인코딩이 있는 파일로 변환하고 보드의 펌웨어에 사전 설치된 로더 프로그램의 도움으로 보드에 로드됩니다.

프로젝트 코드

코드 설명

우선 정수형의 전역 변수 2개를 정의합니다. 변수 analogIN 회로와 두 번째 변수 trigger에서 아날로그 값을 수신할 아날로그 핀을 나타내는 데 사용됩니다. 충분한 전압의 트리거 출력을 공급할 디지털 핀을 나타냅니다.

int analogIN =A3;

int 트리거 =12;

전송 속도는 데이터 전송 속도를 나타내는 9600비트/초로 설정됩니다. pinMode() 함수는 핀의 상태를 정의하는 데 사용됩니다. 여기에서 핀 12를 출력으로 설정하고 핀 A3을 입력으로 설정합니다. 이 모든 명령문은 void setup() 함수에 작성되었으며 전체 실행 기간 동안 한 번만 실행됩니다.

설정() 무효화

{

Serial.begin(9600);

  pinMode(analogIN, INPUT);

  pinMode(Trigger, OUTPUT);

}

회로도에 따르면 핀 A3에서 아날로그 값 형태의 특정 데이터를 읽어야 합니다. 이 특정 작업을 위해 analogRead() 함수를 사용했습니다. 회로에서 발생하는 입력이 아날로그 값이기 때문에 아날로그 핀과 아날로그 기능을 사용하는 이유입니다.

이제 아날로그 핀 A3에서 이 아날로그 값을 가져온 다음 해당 값을 변수 "value"에 저장합니다.

이 변수에는 0에서 1234 사이의 정수 값이 포함되며 아날로그 입력에 따라 달라집니다. 아두이노는 10비트 ADC 컨버터와 함께 제공되므로 10비트 ADC 값입니다.

"value" 변수에 저장된 값은 조건 연산자(if-else)를 실행하는 데 사용됩니다. 이 오퍼레이터를 통해 디지털 핀 트리거의 상태를 HIGH 또는 LOW로 설정하여 램프를 켜고 끕니다. 변수 "value"에 저장된 데이터를 인쇄할 때의 주요 이점은 빛의 강도를 특정 값과 연관시키고 원하는 빛의 강도로 램프를 켤 수 있다는 것입니다.

"void loop()" 함수 내부에 있는 코드는 Arduino에 전원이 공급될 때까지 반복적으로 실행됩니다. 따라서 프로젝트가 항상 작동 상태인지 확인하려면 여기에 사용되는 Arduino Uno에 24/7 전원 공급 장치를 제공해야 합니다.

무효 루프() {

  정수 값 =analogRead(analogIN);

Serial.println(값);

if (값 <692)

  {

    digitalWrite(Trigger, HIGH);

    Serial.println("램프가 켜져 있습니다");

  }

  else {

    digitalWrite(Trigger, LOW);

    Serial.println("램프가 꺼져 있습니다");

  }

 }

코드의 16진수 파일 위치를 가져오는 방법은 무엇입니까?

Arduino IDE에서 File>Preferences를 클릭한 다음 "Show verbose output"에서 옵션 컴파일 및 업로드를 모두 확인하고 아래 창에서 코드 컴파일 시 선택하고 16진수 파일의 위치를 ​​복사하고 Proteus에서 Arduino를 두 번 클릭하고 프로그램 파일 옵션에 파일 위치를 붙여넣고 확인을 클릭합니다. 이제 회로를 시뮬레이션할 준비가 됩니다.

시뮬레이션 동영상

출시 예정

근접 램프 회로 작동

이제 회로 작동에 대해 논의할 것입니다. 여기서는 5V DC 전원(Arduino의 5V)을 사용하고 전압 분배기 회로에 10k ohm 저항과 LDR을 연결했습니다. 저항 또는 LDR을 가로질러 취하여 Arduino의 아날로그 핀(이 경우 핀 A3)에 공급할 수 있는 전압입니다.

위에 언급된 코드의 도움으로 보드는 제공된 아날로그 입력을 감지할 수 있습니다. 이 값은 LDR에 의해 감지된 빛의 강도에 따라 읽힙니다.

우리는 직렬 모니터에서 오는 값을 확인하여 빛의 강도에 따라 회로를 보정할 수 있습니다. 따라서 코드에 제공된 조건문에서 조건을 변경하여 원하는 빛의 강도에서 램프를 "ON" 및 "OFF"하여 동적으로 만들 수 있습니다.

이제 조건문이 충족되면(예:빛의 강도가 ADC와 동일한 형식으로) 사용자가 제공한 값 아래로 떨어지면 보드는 핀에서 "HIGH" 출력을 생성합니다. 12 "HIGH"는 핀 12로 5V 출력을 생성한다는 의미입니다.

이 경우 트랜지스터 베이스에서 충분한 전압이 발생하고 트랜지스터가 전도를 시작합니다. 결과적으로 전류가 릴레이의 코일에 흐르기 시작하고 스위치가 켜집니다. 즉, 램프 회로가 연결된 활성 상태로 NO 단자가 전환되고 회로가 완료되면 램프가 "ON"됩니다. ".

코드의 else 조건이 참이 되면 램프가 "꺼짐", 즉 우리가 제공한 임계값에서 빛의 강도가 증가합니다. 따라서 핀 12의 출력은 "LOW"가 되고 이후에 릴레이가 꺼지고 램프가 꺼집니다.

요점:

우리 모두는 우리의 생활 방식을 편하게 하고 싶어하며, 여기서 자동 야간 램프가 무엇을 하고 있습니까? 야간 램프를 켜거나 끌 필요도 없습니다. 빛의 세기에 따라 자동으로 ON/OFF가 되기 때문에 떨어집니다. 주간에는 센서를 통해 어두워지면서 램프가 꺼진 상태로 유지됩니다. 램프가 켜집니다. 이 프로젝트는 기본 전자 부품을 사용하여 동일한 설계를 하는 데 도움이 됩니다. Arduino를 시작하는 데 어려움이 없도록 코드도 설명했습니다.

관련 프로젝트:


산업기술

  1. 제조업체가 전자 상거래 붐을 관리하기 위해 자동화를 사용하는 방법
  2. Arduino를 사용하여 모니터 Ambilight 만들기
  3. Arduino와 스마트폰을 사용한 DIY 전압계
  4. IoT를 사용한 심박수 모니터
  5. Arduino Uno WiFi를 사용하는 WebServerBlink
  6. arduino를 사용한 자동화된 Dino 게임
  7. Arduino 및 RDA8057M을 사용하는 FM 라디오
  8. BLUE_P:무선 Arduino 프로그래밍 실드
  9. Arduino를 사용한 터치 제어 조명
  10. 자동 공구 교환기는 어떻게 작동합니까?