22,632

72

25

Published

Hello!

In my latest project I tried to realise a simple and cheap cycling powermeter based on Arduino. After a month I can say "Yes I can".

There are many commercial products (SRM, SRAM ...), but I'm always looking for a homemade solution. On the following pages I'll show you my successful construction.

## Step 1: The Principle

To calculate the power, we have to determine the current force, which is spent by the foot on the pedal. For this purpose I clued four strain gauges (http://www.ebay.com/itm/5Pcs-Pressure-Sensor-Precision-BF350-3AA-BF350-350-Strain-Gauge-Resistance-/361278029289?hash=item541dd93de9:g:oOYAAOSwstxVOFv2) on the sides of my old crank. To get a Signal depending on the load I arranged them in a so called Wheatstone-Bridge.

During one full rotation I sum as many forces as possible and calculate the average. Combined with the average velocity (2 * Pi * crank-radius / rotation-time) I get the power P.

To know the proportionality between the force F and the output-voltage U I strained the crank with different masses and myself (a lot of mass ;-)). The rise of the line is in my case 292 Newton/Volt.

For the amplifier I took a LF353 with a gain of 330. With this Setup I get Output-voltages between 1 and 4 V. I decided to start at 1V to avoid a negative drift and late response. Therefore I have to determine the offset at the beginning of the measurement and subtract this offset from the following voltages.

## Step 2: The Setup

For the power-supply I use two lipo-battery packs (7.4V, 1200 mAh for the receiver and a smaller 600 mAh one for the transmitter).

To save space I use an arduino nano and the NRF24L01 are responsible for the communication. They work great and you can send as many values as you want. In my case I send the power (P) and the rounds per minute (rpm).

I also had to check, when a full rotation has accured. To avoid a sensor, which has to be mounted on the bike-frame, I decided to use the gyroscope MPU-6050. The accuracy is about +-3 degree per full rotation, which is satisfying.

## Step 3: The Completed Crank and Receiver

The challenge was to fix up all the components (power-supply, gyroscope, NRF24L01, amplifier, arduino) on one crankarm but I succeded. I fixed them with double-sided tape and cable ties.

To mount the receiver on the bar I use the clamp from a bicycle-lamb.

## Step 4: The Results

After calibration and programming I first tried my powermeter indoor on my training roller. I got reasonable values and therefore I went outside. Heureka, it works :-)

Finally I can say, that it's possible to build a simple and working powermeter for

* 2 x arduino nano ..... 10 USD

* 2 x NRF24L01 ......... 5 USD

* 16x2 LCD ................ 5 USD

* 4 x strain gauges ..... 10 USD

* 2 x Lipo battery pack ..... 15 USD

* MPU-6050 ..................... 3 USD

* electronic parts .............. 7 USD

less than 55 USD.

Thank's for visiting my thread. Maybe you're interested in some of my other projects too:

## Recommendations

• ### Arduino Class

69,085 Enrolled

• ### Casting Contest

We have a be nice policy.

## 4 Questions

0

So if the components all work with 5V then couldn't I just use a 5V battery- or (as I have now ordered the 7.4V batteries!) I could use the 5v pin on the Nana to feed the wheatstone-bridge and Amp?

1

Yes you can replace the 7805 by using the 5V-pin of the nano. But you have to check first whether the +5V-pin can offer enough milliamps (mA) for the Bridge and the amplifier.

0

I ordered ten of those strain guages (dirt cheap) but then noticed this module...It seems to be the whetstone-bridge circuit/amplifier etc all integrated ready...

https://www.aliexpress.com/item/Strain-gauge-Bendi...

Given space is limited around the crank a couple of these (one each side) would be a lot more compact and reliable if they do what I think they do...What do you think?

Again, thanks for all your assistance!

1

I would say "just try it". But the Signal which you'll get from those single stress gauge will be lower compared to the Wheatstone-Bridge using 4 gauges

0

Thanks. So the 7805 goes in series between the battery and the Nano? I can't see it shown on your wiring diagams. The VIN pin accepts voltages up to 12V so I am slightly confused. BTW I was involved in the design of a commercial poweremeter which never got completed so I have loads of ideas and code for the use of the data- I will get it to work with a 2.4" TFT LCD altough this will require a bigger battery to run. As I develop this I will share stuff via your comments if you do not mind :) Thanks again for sharing your work

1

The 7805 is in series between the battery and the Wheatstone-Bridge and the LF353 amplifier. The arduino nano gets the whole 7.4V from the battery....

1

Thanks for the inspiration to try this myself. I am unclear how you connect the amplifier(s)

LF353 to the strain guages. Could you give us a circuit diagram/parts list of the wheatstone bridge set up please?

1

Hi! The 7805 voltage regulator is used for the wheatstone bridge and the LF353 amplifier. The incoming voltage is about 7.4V from the lipo-accu and with the 7805 you get stabilized 5V, even when the input voltage drops a little bit...

0

I watched the video and there is the circuit diagram for the sensors- sorry i didn't look first. Where does the voltage regulator get used...You seem to put the 7.4V straight into VIN (which is fine) so where does the 7805 regulator get used? Thanks!

Nice project :) I did something like this in the last year, but i kept things minimal. Here are few photos of my powermeter

6 replies

Hi friend, Would you give us details about your project? I mean, arduino model and etc.

Did you use two interrupts in your program? I think that would make a good idea Instructable. You might win some contests!

At the Moment I use a while-loop. while(angle < 360 degrees) add the forces. if angle >= 360°, calculate the average force F and speed v ---> P = F*v, degrees = degrees - 360° ----> next while-loop

Great work ;-)

Another use of the cadence sensor is power saving. When you pedal, the mcu turns back on and when it times out, it goes to sleep.

Great ;-)

Where did you get the calibration weights? Shouldn't they be precise?

Hi! The more precise they are, the more precise the calibration will be.... I took weights from dumbbells and my own half body-weight (Standing on both pedals...)

Actually your transmitter's may work with 3.7V. You may have to change the reference voltage. Half the current through the strain gauges nearly doubles the battery life!

Were those holes in the cranks necessary to get enough flex, or are they just leftover from other projects?

Do you have a schematic for your amplifier circuit?

First of all, I give you my congratulations to the project.

I wanted to know, if you can send me the arduino project code ?, I would be very helpful, thanks

Very nice work!

How many values do you record in one crank revolution (approximately, more like 10, 100, 1000,...)?

Can you please share the code for this project?

do you fancy sharing the code for this? thanks! :)

Nice project - Doing a similar project at my education. Did you do anything special to programme the Nano V3?

3 replies

Hi!

What do you exactly mean with special?

Can you upload the arduino code for the NRF boards?

I'm having trouble on how to make the nano board and the NRF24L01 communicate with each other.

You write: "I use an arduino nano and the NRF24L01 are responsible for the communication. They work great and you can send as many values as you want. In my case I send the power (P) and the rounds per minute (rpm)"

I would like it to do exactly the same thing, but i just do not know the process of this?

Very Interesting project and clear hardware design. Can you tell a litlle more about the software? I am specially interested in the calculations for the power.

How much money did you end up spending on this?