AD5242.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include <Wire.h>
  2. //#define AD_adress1 0x2c
  3. //#define AD_adress2 0x2f
  4. //#define AD_pot1 0x00
  5. //#define AD_pot2 0x80
  6. byte AD_adress1 = 0x2c;
  7. byte AD_adress2 = 0x2f;
  8. byte AD_pot1 = 0x00;
  9. byte AD_pot2 = 0x80;
  10. int potValue[4];
  11. int potValueUpdate[4];
  12. byte potAdress[4][2] = { {AD_adress1, AD_pot1},
  13. {AD_adress1, AD_pot2},
  14. {AD_adress2, AD_pot1},
  15. {AD_adress2, AD_pot2}, };
  16. void setup_AD5242() {
  17. Wire.begin(); // join i2c bus (address optional for master)
  18. Serial.println("starting potentiometers");
  19. // Serial.println(AD_adress1);
  20. // Serial.println(AD_pot1);
  21. // Serial.println(potAdress[0][0]);
  22. // for (int i ; i<4 ; i++) {
  23. // for (int j ; j<2 ; j++){
  24. // Serial.print (potAdress[i][j], HEX);
  25. // Serial.print ("-");
  26. // }
  27. // }
  28. //Set potentiometers to 0
  29. for (int pot ; pot<4 ; pot++){
  30. Wire.beginTransmission(potAdress[pot][0]);
  31. Wire.write(potAdress[pot][1]);
  32. Wire.write(potValue[pot]);
  33. Wire.endTransmission();
  34. }
  35. }
  36. void handle_AD5242() {
  37. for (int pot ; pot<4 ; pot++){
  38. // Serial.println("pot");
  39. // Serial.print(potAdress[pot][0] + " : ");
  40. // Serial.println(potAdress[pot][1]);
  41. if (potValue[pot] != potValueUpdate[pot]) {
  42. potValue[pot] = potValueUpdate[pot];
  43. Wire.beginTransmission(potAdress[pot][0]);
  44. Wire.write(potAdress[pot][1]);
  45. Wire.write(potValue[pot]);
  46. Wire.endTransmission();
  47. //Serial.println("updated");
  48. }
  49. }
  50. }