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

Arduino Power

구성품 및 소모품

Adafruit PowerBoost 충전기 실드
× 1
충전식 Lipoly 배터리(일반)
3.7 - 4.2V
× 1
Arduino UNO
× 1

이 프로젝트 정보

Arduino 마이크로컨트롤러 보드 제품군과 관련된 프로젝트에는 일반적으로 특별한 전원 관리 회로가 필요하지 않습니다. 전원을 연결하면 장치가 부팅되고 작업을 수행한 다음 전원이 차단되면 멈춥니다. Raspberry Pi 시스템과 달리 SD 메모리 카드가 손상될 위험이 없습니다.

그러나 일부 응용 프로그램의 경우 전원 상태를 모니터링하고 종료하는 대신 보다 관리된 방식으로 응답할 수 있습니다.

예를 들어 온도 데이터를 기록하는 원격 감지 장치를 고려하십시오. 무인 상태에서 배터리가 떨어지면 로그가 중지됩니다. 배터리 부족이 문제인지 즉시 알 수 있는 방법은 없습니다. 소프트웨어 또는 하드웨어 오류일 수 있습니다.

마찬가지로, 휴대용 시스템의 경우 배터리 수명이 얼마나 남았는지, 언제 충전해야 하는지를 아는 것이 도움이 될 것입니다.

이 프로젝트는 회로, 소프트웨어 및 각각에 대한 설명과 함께 Arduino 전원 관리에 대한 여러 접근 방식을 제시합니다. 간단한 전원 켜기/끄기 스위치로 시작하여 무인 환경 모니터링을 위한 배터리 상태를 포함하는 데이터 로깅 시스템까지.

관심 있는 하위 시스템을 선택하고 선택할 수 있습니다. 나는 모든 하위 시스템에 대해 점점 더 복잡하게 설명하겠지만 관심이 없는 부분은 주석 처리할 수 있습니다.

이 프로젝트는 Raspberry Pi 시스템에 유사한 기능을 제공하는 LiPoPi 및 Pi Power 프로젝트의 아이디어를 기반으로 합니다.

개요

시스템은 다음과 같은 여러 기능을 제공합니다.

<울>
  • 푸시 버튼을 사용하여 전원 켜기/끄기
  • <울>
  • Arduino ADC를 사용하여 배터리 전압 모니터링
  • <울>
  • 저전압에서 시스템 종료
  • <울>
  • 배터리 전압 및 종료 메시지를 파일에 기록
  • <울>
  • 빨간색/녹색 LED를 사용하여 배터리 상태 표시
  • 각각을 차례로 소개하겠지만 이들 모두의 공통점은 Adafruit PowerBoost와 Arduino의 조합입니다.

    이들 각각을 사용하여 arduinoPowerSetup() 두 가지 기능을 추가하고 사용자 정의합니다. arduinoPowerMonitor( ) , 표준 setup() 루프() 코드의 기능.

    Adafruit PowerBoost 실드

    이 시스템은 충전식 LiPoly 배터리와 Adafruit PowerBoost Charger Shield를 사용하여 배터리를 충전하고 출력을 5V로 높일 수 있습니다.

    Adafruit는 세 가지 버전의 Power Boost(2개의 브레이크아웃 보드와 Arduino Shield)를 만듭니다. 여기에 설명된 대부분의 작업은 Power Shield를 사용하지만 브레이크아웃 보드를 사용하는 것에 대해서는 나중에 이야기하겠습니다.

    PowerBoost Shield를 구성하는 방법에 대한 이 페이지를 읽으십시오. Shield 키트를 준비하려면 다음을 수행해야 합니다.

    <울>
  • 스태킹 헤더 스트립의 땜납
  • <울>
  • 하지만 스위치를 부착하지 마십시오.
  • <울>
  • 인에이블 핀에 와이어(4인치, 22AWG 솔리드 코어) 길이의 납땜
  • <울>
  • 실드 아래쪽에 있는 아날로그 핀 A0용 패드를 연결합니다.
  • 전원 켜기/끄기 회로

    이 기본 회로는 내 전화기가 작동하는 방식과 유사하게 순간 푸시 버튼 스위치를 눌러 시스템 전원을 켜고 실행 중일 때 전원을 끕니다.

    전원이 꺼진 시스템을 길게 누르면 PowerBoost가 켜지고 Arduino에 전원이 공급되어 Arduino가 부팅되고 로드한 프로그램이 실행됩니다.

    버튼을 다시 눌렀다가 놓으면 Arduino가 PowerBoost를 비활성화하고 더 이상 전원을 공급하지 않기 때문에 Arduino가 종료됩니다.

    자세한 내용은 이 페이지를 읽어 주십시오. 회로도는 다음과 같습니다.

    참고: 이 프로젝트의 나머지 부분을 사용하는 데 이 회로가 필요하지 않습니다. PowerBoost 실드와 함께 제공되는 옵션 스위치를 사용할 수 있습니다. 주요 차이점은 기본 스위치가 로그 메시지를 기록할 방법 없이 시스템을 종료한다는 것입니다.

    배터리 전압 모니터링

    Arduino에는 6개의 아날로그-디지털 변환기가 있습니다. (ADC)를 아날로그 핀 0-5에 연결하여 전압 측정을 간단하게 만듭니다. PowerBoost 실드는 배터리 전압(Vbat ) PowerBoost Shield 페이지에 설명된 대로 적절한 솔더 패드를 연결하여 이들 중 하나에 연결합니다. 이 예에서는 아날로그 핀 0에 연결했습니다. .

    LiPoly 배터리의 전압은 약 4.25V에서 다양합니다. 약 3.7V로 완전히 충전되었을 때 퇴원시. ADC는 0V에서 5V의 전압 범위를 변환합니다. 0 ~ 1023의 정수 범위로 , 그리고 analogRead()를 호출하여 이 값에 액세스합니다. .

    이 코드 스니펫은 이 작업을 수행하는 방법과 최소 및 최대 배터리 전압을 사용하여 상대적 배터리 상태를 계산하는 방법을 보여줍니다.

    <사전><코드> float maxVoltage =4.25; 부동 최소 전압 =3.75; arduinoPowerVoltage =float(analogRead(arduinoPowerVoltagePin)) / 1024.0 * 5.0; float fractionalVoltage =(arduinoPowerVoltage - minVoltage) / (maxVoltage - minVoltage);

    LiPoly 배터리는 방전될 때 전압을 선형적으로 잃지 않지만 충분히 가깝습니다. 분수 전압을 사용하여 남은 배터리 수명을 추정할 수 있습니다.

    따라서 배터리 전압을 얻고 남은 수명을 추정할 수 있지만 사용자에게 이를 전달할 방법이 필요합니다. 영숫자 디스플레이를 사용할 수 있으며 다음 섹션에서는 이것을 SD 카드의 파일에 기록하는 방법을 보여드리겠습니다. 그러나 이는 많은 프로젝트에서 과도할 수 있습니다.

    더 간단한 방법은 RGB를 사용하고 배터리 수명을 반영하도록 색상을 변경하는 것입니다. 예:

    <울>
  • 녹색 - 50% 이상
  • <울>
  • 노란색 - 20% ~ 50%
  • <울>
  • 빨간색 - 20% 미만 - 충전 시간
  • 이를 구현하려면 회로에 RGB Led와 2개의 1K 저항을 추가하고 arduinoPowerMonitor()에 약간의 코드를 추가하기만 하면 됩니다. .

    RGB LED는 일반적으로 공통 양극을 사용합니다. 따라서 이 회로는 다음과 같이 작동합니다.

    참고: 실제로는 3.3V 전원을 LED와 함께 사용합니다.

    참고: 나중에 보여주겠지만 내가 이해할 수 없는 이유로 측정된 전압에 상당한 '진동'이 있을 수 있습니다. 배터리가 LED 색상이 변하는 값 중 하나에 가까우면 배터리가 두 상태 사이에서 앞뒤로 전환되는 것을 볼 수 있습니다. 이는 매우 성가신 일입니다. 빠른 수정은 0.1uF 커패시터를 배치하는 것입니다. 아날로그 핀 A0 사이 및 접지 .

    이 브레드보드 레이아웃은 배터리 또는 Arduino를 표시하지 않습니다. arduino_2_voltage_led 스케치는 전원 켜기/끄기 및 LED 전압 표시를 구현합니다. 코드는 녹색 또는 빨간색 핀을 낮음으로 설정합니다. LED를 켜고 높게 끄려면.

    참고: Serial 호출의 주석을 제거하여 측정된 전압을 확인하거나 디버그할 수 있습니다. 코드에서 직렬 모니터 실행 IDE에서. 실제 및 부분 배터리 전압이 표시됩니다. 어떤 이유로 첫 번째 호출이 올바르지 않습니다.

    SD 카드에 배터리 전압 기록

    전압 LED 표시등은 배터리로 구동되는 휴대용 Arduino 시스템에 유용합니다. 여기에서는 세부 사항에 너무 신경 쓰지 않고 언제 배터리를 충전해야 하는지 알고 싶을 뿐입니다.

    그러나 독립 실행형 시스템에서 센서를 모니터링하는 경우 시간 경과에 따른 전력 소비에 대한 더 나은 아이디어를 제공하기 위해 센서 데이터와 함께 배터리 전압을 기록할 수 있습니다.

    프로젝트의 이 부분에서 저는 CSV에 데이터를 기록할 수 있는 Adafruit Data Logging Shield를 사용하고 있습니다. 타임스탬프와 함께 첨부된 SD 카드의 형식 파일. Adafruit 가이드는 SDRTC 라이브러리가 작동하므로 프로젝트의 이 부분에서 작업하기 전에 이해해야 합니다.

    회로는 이전 예에서 변경되지 않았습니다. 배터리 상태에 대한 즉각적인 피드백을 제공하기 때문에 LED를 유지할 가치가 있지만 필수는 아닙니다.

    카드에 데이터를 기록하기 때문에 종료 메시지를 기록하는 것이 중요합니다. 그렇게 하면 시스템 종료가 의도적인 것인지 아니면 시스템에 오류가 발생했는지 알 수 있습니다.

    또한 전압을 모니터링하고 있기 때문에 전압이 일정 수준 이하로 떨어지는 경우를 확인하여 안전하게 시스템을 종료할 수 있습니다. 다시 말하지만, 종료 직전에 이에 대한 메시지를 기록할 수 있습니다.

    이에 대한 스케치는 arduino_3_voltage_logging에 있습니다. 여기에는 적절한 형식의 타임스탬프 문자열 등을 생성하기 위한 몇 가지 유틸리티 루틴이 포함되며 SD 카드 삽입을 잊어버린 경우 빨간색 LED를 깜박이는 해킹도 포함됩니다.

    Arduino Uno, Data Logging Shield, PowerBoost Shield 및 브레드보드의 전체 스택은 다음과 같습니다.

    전압 데이터

    다음은 약 20시간 동안 점진적인 감소를 보여주는 시간 경과에 따른 배터리 전압의 플롯입니다. 감소는 실제로 선형이 아니지만 남은 전력을 추정할 목적으로 충분히 가깝습니다.

    앞서 언급했듯이 아날로그 핀 A0 사이에 0.1uF 커패시터를 추가하는 것이 정말 도움이 됩니다. 및 접지 . 이 샘플에서 보라색 선은 파란색으로 표시된 원본과 비교하여 커패시터의 영향을 보여줍니다.

    SD 카드에 환경 데이터 로깅

    마무리하기 위해 프로젝트에 한 가지 추가 사항이 있습니다. 제가 염두에 두고 있는 프로젝트 중 하나는 온도, 토양 수분 등 정원을 위한 독립형 환경 모니터입니다.

    한동안 방치될 봉인된 상자에 아두이노 등을 설치하겠습니다. 배터리가 부족할 뿐만 아니라 케이스 내부에 습기가 들어가지 않는지, 시스템을 손상시킬 수 있는 극한의 온도를 경험하지 않는지 확인하고 싶습니다. 온도와 습도를 저렴하고 쉽게 측정할 수 있는 방법은 DHT22 센서입니다. 자세한 내용은 Adafruit의 자습서를 확인하세요.

    내 예제 코드에서는 디지털 핀 5를 사용합니다. 이미 전원 끄기 버튼 인터럽트에 사용하고 있기 때문에 핀 2 대신에.

    이에 대한 코드는 arduino_4_voltage_temp_humidity_logging에 있습니다. 브레드보드에서 작업한 후 Adafruit Proto Shield에 연결했습니다. DHT22 센서는 꽤 부피가 크지만 저렴합니다. 다른 대안을 보려면 Adafruit, Sparkfun 등의 다른 브레이크아웃 보드를 살펴보세요.

    Arduino 프로젝트의 전력 절약

    내 프로젝트의 다음 단계는 전력 소비를 줄이고 배터리 수명을 연장하는 것입니다.

    이에 대한 나의 출발점은 Tony DiCola의 저전력 데이터 로깅에 대한 훌륭한 Adafruit 자습서입니다.

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    깃허브
    https://github.com/craic/arduino_powerhttps://github.com/craic/arduino_power
    깃허브
    https://github.com/NeonHorizon/lipopihttps://github.com/NeonHorizon/lipopi
    깃허브
    https://github.com/craic/pi_powerhttps://github.com/craic/pi_power

    제조공정

    1. 전력 소모
    2. 전원
    3. 불도저
    4. 배터리
    5. Arduino 스파이봇
    6. FlickMote
    7. 수제 TV B-Gone
    8. 마스터 시계
    9. 풍력 발전
    10. 보조금 삭감이 전력 배터리 산업에 미치는 영향