Вы находитесь на странице: 1из 3

Buenas soy nuevo en el foro y estoy trabajando con el sensor de MPU6050 Controlado ACCEL_ZOUT_L con $40 'Desabilitar lectura

del Ac. en el eje Z


ONU de la estafa pic con el compilador PicBasicPro y agradeceria Mucho Alguna
ayuda Que pudieran ofrecerme, El problema Es Que CUANDO carga El Programa una '''''''''''''''''''''''''''H/L DEL GIROSCOPIO'''''''''''''''''''''''''''''''''''
foto millas y Mando a imprimir los Datos del MPU6050 una millas en solitario LCD GYRO_XOUT_H con $43 'Habilitar lectura del Gy. en el eje X
Pantalla m Muestra el valor "257" es de Todos los ejes (X, Y y Z) no se que tendra mi GYRO_XOUT_L con $44 'Desabilitar lectura del Gy. en el eje X
Problema programacion, aqui se las dejo... Gracias... GYRO_YOUT_H con $45 'Habilitar lectura del Gy. en el eje Y
GYRO_YOUT_L con $46 'Desabilitar lectura del Gy. en el eje Y
GYRO_ZOUT_H con $47 'Habilitar lectura del Gy. en el eje Z
''''''''''''''''''''''CONFIGURACION DEL OSCILADOR''''''''''''''''''''''''''''' GYRO_ZOUT_L con $48 'Desabilitar lectura del Gy. en el eje Z
DEFINE I2C_SLOW 1 'Cuando en la transferencia es utilizado un
'oscilador menor a 8 Mhz Inicio:
define osc 4 '''''''''''''CONFIGURACION PARA LA ESTABLECER CONEXION CON LA IMU'''''''''''''''
I2CWrite SDA, SCL, I2C_ADDRESS, PWR_MGMT_1, [%10000000] 'Reset del dispositivo
'''''''''''''''''''''SYMBOL A LOS PUERTOS''''''''''''''''''''' '''''''''''''''' pause 100
symbol SDA = PORTB.0 'Le damos un alias a los puertos
symbol SCL = PORTB.1 I2CWrite SDA, SCL, I2C_ADDRESS, PWR_MGMT_1, [%00000000] 'Inicialiazacion
Symbol T1200 = 1 'Velocidad de transmision bps pause 100

''''''''''''''''''''''PUERTOS I/O''''''''''''''''''''''''''''''''''''''''''''''' I2CWrite SDA, SCL, I2C_ADDRESS, CONFIG_, [%00000100] 'Config. vel. de muestreo
TRISB = %00000000 pause 100
PORTC = %01000000
PORTD = %00000000 I2CWrite SDA, SCL, I2C_ADDRESS, GYRO_CONFIG, [%000000001] 'Config del Gy.
pause 100
''''''''''''''''''''''CONFIGURACION DE LA LCD'''''''''''''''''''''''''''''''''''
DEFINE LCD_DREG PORTD ' Indica que el Bus estar conectado en el Puerto D I2CWrite SDA, SCL, I2C_ADDRESS, ACCEL_CONFIG, [%11100000] 'Config del Ac.
DEFINE LCD_BITS 4 ' El bus ser de cuatro bits. pause 100
DEFINE LCD_DBIT 4 ' Seleccin del Bit de inicio del puerto en el uC para el
' bus de datos de la LCD '''''''''''''''''LECTURA DE LOS DATOS OBTENIDOS DE LA AC''''''''''''''''''''''''
DEFINE LCD_RSREG PORTD ' Indica al uC que el pin "RS" estar en el Puerto D I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_XOUT_H, [READ_ACX.HighByte] 'High lectura
DEFINE LCD_RSBIT 2 ' "RS" estar conectado en RD2 del AcX
DEFINE LCD_EREG PORTD ' Indica al uC que el pin "E" estar en el Puerto D pause 100
DEFINE LCD_EBIT 3 ' "E" estar conectado en RD3 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_XOUT_L, [READ_ACX.lowByte] 'Low lectura
Lcdout $fe, 1 ' Limpia la pantalla del AcX
pause 100
'''''''''''''''''''''''''''DECLARACION DE VARIABLES'''''''''''''''''''''''''''''
READ_ACX VAR WORD I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_YOUT_H, [READ_ACY.HighByte] 'High lectura
READ_ACY VAR WORD del AcY
READ_ACZ VAR WORD pause 100
READ_GYX VAR Word I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_YOUT_L, [READ_ACY.lowByte] 'Low lectura
READ_GYY VAR Word del AcY
READ_GYZ VAR Word pause 100

''''''''''''''''''''''''Declaracion de direcciones a usar''''''''''''''''''''''' I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_ZOUT_H, [READ_ACZ.HighByte] 'High lectura
I2C_ADDRESS con $68 'Establecer conexion con el MPU6050 mandando a (AD0 = 0) del AcZ
PWR_MGMT_1 con $6B 'Registro para el reset del MPU6050 pause 100
CONFIG_ con $1A 'Configuracion de la velocidad de muestreo del ADC I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_ZOUT_L, [READ_ACZ.lowByte] 'Low lectura
GYRO_CONFIG con $1B 'Configuracion para establecer conexion con el giroscopio del AcZ
ACCEL_CONFIG con $1C 'Configuracion para establecer conexion con el acelerometro pause 100
'I2C_SLV0_ADDR con $25
''''''''''''''''''''''''''''H/L DEL ACELEROMETRO'''''''''''''''''''''''''''''''' '''''''''''''''''LECTURA DE LOS DATOS OBTENIDOS DEL GY''''''''''''''''''''''''''
ACCEL_XOUT_H con $3B 'Habilitar lectura del Ac. en el eje X I2Cread SDA, SCL, I2C_ADDRESS, GYRO_XOUT_H, [READ_GYX.HighByte] 'High lectura
ACCEL_XOUT_L con $3C 'Desabilitar lectura del Ac. en el eje X del GyX
ACCEL_YOUT_H con $3D 'Habilitar lectura del Ac. en el eje Y pause 100
ACCEL_YOUT_L con $3E 'Desabilitar lectura del Ac. en el eje Y I2Cread SDA, SCL, I2C_ADDRESS, GYRO_XOUT_L, [READ_GYX.lowByte] 'Low lectura
ACCEL_ZOUT_H con $3F 'Habilitar lectura del Ac. en el eje Z del GyX
pause 100 del GyY
pause 100
I2Cread SDA, SCL, I2C_ADDRESS, GYRO_YOUT_H, [READ_GYY.HighByte] 'High lectura
del GyY Lcdout $fe, 1 ' Limpia la pantalla
pause 100 Lcdout $fe,2 ' Inicio de la primera lnea.
I2Cread SDA, SCL, I2C_ADDRESS, GYRO_YOUT_L, [READ_GYY.lowByte] 'Low lectura LCDOUT "X=",SDec READ_GYX,$FE,2,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,
del GyY $14,$FE,$14,$FE,$14, "Y=",SDec READ_GYY," "
pause 100 LCDOUT $FE,$C0,"Z=",SDec READ_GYZ,$FE,$C0+7,$FE,$C0+8

I2Cread SDA, SCL, I2C_ADDRESS, GYRO_ZOUT_H, [READ_GYZ.HighByte] 'High lectura goto inicio
del GyY
pause 100 end
I2Cread SDA, SCL, I2C_ADDRESS, GYRO_ZOUT_L, [READ_GYZ.lowByte] 'Low lectura

Вам также может понравиться