「PIC10F322 + Pch-MOSFET + NPN-Tr 過放電防止のために自動OFFする回路」の過放電防止回路を、実際にESP8266と組み合わせて使ってみる。
2次電池は、ちょっと気を抜いて過放電させると、すぐにどうこうではなくても、時間が経ってから性能に影響が出てくる。
こういう保護回路はやはりあった方がいい。
ちなみに、回路が増えて、しかもブレッドボードでテスト、という環境のせいか、ESP8266の動作が安定しない。
ダメもとで、470μFの電解コンデンサを取り付けたら、嘘のように安定した。
どの程度の容量が必要なのかと思って変更してみた。
電解コンデンサの手持ちは、単体で、1、10、47、100、470、1000μFがある。
100μFでは効果が無かったので、小さいものは試してない。
100μF+47μFと100μF×2では効果があった。
これだけは、基板にしてちゃんと半田付けしてみないことには、何とも言えない。
大きめにしておくのが無難だろう。
200~300μF程度か。
久しぶりで忘れかけていたので、PIC10F322のAD変換についても書いておく。
FVRがらみは「PIC10F322 + Pch-MOSFET + NPN-Tr 過放電防止のために自動OFFする回路」に書いた。
※1秒間隔で電源電圧を測定する。
クロックは16MHz、プリスケーラは1:256、タイマーは256カウントする(フリー・ランって言うんだっけ?)。
16000000 ÷ 4 ÷ 256 ÷ 256 = 61.0
別にカウンタを用意して61回数えたら1秒と判断する。
1 2 3 4 5 6 7 8 |
OPTION_REGbits.T0CS = 0;//TMR0 Clock Source is Internal instruction cycle clock (FOSC/4) OPTION_REGbits.PSA = 0;//Prescaler is assigned to the Timer0 module OPTION_REGbits.PS = 0b111;//Prescaler Rate is 1:256 INTCONbits.GIE = 1;//Global Interrupt Enabled INTCONbits.PEIE = 1;//Peripheral Interrupt Enabled INTCONbits.TMR0IE = 1;//Timer0 Overflow Interrupt Enabled INTCONbits.TMR0IF = 0;//Timer0 Overflow Interrupt Flag Clear TMR0 = 0; |
1 2 3 4 5 6 7 8 9 |
void interrupt intr(void) { INTCONbits.TMR0IF = 0;//Timer0 Overflow Interrupt Flag Clear TMR0 = 0; counter--; if(counter == 0){ counter = 61; doad(); } } |
※AD変換は、10回やって平均値を求めることにした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void doad(void){ unsigned int i = 0; unsigned char j; for(j=0; j<10; j++){ __delay_us(50); while(FVRCONbits.FVRRDY==0){}//FVR waiting ADCONbits.ADON = 1; //ADC is enabled ADCONbits.GO_nDONE = 1;//ADC start while(ADCONbits.GO_nDONE){}//ADC waiting i = i + ADRES; } UART_Transmit(i/10); if((i/10)>174){ RA2 = 0; } } |
「PIC10F322過放電防止回路 + 18650 + ESP8266 – テストしてみた –」へ続く。
Tweet