24 시간마다 타이머로 Arduino를 켭니다


9

저는 현재 하루에 한 번 ESP8266을 통해 자동차 배터리 충전량을 나에게 보내는 Arduino 프로젝트를 진행하고 있습니다. 겨울철에는 차를 운전하지 않으며 배터리가 임계 값 이상으로 떨어질 때 알림을 받고 싶습니다. 따라서 충전하여 손상을 방지 할 수 있습니다.

따라서 에너지 효율은 프로젝트에 중요하므로 배터리 자체를 방전시키지 않습니다. 나는 슬립 모드, 효율적인 드롭 다운 레귤레이터 등에 대해 많이 읽었습니다. 이들은 모두 전압 레귤레이터가 항상 작동한다는 공통점을 가지고 있습니다.

일종의 "타이머 온 타이머 회로"를 찾고 있습니다. 24 시간을 카운트 다운 한 다음 릴레이 나 MOSFET을 켜면 전압 레귤레이터가 전원에 연결되고 Arduino와 ESP8266이 켜집니다. Arduino가 전송을 마치면 타이머를 재설정하여 전압 조정기를 전원에서 분리하는 등의 작업을 수행합니다. 물론 타이머 회로는 전력을 거의 사용하지 않아야합니다.

아무도 그런 회로를 알고 있습니까? 나는 성공하지 않고 내 마음에 온 모든 변형 단어를 사용 하여 AliExpress 를 검색했습니다 . 아니면 그러한 회로를 만들기 위해 (쉽게) 사용될 수있는 IC일까요?


1
모든 전압 조정기가 동일한 것은 아닙니다. 일부는 몇 개의 마이크로 암페어 만 사용합니다.
Gerben

기본적으로 생각하면 ... 표준 타이머 스위치로 충분하지 않습니까?
user31208

답변:


5

한 가지 방법은 DS3231 (Precision Real Time Clock) 모듈을 사용하는 것입니다. 이러한 모듈은 Ebay에서 1 달러 미만으로 판매됩니다. 를 검색하십시오 ds3231 arduino.

일반적으로 이러한 모듈에는 핀이 32K, SQW, SCL, SDA, VCC 및 GND로 표시된 6 핀 커넥터가 있습니다. DS3231 사양에 명시된 바와 같이 INT / SQW 핀은 구형파 출력 또는 인터럽트 출력에 사용됩니다. 사양의 13 페이지에있는 제어 레지스터 섹션에 다음과 같이 표시되어 있습니다.

비트 2 : 인터럽트 제어 (INTCN). 이 비트는 INT / SQW 신호를 제어합니다. INTCN 비트가 로직 0으로 설정되면 INT / SQW 핀에 구형파가 출력됩니다. INTCN 비트가 로직 1로 설정되면 시간 유지 레지스터와 알람 레지스터 중 하나가 일치하면 INT / SQW 출력이 활성화됩니다 (알람도 활성화 된 경우).

처음에는 스케치를 실행하여 DS3231을 설정합니다. 일일 경보를 켜고 구형파 대신 인터럽트를 활성화하고 현재 시간을 설정합니다. 그런 다음 작동 할 때마다 자동차 배터리 전압을 읽는 작동 프로그램을로드 적절하게 행동합니다.

DS3231 INT / SQW 핀은 12V 전력을 Arduino로 전환하는 P 채널 MOSFET의 게이트에 연결됩니다. 알람의 오픈 드레인 출력 핀 INT / SQW가 켜지면 P-fet가 켜집니다. 운영 프로그램은 업무를 수행 한 후 DS3231 인터럽트 플래그를 지워 다음 알람이 발생할 때까지 전원을 차단합니다. (디버깅의 경우 사양의 12 페이지 표 2, 경보 마스크 비트에 설명 된대로 1 분 간격으로 하루보다 짧은 간격을 설정하십시오.)

일반적으로 DS3231은 3.3V 배터리 또는 5V에서 1μA에서 실행할 때 0.84μA를 소비합니다. 사양의 3 페이지, 전기적 특성을 참조하십시오.


1
P-fet 게이트는 아마도 1 메그 옴 저항과 같은 것을 통해 +12까지 끌어 올려 져야합니다. 그렇지는 INT / SQW 핀이 꺼져있을 때 효과적으로 개방 것이고, 임의의 수준에 떠 있었다
제임스 Waldby을 - jwpat7

3

타이머 또는 타이머 회로 자체는 약간의 전류를 소비해야합니다. 피콜 파워 AVR 칩은 내가 올바르게 기억한다면 슬립 모드에서 328에 대한 10 초의 마이크로 암페어에서 전류를 거의 소비하지 않습니다. 최소 전류 소비를 위해 AVR을 슬리핑하려면 거의 모든 것이 종료되지만 워치 독 타이머가 필요하며 최대 WDT 기간은 8 초입니다. Narcoleptic과 같은 라이브러리는 더 긴 기간을 관리합니다. 그래도해야 할 일은 Arduino 보드에 내장 된 것보다 훨씬 효율적인 조절 전원 공급 장치를 제공하는 것입니다 (사용할 경우). 그렇게하면, 자동차 배터리에 장착 된 Arduino의 부하는 미세해야합니다.

효율적인 전원 공급을위한 하나의 가능한 디자인은 알카라인 배터리의 배열입니다. 예를 들어 4.5 출력 (신선한) 시간에 2 개 이상의 이러한 스트링을 병렬로 연결하여 5v 버스에 직접 연결된 3 개의 직렬입니다.

필요한 용량과 D 셀이 필요한지 또는 작은 셀에서 실용적인 배열을 만들 수 있는지 또는 AA와 같은 실제 배열을 만들 수 있는지 전력 예산 책정을 수행하지는 않았지만 자동차 배터리의 무부하를 달성하는 방법입니다 (자동차 배터리 전압 센서 요구 사항 할인). 일일 보고서에 Arduino 배터리 어레이의 상태를 포함 시키거나 알카라인 가격으로 Arduino 배터리를 과도하게 설계하여 모니터링 할 필요가 없도록 할 수 있습니다.

몇 가지 데이터 포인트는 별도의 배터리가 실현 가능한 접근법이라고 제안합니다.

  • 하나의 9v 알카라인은 1 년 이상 연기가없는 다락방에서의 방한을 포함하여 연기 탐지기를 운영하며 9v 알카라인은 그 용량으로 알려져 있지 않습니다 .
  • 내 디지털 설정 온도 조절기는 a) 2 년 전에 2 개의 AA 셀에서 2 년 동안 작동했습니다. b) 나는 일어나서 매년 변경하기 시작했습니다. :)

2012 년 6 월 이후로 2 개의 AA 세포를 사용하는 ATmega48 (328P와 매우 유사)이 있습니다. 하루 4 분 이상 깨어 나머지 시간을 자고 있습니다. 지금까지 배터리를 교체하지 않았습니다.
Edgar Bonet

추가 데이터 포인트 인 @EdgarBonet에 감사합니다! 나는 잠자는 Arduino와 Alkaline 배터리 팩이 "설정 및 잊어 버린"시스템 일 수있을 것으로 예상했지만 에너지 소비를 계산하지 않으면 제대로 작동하지 않을 것이라고 생각했습니다. @DirkPitt에는 실제 지원 데이터가 있습니다.
JRobert

그것은 완전한 Arduino가 아닙니다 : 나는 Uno로 ~ 40 mA 이하를 얻을 수 없었 SLEEP_MODE_PWR_SAVE습니다. 비동기 타이머 만 활성화 된 ATAT는 2µA와 비슷했습니다.
Edgar Bonet


-1

타이머 스위치를 사용할 수 있습니다. ebay에서 약 5 유로에 구입할 수 있습니다. 나는 이것을 사용하고 있습니다

https://www.ebay.com/itm/CN101-DC-12V-16A-Digital-LCD-Power-Programmable-Timer-Time-Relay-Switch-New/401190616827?hash=item5d68d2fefb:g:K3sAAOSwNRdX3ggT

나는 또한 ds3231을 시도했지만 arduino는 대기 모드에 있으며 에너지를 소비합니다. 이것은 내가 찾은 최고의 솔루션입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.