製造技術者のためのディジタル技術 組み込み型制御入門(2) 中京大学情報理工学部 伊藤 誠
7素子表示は、電卓などでおなじみの数字表示器 棒状の発光体を7本を 日 の字型に組み合せる <img height="91" src="file:///I:/www/mito_html/ss/Hardware/webPic/PicCource2/image1.gif" width="200" border="0" />
数字表示の内部回路と 点灯パターン 1 1 1 1 1 1 0 0 1 1 0 0 0 0 1 7 のパターンを作成してください
PICとの接続回路 B7を0にすると、7素子の g が点灯する int segment_data[]={0x7E,0x0C,0xB6,0x9E,0xCC,0xDA, 0xFA,0xE,0xFE,0xCE}; // 0~9のパターン output_b(~segment_data[vs]) ;数字vsを表示
センサー 光の強さにより、抵抗が変わる物質(CdS:硫化カドミウム)利用 光が殆どないときは、数十Kオームの高抵抗 室内照明程度で、数Kオームまで抵抗が低下
光センサー回路 CdS の抵抗値変化で出力電圧が変化する 光があたる> 抵抗が低くなる> 電圧が低下する
AD:アナログディジタル変換 0チャンネルを選択 set_adc_channel(0); 変換結果を読む vd=read_adc(); setup_adc_ports(AN0); クロックは内部クロックの1/32 setup_adc(ADC_clock_div_32); 0チャンネルを選択 set_adc_channel(0); 変換結果を読む vd=read_adc();
小型DC(直流モータ) 電圧1.5V~3V、電流百mA 回転数は約2000(rpm)、トルクは120g 負荷が一定なら、回転数は注入する電力で定まる (電力エネルギー=機械エネルギー)
(Pulse Width Modulation) PWM制御 (Pulse Width Modulation) 一定区間の中で通電する割合(時間幅)を変更 平均的な電力を調整する
PWMの設定 ////PWMモードに設定 setup_ccp1(CCP_PWM); //タイマー2で繰り返し期間 setup_timer_2(T2_DIV_BY_1,prd,1); //周期の中の通電期間を設定 set_pwm1_duty(pwt1);
ダイオード: コイルの逆起電力を軽減 黒い帯を右にして モータ接続回路 トランジスタでスイッチ制御 左からE,C,B ダイオード: コイルの逆起電力を軽減 黒い帯を右にして 左から右へ流れる
実習回路 アナログ 信号 PWM信号 CdS センサー PIC 16F88 7素子 数字表示 DCモータ 制御
制御プログラム #include <16f88.h> #fuses INTRC_IO,NOWDT,NOLVP,NOMCLR,NOBROWNOUT//16F88設定 #use delay(CLOCK=4000000) //クロック4MHz int prd; int vd,vs; int segment_data[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0xFE,0xE6}; void main(){ set_tris_a(0xFF);//AD変換設定 setup_adc_ports(sAN0); setup_adc(ADC_clock_div_32); set_adc_channel(0); set_tris_b(0x01); //数字表示設定 output_b(0xFF); setup_ccp1(CCP_PWM); //PWM設定 prd=100; setup_timer_2(T2_DIV_BY_1,prd,1);//pwm周期設定:100u while(1){ 繰り返し部 }
繰り返し部プログラム vd = read_adc()/20; //明るさを取得、 if(vd > prd/2 ) vd = prd/2;//PWMの幅は半分以上にする vs = vd/3;//表示する値 0..9 if(vs>9) vs=9; //9以上にしない output_b(~segment_data[vs]);//7セグ出力 set_pwm1_duty(prd-(int)vd);//pwmの幅設定 delay_ms(100);//お休み
回路制作 1.CdS,PIC、7セグ,Tr挿入 2.PIC7セグ電源 3.CdS抵抗、配線 4. 7セグ下から上段左、7セグ上から下段右へ、配線 5.下段抵抗、上段抵抗 6.Tr左(E)>グランド、右(B)>下段抵抗>PIC6 7.電源>モータ>Tr中(C)、ダイオードを電源とTr中(C):方向注意