You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

balanceDAC.ino 1.6KB

10 vuotta sitten
10 vuotta sitten
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* DAC balance example: Will influence both HP & LO outputs.
  2. This example code is in the public domain
  3. */
  4. #include <Audio.h>
  5. #include <Wire.h>
  6. #include <SPI.h>
  7. #include <SD.h>
  8. const int myInput = AUDIO_INPUT_LINEIN;
  9. // const int myInput = AUDIO_INPUT_MIC;
  10. // Create the Audio components. These should be created in the
  11. // order data flows, inputs/sources -> processing -> outputs
  12. //
  13. AudioInputI2S audioInput; // audio shield: mic or line-in
  14. AudioOutputI2S audioOutput; // audio shield: headphones & line-out
  15. // Create Audio connections between the components
  16. //
  17. AudioConnection c1(audioInput, 0, audioOutput, 0); // left passing through
  18. AudioConnection c2(audioInput, 1, audioOutput, 1); // right passing through
  19. // Create an object to control the audio shield.
  20. //
  21. AudioControlSGTL5000 audioShield;
  22. void setup() {
  23. // Audio connections require memory to work. For more
  24. // detailed information, see the MemoryAndCpuUsage example
  25. AudioMemory(4);
  26. // Enable the audio shield and set the output volume.
  27. audioShield.enable();
  28. audioShield.inputSelect(myInput);
  29. audioShield.volume(0.5);
  30. }
  31. elapsedMillis chgMsec=0;
  32. float lastBal=1024;
  33. void loop() {
  34. // every 10 ms, check for adjustment
  35. if (chgMsec > 10) {
  36. float bal1=analogRead(15);
  37. bal1=((bal1-512)/512);
  38. bal1=(int)bal1;
  39. if(lastBal!=bal1)
  40. {
  41. if(bal1<0)
  42. { // leaning toward left...
  43. audioShield.dacVolume(1,1+bal1);
  44. } else if(bal1>0) { // to the right
  45. audioShield.dacVolume(1-bal1,1);
  46. } else { // middle
  47. audioShield.dacVolume(1);
  48. }
  49. lastBal=bal1;
  50. }
  51. chgMsec = 0;
  52. }
  53. }