H48C Oddness (SOLVED)
tpw_man
Posts: 276
I am trying to make a self-keeping accelerometer package with the H48C Accelerometer Module. Everything is working fine, except the Z axis seems to be always reporting +1g. The other to axes are reporting more sane values. I have sat my Propeller on the ground, and with a 600 sample average, X= -0.018, Y= 0.033, and Z= 1. I am using V1.1 of the H48C Driver. Is there some calibration I need to do, or is my code messed up?
EDIT: I have left Zero-G unconnected, and left out the 220 Ohm resistors for the pins. I know this might damage the prop, but I do not have any on hand.
Code:
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I am 1011, so be surprised!
Advertisement sponsored by dfletch:
Come and join us on the Propeller IRC channel for fast and easy help!
Channel: #propeller
Server: irc.freenode.net or freenode.net
If you don't want to bother installing an IRC client, use Mibbit. www.mibbit.com
Post Edited (tpw_man) : 6/27/2008 11:20:46 PM GMT
EDIT: I have left Zero-G unconnected, and left out the 220 Ohm resistors for the pins. I know this might damage the prop, but I do not have any on hand.
Code:
con _clkmode = xtal1+pll16x _xinfreq = 5_000_000 obj accel : "H48C Tri-Axis Accelerometer" lcd : "Debug_LCD" math : "FloatMath" str : "FloatString" var long x,y,z long x2,y2,z2 pub main str.setprecision(2) accel.start(0,1,2) lcd.init(15,19200,4) lcd.cls lcd.backlight(true) average(600) pub display(num) lcd.str(string("X_Gforce= ",13,"Y_Gforce= ",13,"Z_Gforce")) repeat num lcd.gotoxy(10,0) lcd.str(str.floattostring(math.fdiv(math.ffloat(accel.x),math.ffloat(455)))) lcd.str(string(" ")) lcd.gotoxy(10,1) lcd.str(str.floattostring(math.fdiv(math.ffloat(accel.y),math.ffloat(455)))) lcd.str(string(" ")) lcd.gotoxy(10,2) lcd.str(str.floattostring(math.fdiv(math.ffloat(accel.z),math.ffloat(455)))) lcd.str(string(" ")) 'output(accel.x,accel.y,accel.z, 1) waitcnt(clkfreq/10+cnt) pub average(num) lcd.str(string("Averaging...")) lcd.home repeat num x += accel.x y += accel.y z += accel.z waitcnt(clkfreq/10+cnt) output(x/num,y/num,z/num, 0) 'repeat pub output(x_,y_,z_, t) if t == 0 lcd.cls lcd.str(string("X_Gforce= ",13,"Y_Gforce= ",13,"Z_Gforce")) lcd.gotoxy(10,0) lcd.str(str.floattostring(math.fdiv(math.ffloat(x_),math.ffloat(455)))) lcd.gotoxy(10,1) lcd.str(str.floattostring(math.fdiv(math.ffloat(y_),math.ffloat(455)))) lcd.gotoxy(10,2) lcd.str(str.floattostring(math.fdiv(math.ffloat(z_),math.ffloat(455))))
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I am 1011, so be surprised!
Advertisement sponsored by dfletch:
Come and join us on the Propeller IRC channel for fast and easy help!
Channel: #propeller
Server: irc.freenode.net or freenode.net
If you don't want to bother installing an IRC client, use Mibbit. www.mibbit.com
Post Edited (tpw_man) : 6/27/2008 11:20:46 PM GMT
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
I am 1011, so be surprised!
Advertisement sponsored by dfletch:
Come and join us on the Propeller IRC channel for fast and easy help!
Channel: #propeller
Server: irc.freenode.net or freenode.net
If you don't want to bother installing an IRC client, use Mibbit. www.mibbit.com