Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Digital Fat Calliper Circuit

Status
Not open for further replies.

vivian_lys90

New Member
Hi all,

I'm doing my research project on the title of ' Modify, Design and Testing on Digital Fat Calliper'. I need to rebuild a digital fat calliper, but I can't found any circuit diagram and information about the electronic circuit of digital fat calliper.

Anyone know what is the electronic components needed to build the circuit of digital fat calliper? Or anyone has the circuit diagram of the digital fat calliper, please reply my post.

I very appreciate with your help. Thanks.

Vivian
 
The fat calipers are more of a goniometer than linear scale. That linear interface, as well as the one used by Mitutoyo, are fairly straight forward. The device on Amazon actually does a calculation to give % body fat. I love reading the user reviews. For example, one user claims the measure button broke the first time it was used:

**broken link removed**

John
 
Thanks for the reply.

I had bought a Sequoia Fitness Warrior Digital Body Fat Caliper and plan to modify it. However, I found this calliper does not have the port to be connected with the computer. And there have two options for me, either I need to build an interface or I need to rebuild a new digital fat calliper.

I need to modify the digital fat calliper so that it can store the user data and than display the data in a graphical form. I also need to add some LED light on the digital fat calliper which uses to give signal to the users.
 
I think you are out of luck, as I suspected. What I see is a sensor for the angle (the first and second pictures), which may be a variable resistance or perhaps has discrete digital contacts , it is too blurry to tell. The rest is COB (circuit on board). That means all of the microprocessor and LCD driving is under that black plastic blob. Reprogramming it is essentially impossible.

The chance of being able to tap in and get the output you want so it can be interfaced to another processor is slim. If you have an oscilloscope, you may find which connections are sending the serial(?) data to the screen. If you can do that, then that approach becomes a possibility, but it is still a daunting task. It actually might be easier to start at the sensor and design everything else from scratch, which is still not easy to do. That would be a consideration, if you have experience in such programming.

John
 
Last edited:
Hi John,

Thanks for your reply. Since modifying the circuit is hard, then the only way that I can do is rebuild the circuit. Do you have any ideas on the circuit diagram for the digital fat calliper?

Vivian
 
First you need to define the type of sensor. As I mentioned, it could produce a digital output, such as a number of blips. It could also be resistive, which would require an analog input to your microprocessor. The rest of the circuit is all microprocessor. The care and feeding of which includes a power supply, some pins for programming, some pins for control inputs (e.g,. on/off), etc. Some pins can be used for multiple things. The electrical circuit is in all likelihood quite simple. The display appears to be a graphical LCD to which all you need to supply is power and data in the proper format.

The real hurdle is the software or firmware used by the microprocessor/microcontroller. Do you have experience in programming microcontrollers? Are you working on a commercial product? Unless both are true, I suggest taking data from the fat caliper and entering it manually into your computer or calculator database. A properly designed data entry system can be surprisingly fast.

John
 
Hi,
View attachment pic16f887 new.pdf
Attached is my circuit design. But now I'm focusing on the fat matrix(a lot of push button) and LCD.
I have a programming code which get from Dougy83, but I not very clear about the programming code.
I want to make the programming code so that it can display which button has been pressed in the LCD. But I don't know how it should be. Please help me.
#include <stdint.h>

unsigned char i;
unsigned char j;
unsigned char pv;


const uint8_t pow2[8] = {1,2,4,8,16,32,64,128}; //allows fast way to get
//a power of two value
uint8_t readCalliper()
{
OPTION_REG.NOT_RBPU = 0; //enable weak pull-ups on PORTB
TRISB = 0xFF; //all PBO-1(8pin) floating high
PORTA&=0xF0; //set the output value of pins on PEO-1 to 0
//these pins are kept as inputs,excepts when one is driven low
//get ready to pull low on PEO-1

//first try pulling each pin of PEO-1 low in succession

for (i=0;i<4;i++)
{
TRISA = (TRISA&0xF0) | (~pow2&0x0F); //set PEO-1(4pin) as output so
//that it can be driven low
//set a single bit as output (forced low)
delay_us(5);
pv=PORTB;
if (pv != 0xFF)
{
for(j=0;j<8;j++)
{
if(!(pv&1))
return i*16+j;
pv>>=1;
}
}
}

TRISA |= 0x0F; //all PEO-1 floating high
PORTB=0; //get ready to pull low on PBO-1

for (j=0;j<8;j++)
{
TRISB=~pow2[j]; //set PBO-1 pins as output so
//that it can be driven low
delay_us(5);

pv=PORTA;
if (pv&0x0F !=0x0F) //just checking if one of the
//PEO-1 pins have been pulled low
{
for(i=0;i<4;i++)
{
if(!(pv&1))
return i*16+8*j;
pv>>=1;
}
}
}
return 0; //no valid reading
}

//LCD Module Connections

sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;
sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;





void main()
{


Lcd_Init();
Lcd_Out(1,2,"25");
Lcd_Out(1,6,"F");
Lcd_Out(1,13,"BF%");
Lcd_Out(2,2,pv);
/*Lcd_Out(2,5,"15");
Lcd_Out(2,8,"30");
Lcd_Out(2,12,"25.8");*/
}
 

Attachments

  • PIC16F887.PDF
    199.2 KB · Views: 374
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top