Advertisement
claudiusmarius

RampeXIAOPlaquetteAD98330000005

Aug 21st, 2023
1,136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. //RampeXIAOPlaquetteAD98330000005
  2.   //https://youtu.be/XTWUN7pIVek
  3.   //https://www.youtube.com/c/ClaudeDufourmont
  4.   // SCLK et SDATA peuvent être commun à l'ensemble des AD9833
  5.   // IMPERATIF : NOK si pas de résistances PULL UP Sur SDA et SCK su DS1803
  6.   // ===============================================Standard Resistance Values DEBUT=============================================================
  7.   // DS1803-010 10kΩ
  8.   // DS1803-050 50kΩ
  9.   // DS1803-100 100kΩ
  10.   // =================================================Standard Resistance Values FIN==============================================================
  11.  
  12.   // ====================================================ADRESSES DEBUT===========================================================================
  13.   //  A2  A1  A0  Adresse I2C
  14.   //  0   0   0   0x28
  15.   //  0   0   1   0x29
  16.   //  0   1   0   0x2A
  17.   //  0   1   1   0x2B
  18.   //  1   0   0   0x2C
  19.   //  1   0   1   0x2D
  20.   //  1   1   0   0x2E
  21.   //  1   1   1   0x2F
  22.   // =====================================================ADRESSES FIN============================================================================
  23.   //  ===================================================WIRE COMMAND WORDS DEBUT=================================================================  
  24.   //  COMMAND                   COMMAND VALUE
  25.   //  Write Potentiometer-0     10101001
  26.   //  Write Potentiometer-1     10101010
  27.   //  Write Both Potentiometers 10101111
  28.   //  IMPORTANT : mettre un B devant le mot pour bien faire apparaître qu'il sagit d'un Byte, un Octet
  29.   //  =====================================================WIRE COMMAND WORDS FIN=================================================================
  30.  
  31.   #include <SPI.h>
  32.   #include <MD_AD9833.h>
  33.   #include <Wire.h>
  34.      
  35.   #define DATA_PIN_1  2   // Broche DATA pour AD9833 1
  36.   #define CLK_PIN_1   3   // Broche CLK pour AD9833 1
  37.   #define FSYNC_PIN_1 1   // Broche FSYNC pour AD9833 1
  38.  
  39.   #define FSYNC_PIN_2 7   // Broche FSYNC pour AD9833 2
  40.   #define FSYNC_PIN_3 10  // Broche FSYNC pour AD9833 3
  41.  
  42.   MD_AD9833 AD1(DATA_PIN_1, CLK_PIN_1, FSYNC_PIN_1);
  43.   MD_AD9833 AD2(DATA_PIN_1, CLK_PIN_1, FSYNC_PIN_2);
  44.   MD_AD9833 AD3(DATA_PIN_1, CLK_PIN_1, FSYNC_PIN_3);
  45.  
  46.   //==============================================================================================================================================
  47.   // IMPORTANT : Pour gagner des ports, DATA et CLK peuvent être communs aux 3 AD9833
  48.   //==============================================================================================================================================
  49.  
  50.   #define DS1803_ADDRESS 0x28
  51.  
  52.   void setup()
  53.   {
  54.   Wire.begin();
  55.  
  56.   pinMode(A8, INPUT);
  57.    
  58.   float frequency1 = 1000;
  59.   float frequency2 = 50;
  60.   float frequency3 = 50;
  61.  
  62.   AD1.begin();
  63.   AD1.setMode(MD_AD9833::MODE_SINE);
  64.   AD1.setFrequency(MD_AD9833::CHAN_0, frequency1);
  65.    
  66.   AD2.begin();
  67.   AD2.setMode(MD_AD9833::MODE_TRIANGLE);
  68.   AD2.setFrequency(MD_AD9833::CHAN_0, frequency2);
  69.  
  70.   AD3.begin();
  71.   AD3.setMode(MD_AD9833::MODE_TRIANGLE);
  72.   AD3.setFrequency(MD_AD9833::CHAN_0, frequency3);
  73.   }
  74.  
  75.   void loop()
  76.   {
  77.   potar ();
  78.   }
  79.  
  80.   void potar ()
  81.   {
  82.   int analogVoltage = analogRead (A8);
  83.   int analogVoltageBis = ((analogVoltage - (0.05/512))/0.45)*255/512;
  84.   //  ----------------------------------------------------------------------------
  85.   // Formule conversion analogVoltageBis bidouiller pour retomber sur mes pattes
  86.   // Je laisse les puristes trover la bonne formule
  87.   //  ----------------------------------------------------------------------------
  88.  
  89.   Wire.beginTransmission(DS1803_ADDRESS);
  90.   Wire.write(B10101001);
  91.   Wire.write(analogVoltageBis);
  92.   Wire.endTransmission();
  93.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement