Good day, everyone.
I'd like to experiment loading in data via an audio signal. Something along the lines of this:
For starters, I just want to transfer simple text data using audio and save it onto a text file on the arduino sd card. What is the basic principle for discerning between a 0 and 1 for audio? From what I've heard in some youtube videos, there are two tones involved. A high pitch for 1 and low pitch for 0. That tells me that there is supposed to also be a some sort of frequency detection method that could tell the two audio signal frequencies apart. My other thought was to use Silence for 0 and Tone for 1. However this is where issues with clock come into play. Without a clock signal how can your program know if the silence it just sampled 15 times is actually just still one single 0 bit instead of 15 0 bits?.
Without using frequency reading, I'm thinking perhaps I can use an ADC and use amplitude instead. silence is clock, audio volume ~2.5v is a 0 and 5v is a 1. then I can use the silence in between the bits to indicate that this is the end of a bit and the program has to wait for the next silence to interpret the next bit?
I'm probably wildly overthinking this, I'm sure the engineers of the yore have had this problem solved a long time ago.
This is just a fascinating subject to me and I would love your input.