Está en la página 1de 3

Nombres: Oscar Hernández Guerrero

Leopoldo Granados Chávez

Profesor: Ing. Marisol Castañón Elizalde

Materia: Instrumentación

Horario: Lunes 07:00-09:00

Miércoles 07:00-09:00

Viernes 07:00-08:00

Grupo: 7E1
Bascula digital

Materiales:
Pic 16f877a
2 Capacitores 22pF
1capacitor de cristal 4Mhz
Resistor 10kohm
Botón na
Lcd 16x2
Sensor óptico cny70
Resistor 68ohm
Resistor 22kohm
Bascula mecánica para digitalizar

Explicación:
Digitalizar una báscula es tarea compleja debido al ajuste mecánico que el sistema necesite
debe ser minucioso y se revisa muy periódicamente dependiendo el tipo de sensor a utilizar,
este caso el sensor cny70; un sensor de tipo óptico que detecta en un rango de movimiento
muy pequeño una variación de voltaje, en cuanto su arreglo de circuito de ganancia,
ajustando el convertidor analógico digital para su etapa de visualización en la lcd.
Simulación LCD1
LM016L

VDD
VDD
VSS

VEE

RW
RS

D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3

4
5
6

7
8
9
10
11
12
13
14

C1
U1
13 33
OSC1/CLKIN RB0/INT
22pF
C2 X1 14
OSC2/CLKOUT RB1
34
CRYSTAL 35
RB2
2 36
RA0/AN0 RB3/PGM
3 37
RA1/AN1 RB4
22pF 4 38
RA2/AN2/VREF-/CVREF RB5
5 39
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
RV1(2) 7
RA5/AN4/SS/C2OUT
RV1(3) 15
RC0/T1OSO/T1CKI
V=0.199992 8 16
RV1 VDD RE0/AN5/RD RC1/T1OSI/CCP2
9 17
RE1/AN6/WR RC2/CCP1
10 18
RE2/AN7/CS RC3/SCK/SCL
R1 23
RC4/SDI/SDA
1 24
4%

ADC MCLR/Vpp/THV RC5/SDO


25
10k RC6/TX/CK
26
RC7/RX/DT
100k 19
RD0/PSP0
20
RD1/PSP1
21
RD2/PSP2
22
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7
PIC16F877A
Programacion Pic c (CCS compiler)
#include <16F877A.h>
#device ADC=10
#FUSES XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000) //capacitor de 4Mhz
#include <lcd.c>
#define use_portb_lcd TRUE //habilita el adc en una variable operable
void main(){
int16 q;
int16 qp;
int16 z;
float p;
float pp;
float lib;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
lcd_init();
for (;;) {
set_adc_channel(0);
delay_us(20);
q = read_adc();
qp=q/10;
z = (5 * q)*10; //variables para ajustar el adc sn mover el circuito
p = z/1024.0;
pp=(p*14)*9;
lib=pp*2.2;
if(pp>38){
printf(lcd_putc, "\f Capacidad=%4ld", qp); //salida ala lcd para vizualizar
printf(lcd_putc, "\n %01.2f Kg %01.0f Lb", pp,lib);
delay_ms(800);}
else
printf(lcd_putc, "\f Instrumentacion"); //salida ala lcd para visualizer que no hay nada que pesar
printf(lcd_putc, "\n No hay peso");
delay_ms(800);

}}

También podría gustarte