'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2013 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 16/05/2013 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
Device = 16F877A
Xtal 20
' LCD pin Configuracion
LCD_Type = 0
LCD_Lines = 4
LCD_DTPin = PORTB.4
LCD_RSPin = PORTB.2
LCD_ENPin = PORTB.3
LCD_Interface = 4
All_Digital = On
TRISA = %00000010
TRISB = %00000000
CMCON = %00000111
CCP1CON = %00000000
ADCON0 = %00000000
Symbol triger = PORTA.0
Symbol eco = PORTA.1
Symbol led = PORTA.2
Dim temp As Word
Dim dista As Word
Dim VAR1 as word
DIM PULGADAS AS byte
'el sensor debe recibir pulso de disparo de 10uS
'la distancia es proporcional al ancho de pulso del eco
'eco de 100uS a 18mS y debe esperar 10 mS antes de intentar otro trigger
'devuelve 36mS si no se detecta nada
'hacer una formula para calcular la distancia en centimetros
'distancia entre 3 y 300cm
delayms 200
cls
'secuencia de inicio
'1234567890123456
Print At 1,1,"SENSOR ULTASONIC"
Print At 2,5,"SHF-04"
DELAYMS 1500
CLS
loop:
PulsOut PORTA.0,50, High
DelayUS 10
dista = PulsIn eco,1
If dista > 18000 Then
CLS
Print At 1,4,"DISTANCIA"
Print At 2,5,"MAXIMA"
DELAYMS 1000
EndIf
If dista < 80 then
CLS
Print At 1,4,"DISTANCIA"
Print At 2,5,"MINIMA"
DELAYMS 1000
endif
temp=dista/28 '26-28 ES LA CALIBRACION en cm
TEMP = TEMP * 10 ' en mm
PULGADAS = TEMP / 25 ' en pulgadas
if TEMP >=30 and temp <= 6660 then
Print At 1,4,"DISTANCIA:"
Print At 2,1,dec3 temp," mm"," - ",DEC3 PULGADAS,"''"
DelayMS 100
endif
GoTo loop
End
ya esta, lo busque en internete y lo mejore un poco, solo un poco...
un saludo