hi !
i've seen this shield, and i'm wondering if any of you have tried it ? does it really add 48 analog inputs to the arduino ?
cause i'd need that much analog inputs, or even more.
http://shieldlist.org/appliedplatonics/analoginput
thanks !
hi !
i've seen this shield, and i'm wondering if any of you have tried it ? does it really add 48 analog inputs to the arduino ?
cause i'd need that much analog inputs, or even more.
http://shieldlist.org/appliedplatonics/analoginput
thanks !
Look at the schematic. Looks like it basically puts mux in front of each of the analog inputs (which themselves are a mux to the single ADC in th atmega328).
It is a way to get more analog inputs.
thanks but, what is a mux please ?
in the end, do you mean that there are 48 independant analog inputs like i'd need, or is it cheating somewhere ?
Mux = Multiplexer.
It is an analog switch matrix. It is a way to make independent inputs share a common resource. Inside of the ATmega chip, there is only one analog to digital converter. A multiplexer sits in front of it to get analog inputs 0-5.
This shield extends that concept by putting another mux in front of each analog input pin.
oh no .... that's bad news for me, as i'd need some completly independant analog inputs, more than 6, no 6 mains divided by 8 ... each of the 48 analog inputs should have their own different settings.
i guess i'm screwed right ?
Thanks James
We don't know if you're screwed or not, it depends what sort of frequency you need updates from you A/D channels.
i just received my arduino and i'm not familiar yet with everything ( i just programmed the blinking of the led for now lol ) , but i think i'm screwed since i need to make a midi device described here :
http://arduino.cc/forum/index.php/topic,95906.0.html
24 analog inputs would control 24 different notes velocitys, and 24 other analog inputs would control 24 different notes lenghts.
it couldn't be 6 groups of 8 analog controlers ( what's the use of having 8 controlers for the same input ?? )
You haven't answered the update rate question
i'm sorry, i suppose i didn't understand what it means. what is the update rate from the Analog/digital channels ?
How fast do you need updates from each of your 48 channels?
I think you'll be OK. You are basically inputting data at "human speeds" from a keyboard. Where it gets tricky is if you are trying to do something like sample high-quality audio waveforms which requires about 40,000 samples per second. (i.e CDs have a sample rate of 44.1kHz x 2 channels.)
MIDI is a lot less demanding because it doesn't have to deal with audio waveform over tiny fractions of a second, it just needs to deal with "little messages" about the notes at the tempo of the music. You probably need to read data at something like 10 samples per second. Well... You'll have to be a bit faster than that, because even if you're not reading 10 samples per second you can't be 1/10th of a second off.
thanks but, what is a mux please ?
in the end, do you mean that there are 48 independant analog inputs like i'd need, or is it cheating somewhere ?
It's "cheating" by "time sharing". You can read more inputs, but the more inputs you read, the longer it takes before it gets-around to grab another reading from each input.
well, it would start to be complicate.
i thought about a constant value. Let me explain : imagine a sequence of 24 notes, one by one , and it re start all over... during these jumps > note 1>note 2>note 3>note 4.... ( each can be a different note btw ) , there are at least two controlers assigned to each note , and they give a tone, a difference. from one loop to the next loop and the next loop ... these values assigned don't change, unless i turn the potentiometer sometime, to adjust the individual notes of the sequence.
the sequence can go fast, but i don't know if we can see this question of update of channels this way ... i don't need to have it changed fast, ( only the note 1>note 2>note 3>note 4.... can go slow or fast, according here again , to an analog controler ) i'd just need to have these values affected independant and constant if i want, all with a different value if i want.
does it make sense ? or did you think of an idea to settle it the way i need ?
so do you think that sharing time between 8 controlers by each of the 6 analog true inputs would let me do this ? how is it processing ? does it remember 8 different values previously set, from one loop to another ?
so do you think that sharing time between 8 controlers by each of the 6 analog true inputs
I think you're still misunderstanding.
There is only ONE true analogue input (one analogue-to-digital converter).
The AVR puts a six (or eight or sixteen) position selector switch in front of this one converter and connects each of the switch's inputs to a pin.
Using "analogRead", the maximum rate you can sample is about 9500 samples per second, so if you have to share that one converter between the six analogue input pins, the maximum rate on any one pin cannot exceed 9500 / 6 = 1580 per second.
If you have to share it across 48 channels, then the per-channel rate is 9500 / 48 = 197.
This may or may not be fast enough for your application.
hi ! sorry for the delay, i didn't see that you replied, i didn't get a notification.
you're right, and i'm maybe still misunderstanding the way it works, with one analog input divided into several sample rates ...
to simplify my thought i'll give a picture of how i imagine that analog input : to me it's like an input to control one thing with a potentiometer for example. Like a treble control on an amp. But if on the amp i need a treble , a bass , a medium and a volume control, i'll need four separate "analog inputs". I can't have one input only for all the four controls.
i don't understand how it works with the sample rates, here.
i didn't even knew that there was only one analog input in fact. i was gonna propose the idea to join together several arduino boards, to get more true analog inputs, but if there's only one, i'd need 48 ! and i suppose it's impossible anyway to make a network of arduino boards, working together.
i suppose it's impossible anyway to make a network of arduino boards, working together.
It's quite possible and done all the time, but probably not the way to go with your project unless your inputs are a long way apart, eg many metres.
If the single Arduino ADC is not fast enough you can add external ones and talk to them using I2C or SPI.
Rob
thanks ^^ but i'm still several steps down there lol. for now i'm trying to understand how the analog input works, when divided into several, compared to the example i gave with an amp, about treble, medium, volume, basse controls on an amp : in this example, it's clear that only one analog input can't be shared by all these controls..
i'm trying to understand the difference, and what's the story about the sample rate etc ...
i guess it has a whole different meaning compared to the amp controlers...
The sample rate is basically how fast you read the inputs. If you wanted to sample (record) an audio signal you may have to read an analog input 200,000 x a second. This would not be possible I think with the Arduino.
However you appear to only be reading knobs turned by a human, in that case the only timing issue is that when you turn a knob you want to see/hear a result straight away not 2 seconds later. An Arduino with multiplexers on the analog inputs should handle that easily unless there are a huge number of controls.
it's clear that only one analog input can't be shared by all these controls..
Yes you can as long as you don't need to read the control(s) at a very fast rate, and I think we've established that you don't.
Rob
oh, i think i can understand better now. thanks !
indeed, i don't need to turn the knobs fast , i just need several things to be controled independantely ... :
so there's no problems doing this right ?
what would be the latency from the moment i turn one knob from 0 to 10 ? i mean, how many samples would be the information for one controled message sent by midi then, from its minimum to its maximum ?
if i have 48 analog inputs, AWOL told me that it would be 9500 samples / 48 = 197 samples/sec available for each control. So i may have an idea of the time it'll take to the arduino to understand the information i sent with the potentiometer or encoder.
... said another way, i suppose that a digital on/off information needs a few samples, right ? nd a potentiometer indicating a value to the arduino needs more samples, right ? does it work this way ?
what does the analog input represents, related to the number of samples ?
Also, is it possible to have a little lcd screen or something, for each control, indicating the value from 1 to 100, to see where the arduino is exactly set ?