본문 바로가기

Study501

리튬배터리 충전 IC TP4056 TP4056은 배터리를 쓰는 제품의 충전을 위한 가장 저렴한 IC 입니다. 인터넷에서는 충전 쪽보드가 1100원정도 밖에 하지 않습니다. IC는 더 저렴합니다. 주 개당 118원밖에 하지 않습니다. 충전 회로도 데이터 시트를 보면 쉽게 구할 수 있습니다. Rprog는 충전전류를 설정하는 저항입니다. 위 그림과 같이 저항값에 따라 전류값을 정할 수 있으며 최대 충전전류는 1A입니다. 그리고 왼쪽의 그림은 LED 인디게이터인데, 충전중일땐 CHRG가 LOW 떨어지고, 충전이 완료되면 STDBY가 LOW로 떨어집니다. 즉 CHRG쪽에 Red LED, STDBY쪽에 Green LED를 연결해 놓으면 충전여부를 알 수 있습니다. 또한 충전기가 연결 안되어 있을경우나 배터리 온도가 너무 높거나 낮은 경우(온도센서 .. 2020. 3. 20.
ESP32 ADC ESP32의 경우 12bit 18개의 ADC를 가지고 있습니다. 또한 ESP32의 경우 ADC값이 완전히 리니어하지는 않습니다. 위 그래프처럼 조금 울퉁불퉁한 면이 있어서 주위해야하며, 0.00v~0.10v와 3.10v~3.30v 사이는 거의 변화가 없는걸 유의 하셔야 합니다. 물론 adc를 calibration하는 방법이 여러가지가 있는데 크게 영향을 미치지 않는 영역의 adc를 사용한다면 그대로 사용하셔도 됩니다. 크게 ADC1 8채널과 ADC2 10채널로 나뉘어져 있으며 ADC1과 ADC2는 차이가 조금 있는데 ADC2의 경우 WiFi나 BT를 사용하면 ADC기능을 사용할 수 없습니다. 이런경우 ADC1을 사용해야 합니다. 가변저항을 이용하여 간단하게 테스트를 해보겠습니다. 우선 가변저항의 한쪽엔 .. 2020. 3. 12.
ESP32 Sleep Mode와 Wake up 무선제품의 경우 배터리 관리는 필수입니다. 따라서 사용하지 않을경우에는 Sleep Mode를 사용하여 전력소모를 줄여야 합니다. ESP32의 경우 총 5가지 모드가 있으며, 모드에 따라 배터리 소모량이 달라집니다. 배터리 관리를 위한 항목은 총7가지 이며, 모드에 따라 사용하는 항목들이 달라집니다. Active 모드는 당연히 모든 기능을 사용합니다. 베터리 소모는 160~260mA를 소모합니다. 두번째는 Modem Sleep 모드로 무선쪽과 주변기기를 모두 꺼버립니다. 전력소모는 3~20mA로 확 떨어집니다. 위 코드를 통해 Sleep Mode에 들어갈 수 있습니다. 세번째는 Light Sleep 모드로 Modem Sleep과 비슷합니다. 더블어 클럭펄스를 꺼서 회로의 일부를 비활성화시킵니다. esp_l.. 2019. 12. 28.
ESP32 타이머 인터럽트 ESP32에도 인터럽트들이 있는데, 이번에는 타이머 인터럽트입니다. 타이머 인터럽트는 일정 시간이 지난 후 자동으로 실행되는 인터럽트입니다. 1 2 3 //Interrupt volatile bool interruptCounter=false; hw_timer_t * timer = NULL; cs Line 2 : 타이머 인터럽트가 걸렸을때 체크할 변수입니다. 인터럽트 안에서 사용할 변수는 volatile을 사용해야 합니다. Line 3 : 타이머 인터럽트로 사용 할 하드웨어 타이머입니다. 1 2 3 4 5 6 void interrupt_init(){ //timer interrupt freq is 80Mhz timer = timerBegin(0, 80, true); //division 80=1Mhz timer.. 2019. 12. 13.
ESP32 하드웨어 시리얼 변경 ESP32는 ESP8266처럼 Software Serial을 제공하지 않습니다. ESP32의 경우 총 UART가 3개가 있습니다만 UART2의 경우 JTAG 포트에 있기때문에 정해진 포트를 이용하기 힘듦니다. 따라서 Software Serial을 이용해서 변경해야 하는데, ESP32는 Software Serial을 제공하지 않으므로, Hardware Serial을 GPIO 포트를 변경하여 이용할 수 있습니다. 1HardwareSerial comm(1);cs 먼저 HardwareSerial을 선언해줍니다. 뒤에 comm은 이름이고, 괄호안의 번호는 UART 번호입니다. 1comm.begin(9600,SERIAL_8N1,commRx,commTx);cs 초기화는 위와 같이 적어주면 됩니다. 괄호안의 첫번째는 .. 2019. 12. 13.
ESP32 PWM사용하기 ESP32의 경우 PWM을 만들기가 아주 쉽습니다. PWM이 아닌 LED용 PWM 을 사용하면 됩니다. 그리고 ESP32에는 총 16개의 PWM채널이 있습니다.(Timer 3개) 만약 resolution이나 주파수가 다르다면 다른 타이머의 pwm채널을 사용하는것을 권장합니다. 사용방법은 간단합니다. ledcSetup(PWM채널,주파수,분해능); ledcAttachPin(포트번호,PWM채널); ledcWrite(PWM채널,PWM값); Line 1~2는 설정을 하는부분이고, Line 3이 PWM출력을 내보내는 부분입니다. Line 1에서 PWM채널은 위 그림의 16개의 PWM 채널중에 선택을 하시면 됩니다. 주파수는 PWM 총 주기인데 보통 5000을 많이 사용하는듯 합니다. 분해능은 비트를 적으면 되는데 .. 2019. 12. 11.

인기글