文書の表示以前のリビジョンバックリンクPDF の出力全て展開する/折り畳むODT 出力文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== 簡易紫外線計 ====== ===== 概要 ===== 太陽の光には、目に見える光(可視光線)のほかに、目に見えない赤外線や紫外線が含まれています。 紫外線は、地表に届く光の中で、最も波長の短いものです。 紫外線は、波長によって、A、B、C の3つにわけられます * UV-C:大気層(オゾンなど)で吸収され、地表には到達しない。 * UV-B:ほとんどは大気層(オゾンなど)で吸収されるが、一部は地表へ到達し、皮膚や眼に有害である。 日焼けを起こしたり、皮膚がんの原因となる。 * UV-A:UV-Bほど有害ではないが、長時間浴びた場合の健康影響が懸念されている。 今回は、紫外線センサーを使用して、紫外線を測定し、その強度を表示させて見ました。 ===== 動作原理 ===== 使用した紫外線センサーは、浜松フォトニクス社製の拡散型フォトダイオード「G7189」です。 次のような特長を持ったセンサーです。 <特長> * 感度波長範囲:300~580nm(ピーク波長470nm) * 短絡電流:65nA(@1000lx) * 暗電流:50pA * 受光面サイズ:0.8x0.8mm * 有効受光面積:0.58mm^2 * 受光感度:0.25A/W * パッケージ:プラスチック3ピン このセンサーの出力をオペアンプで、IV(電流電圧)変換し、紫外線強度(mW/cm2)をLCDに表示します。 有効受光面積と受光感度より、1mW/cm2の時の電圧を求めます。 * 1.45μA=(0.58×10^-5)×(250×10^-3) * 145mV=1.45μA×100kΩ <概観> {{:imgpaste:202004:htmikan-20200429-211314.png}} <分光感度特性> {{:imgpaste:202004:htmikan-20200429-211337.png?500}} ===== 回路図 ===== {{:imgpaste:202004:htmikan-20200429-211353.png}} ===== ソースコード ===== <code c uvMeter.c> //********************************************************************** /* <紫外線計> ■紫外線センサー 浜松ホトニクス社製 GaAsPフォトダイオード<G7189> 有効受光面積:0.58mm2 受光感度:0.25A/W 1.45μA=(0.58×10^-5)×(250×10^-3) オペアンプでI/V変換(100kΩ)した時の1mW/cm2の電圧 145mV=1.45μA×100kΩ */ //********************************************************************** unsigned int measurement(unsigned short channel) { unsigned int ad, cnt; // ad = 0; for (cnt = 0; cnt < 50; cnt++) { ad += Adc_Read(channel); } return (ad); } //********************************************************************** void main() { static unsigned char buf[12], cnt; static unsigned int ad; static double tmp; // OSCCON = 0b01110000; // クロックは8Mhz CMCON = 0b00000111; // コンパレータは使用しない。 // A/D変換を使用する。 ANSEL = 0b00010100; ADCON1.VCFG1 = 1; ADCON1.VCFG0 = 0; // ポートを初期化する。 TRISA = 0b10111100; TRISB = 0b00001111; // LCDを初期化する。 Lcd_Custom_Config(&PORTB,7,6,5,4,&PORTA,6,0,1); Lcd_Custom_Cmd(LCD_CURSOR_OFF); Lcd_Custom_Cmd(LCD_CLEAR); // while (1) { ad = measurement(2); tmp = ((double)ad * 2.44140625) / 50.0; // WordToStr((tmp * 1000.0) / 145.0, buf); Lcd_Custom_Out(1, 1, buf); Lcd_Custom_Out(1, 6, "uW/cm2"); // for (cnt = 0; cnt < 16; cnt++) { if (cnt < ((unsigned int)tmp / 156)) Lcd_Custom_Chr(2, cnt + 1, 0xFF); else Lcd_Custom_Chr(2, cnt + 1, ' '); } // Delay_ms(500); } } //********************************************************************** </code> ===== 動作確認 ===== {{:imgpaste:202004:htmikan-20200429-211505.png?500}} 左側:G7189とオペアンプ(LMC662)です。 右側:A/D変換用の基準電圧(2.5V)を発生させる部分です。 {{:imgpaste:202004:htmikan-20200429-211516.png}}{{:imgpaste:202004:htmikan-20200429-211522.png}} PIC16F88とLCD(液晶表示器)部分です。 {{:imgpaste:202004:htmikan-20200429-211532.png?500}} うす曇のときの紫外線強度です。 {{:imgpaste:202004:htmikan-20200429-211544.png?500}} 晴れてきたときの紫外線強度です。 {{:imgpaste:202004:htmikan-20200429-211556.png?500}} 如何ですか? これから夏場にかけて重宝するのではないでしょうか。 紫外線のUV-Bを測定するのであれば、G5842のほうが適していると思います。 <callout type="warning" title="著作権表示 copyright notice"> このページは稲崎様の閉鎖したHPのコピーで、著作権は稲崎様にあります。[[elechobby:picdic:picdic|詳細]] This page is a copy of Mr. Inasaki's closed website, and the copyright is held by him.[[elechobby:picdic:picdic|Details]] </callout> elechobby/picdic/pic16f88/87.txt 最終更新: 2025/10/17 14:29by 127.0.0.1