hola amigos, espero puedan ayudarme con algun codigo basico para controlar un acelerometo (MMA7455) de parallax, estoy programado en Pbasic, les cuento que tengo el codigo que entrega parallax para probar el sensor, pero tengo algunas dudas con respecto a eso. si uds. se fijan veran que los codigos entregados por parallax, al momento de ejecutarlos desplegan por la terminal DEBUG las variaciones en los distintos ejes X,Y y Z, el problema es que no se puede usar ese dato desplegado para controlar un motor o encender algun led cuando por ejemplo el eje X varia de -5 a 5 al mover el sensor. yo he extraido del codigo original solo lo que contra la lectura del eje X, pero tengo algunas dudas con respecto algunas linea, espero me puedan explicar como funcionan. gracias.

codigo modificado del original de la pagina de parallax, este codigo solo lee el eje X

FAVOR ALGUINE PODRIA EXPLICARME COMO FUNCIONAN LAS LINEAS QUE MARCARE CON ASTERISCOS Y PORQUE EL A LA VARIALBE Address SE LE ASIGNAN ESOS VALORES Y TAMBIEN A LA VARIABLE SendData. MUCHAS GRACIAS

' {$STAMP BS2}
' {$PBASIC 2.5}

XCal      CON 25

CLKPin    PIN 0
DATAPin   PIN 1
CSPin     PIN 2

XOFFL     CON $10
XOFFH     CON $11
MCTL      CON $16

XAccel    VAR Word

Address   VAR Word
SendData  VAR Byte
ReceiveData VAR Byte

Main:
  Address = MCTL: SendData = %01100101: GOSUB DataOut   *

  Address = XOFFL: SendData = XCal& $FF: GOSUB DataOut   *
  Address = XOFFH: SendData = XCal >> 8: GOSUB DataOut    *

  DEBUG CLS
  GOSUB TextField

ReadDataLoop:
  Address = XOUT8:GOSUB DataIn
  XAccel = ReceiveData|($FF00*ReceiveData.BIT7)       *

  DEBUG CRSRXY,50,3, SDEC XAccel, "  "

   GOTO ReadDataLoop

DataOut:
LOW CSPin
SHIFTOUT DATAPin, CLKPin, MSBFIRST, [(Address|%1000000)1]  *
SHIFTOUT DATAPin, CLKPin, MSBFIRST, [SendData]                        *
HIGH CSPin
RETURN

DataIn:
LOW CSPin
SHIFTOUT DATAPin, CLKPin, MSBFIRST, [Address1]  *
SHIFTIN DATAPin, CLKPin, MSBPRE, [ReceiveData]        *
HIGH CSPin
RETURN

TextField:
DEBUG CRSRXY,40,0,"MMA7455 3-Axis Accelerometer BS2 DEMO #1",
      CRSRXY,48,2,"8-Bit 2g Mode ; 64 LSB/g",
      CRSRXY,48,3, "X="
return

 

Visitas: 197

Responde a esto

Cursos online y tutoriales


(se requiere registro previo gratuito en PortalArduino.com)

Mantenimiento del sitio

© 2024   Creado por Lorenzo M. Oliver.   [Imágenes licenciadas por Depositphotos.com] Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio