Jump to content
I2Cdevlib Forums

Recommended Posts

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

Link to comment
Share on other sites

  • 4 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...