Final Circuit Schematic Created Using Eagle - Senior Design | ECE 480, Study notes of Principles of Theater Design

Material Type: Notes; Professor: Goodman; Class: Senior Design; Subject: Electrical & Computer Egr; University: Michigan State University; Term: Unknown 1989;

Typology: Study notes

Pre 2010

Uploaded on 07/23/2009

koofers-user-4wu-1
koofers-user-4wu-1 🇺🇸

10 documents

1 / 13

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Appendix I: Final Circuit Schematic created using Eagle
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Partial preview of the text

Download Final Circuit Schematic Created Using Eagle - Senior Design | ECE 480 and more Study notes Principles of Theater Design in PDF only on Docsity!

Appendix I: Final Circuit Schematic created using Eagle

Appendix II: Eagle Printed Circuit Board Layouts

Bottom of Printed Circuit Board Top of Printed Circuit Board

Appendix III: Selected Component Datasheet Sections and Application Notes

APPLICATION

There are many ways to integrate the FlexiForce sensor into an

application. One way is to incorporate it into a force-to-voltage circuit.

A means of calibration must then be established toconvert the output

into the appropriate engineering units. Depending on the setup, an

adjustment could then be done to increase or decrease the sensitivity

of the sensor.

An example circuit is shown below. In this case, it is driven by a -5 V

DC excitation voltage.This circuit uses an inverting operational

amplifier arrangement to produce an analog output based on the

sensor resistance and a fixed reference resistance (RF). An analog-to-

digital converter can be used to change this voltage to a digital output.

In this circuit, the sensitivity of the sensor could be adjusted by

changing the reference resistance (RF); a lower reference resistance

will make the sensor less sensitive, and increase its active force range.

FlexiForce Sensor Force-to-Voltage Circuit Application ( taken from FlexiForce Sensor Manual)

NiMH Battery Fast-Charge Controller Datasheet Excerpt

Appendix IV: Budget Information

Quantity Part Number Description Total 1 MAX603CPA+ IC LDO REG LOW-IQ 5V/ADJ 8-DIP 4. 1 CD4541BE IC PROGRAMABLE TIMER 14-DIP 0. 1 L7809ABV IC PREC 1A REGULATOR 9V TO-220 0. 4 2N5401BU IC TRANS PNP SS HV 600MA TO-92 0. 1 ZFLEXA201-1-4PK A201-1 Sensor (4-Pack) 59. 3 2N6109G PNP Transistor 4. 2 MAXMAX712CPE+ IC BATT FASTCHRG NICD/NIMH 16DIP 15. 2 PIC18LF2520-I/SP IC MCU FLASH 16KX16 28SDIP 19. 8 HHR-210AA/B2B

BATTERY NIMH AA 2000MAH

W/BUTTON 30.

2 2465 HOLDER BATTERY 3CELL AA 6"LEAD 2.

4 2N6109G TRANS PNP PWR GP 7A 50V TO220AB 4.

Total Shipping 24. Total Cost 167. Project Development Budget Partlist EAGLE Version 4.16r Part Value Device Package BATTERY 3.6 V R-US_0204/2V 0204V C1 10 uF CPOL-USB45181A B45181A C2 10 uF CPOL-USB45181A B45181A C3 1 uF CPOL-USB45181A B45181A C9 0.01 uF C-US050-024X044 C050-024X C10 0.01 uF C-US075-042X103 C075-042X C11 10 uF C-US050-024X044 C050-024X C12 10 uF CPOL-USB45181A B45181A D1 1N4001 1N4148 DO35- DZ1 LZR184 LZR184 LZR IC1 MAX712CPE MAX712CPE DIL IC2 MAX604 MAX665 DIL J1 JACK-PLUG0 SPC LED1 Yellow LEDLD260 LD LED2 Red LEDLD260 LD LH1526AB AQW21 AQW21 DIL ON-OFF 9450-1 9450-1 9450- Q1 2N6109 2N6107 TO R1 560k R-US_0204/2V 0204V R2 560k R-US_0204/2V 0204V R3 330 R-US_0204/2V 0204V

R4 330 R-US_0204/2V 0204V

R5 330 R-US_0204/2V 0204V

R6 330 R-US_0204/2V 0204V

R7 15k R-US_0204/2V 0204V R8 15k R-US_0204/2V 0204V R9 1M R-US_0204/2V 0204V R10 1M R-US_0204/2V 0204V R11 1M R-US_0204/2V 0204V R12 1M R-US_0204/2V 0204V R13 1k R-US_0204/2V 0204V R14 1k R-US_0204/2V 0204V R15 68k R-US_0204/2V 0204V R16 22k R-US_0204/2V 0204V R17 470 R-US_0204/2V 0204V R18 150 R-US_0204/2V 0204V R19 1.2k R-US_0204/2V 0204V R20 R-US_0204/2V 0204V R22 1.5 R-US_0613/15 P0613/ R23 R-US_0204/2V 0204V S1 DIP04S DIP04S S2 RACON12 RACON12 RACON S3 RACON12 RACON12 RACON SG3 F/QMBIII F/QMBIII F/QMBIII U$1 PIC18F2520-I/SP PIC18F2520-I/SP DIL28- X1 1503_09 1503_09 1503_ X2 1503_09 1503_09 1503_ X3 1503_09 1503_09 1503_ Total Cost 48. Device Component List and Total Cost

/************************** Sensor A **********************************/ // RC7 puts us into cal for sensorA if( !PORTCbits.RC7 ) { SetChanADC(ADC_CH1); //Set ADC to Pin 5 ConvertADC(); //perform ADC conversion while(BusyADC()); //wait for result adc_result = ReadADC(); //get ADC result // if this is the first cycle we see the switch // delete the old threshold value if ( firstA ) { thresholdA = 307; // set minimum value avoids incorrect cal firstA = 0; // reset this value } PORTCbits.RC1 = 1; // calibration light on // set the threshold to the maximum value read while cal button is pressed if( adc_result > thresholdA ) { thresholdA = adc_result; } } // end of calA /************************** Sensor B **********************************/ // RC3 puts us into cal mode for sensorB if( !PORTCbits.RC3 ) { SetChanADC(ADC_CH0); //Set ADC to Pin 2 ConvertADC(); //perform ADC conversion while(BusyADC()); //wait for result adc_result = ReadADC(); //get ADC result // if this is the first cycle we see the switch // delete the old threshold value if ( firstB ) { thresholdB = 307; // set minimum value avoids incorrect cal firstB = 0; // reset this value } PORTCbits.RC4 = 1; // calibration light on // set the threshold to the maximum value read while cal button is pressed if( adc_result > thresholdB ) { thresholdB = adc_result; } } // end of calB } // end of cal mode // otherwise we are not in calibration else

{ // Not in calibration so reset first flags firstA = 1; firstB = 1; // Turn off cal lights PORTCbits.RC1 = 0; PORTCbits.RC4 = 0; /************************** Sensor A **********************************/ SetChanADC(ADC_CH1); //Set ADC to Pin 3 ConvertADC(); //perform ADC conversion while(BusyADC()); //wait for result adc_result = ReadADC(); //get ADC result // turn on relay A if( adc_result > thresholdA /new stuff/ || (PORTCbits.RC0 && ( adc_result > (thresholdA * 80)/100 ) ) ) { AisOn = 1; Acount++; } else { AisOn = 0; Acount = 0; } /************************** Sensor B **********************************/ SetChanADC(ADC_CH0); //Set ADC to Pin 2 ConvertADC(); //perform ADC conversion while(BusyADC()); //wait for result adc_result = ReadADC(); //get ADC result // turn on relay B if( adc_result > thresholdB /new stuff/ || (PORTCbits.RC5 && ( adc_result > (thresholdB * 80)/100 ) ) ) { BisOn = 1; Bcount++; } else { BisOn = 0; Bcount = 0; } // buzzer config if( PORTCbits.RC5 || PORTCbits.RC0 ) { buzzCount++; if( PORTBbits.RB0 && !PORTBbits.RB1 ) // buzzer on { if( AisOn )

{ if( AisOn && Acount > 50 ) { PORTBbits.RB4 = 1; PORTCbits.RC0 = 1; } else { PORTBbits.RB4 = 0; PORTCbits.RC0 = 0; } if( BisOn && Bcount > 50 ) { PORTCbits.RC5 = 1; PORTBbits.RB5 = 1; } else { PORTCbits.RC5 = 0; PORTBbits.RB5 = 0; } } else // longer delay { if( AisOn && Acount > 150 ) { PORTBbits.RB4 = 1; PORTCbits.RC0 = 1; } else { PORTBbits.RB4 = 0; PORTCbits.RC0 = 0; } if( BisOn && Bcount > 150 ) { PORTCbits.RC5 = 1; PORTBbits.RB5 = 1; } else { PORTCbits.RC5 = 0; PORTBbits.RB5 = 0; } } } } // end of not in cal else } // end of while } // end of main