Stap 4: Arduino Code
Het grootste deel van de broncode behandelt SPI communicatie tussen de ADC en de DAC.
De interessante delen die ik wilt opnemen in dit instructable zijn de werking van de audio verwerking te combineren van de stem met de sinus.
Deze code wordt een waarde van de microfoon gelezen. Dit resulteert in een getal tussen 0 en 4095:
audio_in = read_adc(1);
De sinusgolf wordt gegenereerd in de installatiemethode en opgeslagen in een matrix. De hoofdlus vervolgens itereert over deze array te halen de volgende waarde in de sinusgolf:
index += incr; if (index >= NUM_SINE_WAVE_POINTS) { index -= NUM_SINE_WAVE_POINTS; } data = sineWave[index];
Het audiosignaal en de sinusgolf waarde worden vervolgens samen vermenigvuldigd:
audio_out = 2047 + ((audio_in-2047) * ((data-127) / 127.0));
De volledige broncode is beschikbaar hier.