Hi all,
I am relatively new to arduino, and not totaly aware of all the possibilities so I need a advice from experienced people.
I am planing to build a system that will measure weight of 10-20 different objects placed close to each other, every 30-60 minutes, and send daily report by sms.
The question is how to connect 10-20 scale modules to the single Arduino. Probably on I2C bus, but I would like to know if there is a AD converter on I2C bus which already has a library for arduino.
Arduino already has build in AD conversion. If you want to read 20 sensors you just need to multiplex them. An example how multiplexing works can be found in my thermal imaging experiment. Here I am multiplexing measurements from 20 diodes: Thermal Imaging | Blinkenlight.
Thank you for your advice.
Your idea is excellent, and it works too! .... but...
All the analog sources that you measure are on the same place, few mm away from each other and 10 cm away from arduino. As I said, I will measure the weight of 10-20 objects which are abot 50 cm from each other, but nevertheless I am afraid that it would be bad for the analog signal to travel that far. Also, I would have to connect each scale with its own cable to the central place (arduino) and I was hoping for the bus connection.
Anyway, I will look into your project carefully before I decide.
You could use Tiny45's for on-the-spot ADC or you could use transistors to amplify analog signals to where transmission losses at a few meters would matter much and can be calibrated for.
Usually longer wires will collect more noise / degrade SNR. However since your weight measurements are probably very slow changing you can add a low pass filter in software. IMHO this should easily compensate longer wires. I would try the simplest approach first. That is: just one sensor, build in AD converter, but already with the target wire lenght. If this works, it will work with 20 as well. If it does not you can still try the more complicated approach.