41.วงจร Capacitive Sensor
รายการอุปกรณ์
R1,R2_____1M 1/4W Resistors
R3,R4____47K 1/4W Resistors
C1_______10?F 25V Electrolytic Capacitor
C2______470pF 630V Ceramic or Polyester Capacitor
D1-D3____1N4002 100V 1A Diodes
Q1-Q3_____BC337 45V 800mA NPN Transistors
RL1_______Relay with SPDT 2A @ 220V switch
Coil Voltage 12V. Coil resistance 200-300 Ohm
J1________Two ways output socket
Sensor____Aluminium or copper thin sheet with the dimensions of a post-card,
glued at the rear of the same (approx. 15x10.5 cm.)
Thin screened cable
42.วงจร Capstan Servo Amplifier
43.วงจร Car Voltage Gauge
44.วงจร Charge Pump Voltage Divider
45.วงจร Child’s - Lamp
46.วงจร CMOS ท็อคเกิ้ลฟลิบฟลอป โดยใช้เลเซอร์พ้อยน์เตอร์
47.วงจร CMOS ท็อคเกิ้ลฟลิบฟลอป โดยใช้สวิทช์กดติตปล่อยดับ
48.วงจร Commutator A Relay RC PCB
49.วงจร Continuity Tester PCB
รายการอุปกรณ์
R1 = 1K D1,D2 = 1N4148
R2 = 2K2 Z1 = 8V2, 1/4 watt
R3,R4 = 22K T1 = 2N3905 (PNP)
R5 = 2K7 T2,3,4,5 =2N3904 (NPN)
R6,R7 = 56K 9volt Alkaline battery
R8 = *See text suitable loudspeaker
C1,C2 = 22nF housing & probes
An on-off switch is not necessary. D1 is used when the battery is brand-new and giving
over the nominal 9 volt, T1, T2 and T3 acting as the switch for supplying power
to the multivibrator
50.วงจร Counter - Timer (MC68HC908GR8CFB) PCB
code
#include"otackomer.h"
unsigned int countxtd,dispupd; // 3rd and 4th byte of timecounter */
unsigned char overctrl,invmeas,badmeas,notmeas;
unsigned long int lastpulse,delay; // Timestamp of last pulse
/* Counter overflow - rotations under resolution */
//#pragma interrupt_handler count_ctrl
//void count_ctrl(void)
//{
// T2SC1&=~0x80;
// overctrl=1;
//}
#pragma interrupt_handler count_xtd
void count_xtd(void)
{
T2SC&=~0x80;
asm("cli");
countxtd++;
overctrl=0;
if(notmeas<255) notmeas++;
if((notmeas>140)&&(!invmeas)) invmeas=1;
if(dispupd) dispupd--;
}
#pragma interrupt_handler signal_in
void signal_in(void)
{
uli currpulse;
uchar tmpvar;
T2SC0&=~0x80;
tmpvar=T2CH0H;
currpulse=((uli)countxtd<<16)|((uli)tmpvar<<8)|(uli)T2CH0L;
if(overctrl&&(~tmpvar&0x80)) currpulse+=65536;
delay=currpulse-lastpulse;
if(delay>4096) lastpulse=currpulse;
// lastpulse=currpulse;
if(!invmeas)
{
if((delay<9830400)&&(delay>4096))
{
notmeas=0;
}
} else { invmeas--; notmeas=0;}
}
void counter_init(void)
{
T2SC=0x70; // Reset, hold, BUSCLK/1
T2MODH=0xFF; // Round trip = 64k
T2MODL=0xFF;
T2SC0=0x48; //Ch0 - i.c. on falling edge, interrupts
invmeas=5; //next 5 measurements will be invalided
countxtd=0;
overctrl=0;
lastpulse=0;
badmeas=1;
notmeas=150;
delay=0;
dispupd=0;
T2SC&=~0x20; //Start counter
}