bascula adc 16f877a pic
Post on 08-Apr-2016
313 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 16f877a2 Capacitores 22pF1capacitor de cristal 4MhzResistor 10kohmBotón na Lcd 16x2Sensor óptico cny70Resistor 68ohmResistor 22kohmBascula 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ónD7
14D6
13D5
12D4
11D3
10D2
9D1
8D0
7
E6
RW5
RS
4
VSS
1
VDD
2
VEE
3
LCD1LM016L
RA0/AN02
RA1/AN13
RA2/AN2/VREF-/CVREF4
RA4/T0CKI/C1OUT6
RA5/AN4/SS/C2OUT7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP2 16
RC2/CCP1 17
RC3/SCK/SCL 18
RD0/PSP0 19
RD1/PSP1 20
RB7/PGD 40RB6/PGC 39RB5 38RB4 37
RB3/PGM 36RB2 35RB1 34RB0/INT 33
RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21
RC7/RX/DT 26RC6/TX/CK 25RC5/SDO 24
RC4/SDI/SDA 23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI 15
MCLR/Vpp/THV1
U1
PIC16F877A
C1
22pFC2
22pF
X1CRYSTAL
VDD
4%
RV1
100k
R1
10k
VDD
RV1(2)RV1(3)V=0.199992
ADC
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 operablevoid 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); } }
top related