Data logging shield help!!

For Adafruit customers who seek help with microcontrollers

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
BlindAssassin111
 
Posts: 2
Joined: Mon Jun 02, 2014 6:24 pm

Data logging shield help!!

Post by BlindAssassin111 »

I am very new to arduino's, I looked into them a couple of years ago but I had no money to buy them and play around/learn. Now I have an idea but I am not sure if it will be possible or easy to do.

I am part of a collegiate racing team for Formula SAE, I am the electrical lead, I have experience but not in arduino's. My goal is to use the data logging shield to record the data from the "Adafruit 10-DOF IMU Breakout - L3GD20 + LSM303 + BMP180", specifically the barometric pressure, 3-axis accelerometer, and the 3-axis gyro. Now for the caveat, I need to be able to send the barometric pressure to the ECU to allow for altitude compensation for the engine tune. I also want to send the board a signal from a wheel speed sensor to be data logged as well, which is digital.

Is all of this possible, and if so how would I wire everything up(really new to arduino's so I still haven't gotten a hang on building off of them)? If not why?


Also which arduino would be the best for the data logging shield? I have looked at the Uno, best compatibility from what I know, and the Due, because of the higher clock speeds. I would like to be able to record multiple time per second, if possible, for the best data.
Last edited by BlindAssassin111 on Wed Jun 04, 2014 1:01 am, edited 1 time in total.

User avatar
Franklin97355
 
Posts: 23910
Joined: Mon Apr 21, 2008 2:33 pm

Re: Data logging shield help!!

Post by Franklin97355 »

I need to be able to send the barometric pressure to the ECU
The rest of it seems feasable with the right level and signal interfaces. You will have to find out what data the ECU wants from sensors to adjust the mix, that might not be easy but it might be as simple as a resistance.

BlindAssassin111
 
Posts: 2
Joined: Mon Jun 02, 2014 6:24 pm

Re: Data logging shield help!!

Post by BlindAssassin111 »

Okay so slight change of plans here, I will no longer be using the "Adafruit 10-DOF IMU Breakout - L3GD20 + LSM303 + BMP180" instead I will be using the "Adafruit 9-DOF IMU Breakout - L3GD20 + LSM303" which eliminates the barometric sensor, I solved this issue already, just going to use a MAP sensor and have it read atmospheric pressure. So now the project is easier. But I still would like help on how to wire this thing up so that I can save the data correctly and have all 9 degrees working properly and store many times per second for high resolution, and pertinent information storage.

From What I understand the shield is just there to save time stamps and store data on the SD card, but how would I hook up an I2c board when an I2c shield is present? This I can't wrap my head around at all. I have never built something you could program, I have only built things you can't, i.e. headphone amplifiers, voltage regulators, things of that nature.

User avatar
adafruit_support_mike
 
Posts: 67446
Joined: Thu Feb 11, 2010 2:51 pm

Re: Data logging shield help!!

Post by adafruit_support_mike »

I2C is a shared-bus communication protocol. It's specifically designed so multiple devices can share the same pair of wires.

The under-the-hood view is that every I2C device on the line has a transistor that can, on command, create a low-resistance path to GND. No device has the capacity to create a HIGH signal, but they can all create LOW signals. You get the HIGH from a pull-up resistor tied to the VCC rail.

When a device wants to send data, it opens its transistor and pulls the signal line LOW. You don't have to worry about conflicts between two devices because if two devices try to send data at the same time, you just get two low-resistance paths to GND and the signal on the line stays LOW.

There's a whole set of rules for how devices on an I2C bus can avoid tripping over each other, but most of them are irrelevant to the way people use I2C. In most cases, only a single device (the microcontroller) ever generates signals on the line without being told to do so. Since the microcontroller manages all the traffic, you don't have to worry about who's in control.

Every device on an I2C bus has an address, and that's how the microcontroller decides who should listen and respond to commands. Every device on the same bus has a unique address, so they all know when to listen/respond and when to shut up.

In some cases you want to use more than one of the same device on an I2C bus, so chip manufacturers bring part of the address out to a set of pins that you can set HIGH or LOW. In most cases, each pin represents one bit of the address, so if you have N address pins you can have 2^N devices on the same bus.

Locked
Please be positive and constructive with your questions and comments.

Return to “Microcontrollers”