Omar Azuaje Posted January 25, 2017 Report Share Posted January 25, 2017 Buenas soy nuevo en el foro y estoy trabajando con el sensor de MPU6050 Controlado 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 foto millas y Mando a imprimir los Datos del MPU6050 una millas en solitario LCD Pantalla mí Muestra el valor "257" es de Todos los ejes (X, Y y Z) no se que tendra mi Problema programacion, aqui se las dejo... Gracias... '**************************************************************** '* Name : UNTITLED.BAS * '* Author : [select VIEW...EDITOR OPTIONS] * '* Notice : Copyright (c) 2017 [select VIEW...EDITOR OPTIONS] * '* : All Rights Reserved * '* Date : 24/01/2017 * '* Version : 1.0 * '* Notes : * '* : * '**************************************************************** ''''''''''''''''''''''CONFIGURACION DEL OSCILADOR''''''''''''''''''''''''''''' DEFINE I2C_SLOW 1 'Cuando en la transferencia es utilizado un 'oscilador menor a 8 Mhz define osc 4 '''''''''''''''''''''SYMBOL A LOS PUERTOS''''''''''''''''''''' '''''''''''''''' symbol SDA = PORTB.0 'Le damos un alias a los puertos symbol SCL = PORTB.1 Symbol T1200 = 1 'Velocidad de transmision bps ''''''''''''''''''''''PUERTOS I/O''''''''''''''''''''''''''''''''''''''''''''''' TRISB = %00000000 PORTC = %01000000 PORTD = %00000000 ''''''''''''''''''''''CONFIGURACION DE LA LCD''''''''''''''''''''''''''''''''''' DEFINE LCD_DREG PORTD ' Indica que el Bus estará conectado en el Puerto D DEFINE LCD_BITS 4 ' El bus será de cuatro bits. DEFINE LCD_DBIT 4 ' Selección del Bit de inicio del puerto en el uC para el ' bus de datos de la LCD DEFINE LCD_RSREG PORTD ' Indica al uC que el pin "RS" estará en el Puerto D DEFINE LCD_RSBIT 2 ' "RS" estará conectado en RD2 DEFINE LCD_EREG PORTD ' Indica al uC que el pin "E" estará en el Puerto D DEFINE LCD_EBIT 3 ' "E" estará conectado en RD3 Lcdout $fe, 1 ' Limpia la pantalla '''''''''''''''''''''''''''DECLARACION DE VARIABLES''''''''''''''''''''''''''''' READ_ACX VAR WORD READ_ACY VAR WORD READ_ACZ VAR WORD READ_GYX VAR Word READ_GYY VAR Word READ_GYZ VAR Word ''''''''''''''''''''''''Declaracion de direcciones a usar''''''''''''''''''''''' I2C_ADDRESS con $68 'Establecer conexion con el MPU6050 mandando a (AD0 = 0) PWR_MGMT_1 con $6B 'Registro para el reset del MPU6050 CONFIG_ con $1A 'Configuracion de la velocidad de muestreo del ADC GYRO_CONFIG con $1B 'Configuracion para establecer conexion con el giroscopio ACCEL_CONFIG con $1C 'Configuracion para establecer conexion con el acelerometro 'I2C_SLV0_ADDR con $25 ''''''''''''''''''''''''''''H/L DEL ACELEROMETRO'''''''''''''''''''''''''''''''' ACCEL_XOUT_H con $3B 'Habilitar lectura del Ac. en el eje X ACCEL_XOUT_L con $3C 'Desabilitar lectura del Ac. en el eje X ACCEL_YOUT_H con $3D 'Habilitar lectura del Ac. en el eje Y ACCEL_YOUT_L con $3E 'Desabilitar lectura del Ac. en el eje Y ACCEL_ZOUT_H con $3F 'Habilitar lectura del Ac. en el eje Z ACCEL_ZOUT_L con $40 'Desabilitar lectura del Ac. en el eje Z '''''''''''''''''''''''''''H/L DEL GIROSCOPIO''''''''''''''''''''''''''''''''''' GYRO_XOUT_H con $43 'Habilitar lectura del Gy. en el eje X GYRO_XOUT_L con $44 'Desabilitar lectura del Gy. en el eje X 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 GYRO_ZOUT_L con $48 'Desabilitar lectura del Gy. en el eje Z Inicio: '''''''''''''CONFIGURACION PARA LA ESTABLECER CONEXION CON LA IMU''''''''''''''' I2CWrite SDA, SCL, I2C_ADDRESS, PWR_MGMT_1, [%10000000] 'Reset del dispositivo pause 100 I2CWrite SDA, SCL, I2C_ADDRESS, PWR_MGMT_1, [%00000000] 'Inicialiazacion pause 100 I2CWrite SDA, SCL, I2C_ADDRESS, CONFIG_, [%00000100] 'Config. vel. de muestreo pause 100 I2CWrite SDA, SCL, I2C_ADDRESS, GYRO_CONFIG, [%000000001] 'Config del Gy. pause 100 I2CWrite SDA, SCL, I2C_ADDRESS, ACCEL_CONFIG, [%11100000] 'Config del Ac. pause 100 '''''''''''''''''LECTURA DE LOS DATOS OBTENIDOS DE LA AC'''''''''''''''''''''''' I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_XOUT_H, [READ_ACX.HighByte] 'High lectura del AcX pause 100 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_XOUT_L, [READ_ACX.lowByte] 'Low lectura del AcX pause 100 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_YOUT_H, [READ_ACY.HighByte] 'High lectura del AcY pause 100 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_YOUT_L, [READ_ACY.lowByte] 'Low lectura del AcY pause 100 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_ZOUT_H, [READ_ACZ.HighByte] 'High lectura del AcZ pause 100 I2Cread SDA, SCL, I2C_ADDRESS, ACCEL_ZOUT_L, [READ_ACZ.lowByte] 'Low lectura del AcZ pause 100 '''''''''''''''''LECTURA DE LOS DATOS OBTENIDOS DEL GY'''''''''''''''''''''''''' I2Cread SDA, SCL, I2C_ADDRESS, GYRO_XOUT_H, [READ_GYX.HighByte] 'High lectura del GyX pause 100 I2Cread SDA, SCL, I2C_ADDRESS, GYRO_XOUT_L, [READ_GYX.lowByte] 'Low lectura del GyX pause 100 I2Cread SDA, SCL, I2C_ADDRESS, GYRO_YOUT_H, [READ_GYY.HighByte] 'High lectura del GyY pause 100 I2Cread SDA, SCL, I2C_ADDRESS, GYRO_YOUT_L, [READ_GYY.lowByte] 'Low lectura del GyY pause 100 I2Cread SDA, SCL, I2C_ADDRESS, GYRO_ZOUT_H, [READ_GYZ.HighByte] 'High lectura del GyY pause 100 I2Cread SDA, SCL, I2C_ADDRESS, GYRO_ZOUT_L, [READ_GYZ.lowByte] 'Low lectura del GyY pause 100 Lcdout $fe, 1 ' Limpia la pantalla Lcdout $fe,2 ' Inicio de la primera línea. LCDOUT "X=",SDec READ_GYX,$FE,2,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,$14,$FE,$14, "Y=",SDec READ_GYY," " LCDOUT $FE,$C0,"Z=",SDec READ_GYZ,$FE,$C0+7,$FE,$C0+8 goto inicio end Quote Link to comment Share on other sites More sharing options...
Fernende Posted February 5, 2021 Report Share Posted February 5, 2021 Hola buen día! Encontraste la solución? Me pasa lo mismo. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.