Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.35 KB | None | 0 0
  1. //*******2.2kOhm********1kOhm
  2. //DPH ---/\/\/\-- [D+]--/\/\/\-- DPL
  3.  
  4. //*******2.2kOhm********1kOhm
  5. //DMH ---/\/\/\-- [D-]--/\/\/\-- DML
  6.  
  7.  
  8.  
  9. const int DPH = 2;
  10. const int DPL = 3;
  11. const int DMH = 4;
  12. const int DML = 5;
  13.  
  14. bool handshakeDone = false;
  15. void handshake()
  16. {
  17.   pinMode(DPH, OUTPUT);
  18.   pinMode(DPL, OUTPUT);
  19.   digitalWrite(DPH, HIGH);
  20.   digitalWrite(DPL, LOW);
  21.  
  22.   delay(1500);
  23.  
  24.   pinMode(DMH, OUTPUT);
  25.   pinMode(DML, OUTPUT);
  26.   digitalWrite(DMH, LOW);
  27.   digitalWrite(DML, LOW);
  28.  
  29.   handshakeDone = true;
  30. }
  31.  
  32. /**
  33.  * Increases the current continuous mode voltage by 0.2v.
  34.  */
  35. void increaseVoltage()
  36. {
  37.   digitalWrite(DPH, LOW);
  38.   digitalWrite(DPL, HIGH);
  39.  
  40.   delay(1);
  41.  
  42.   setVoltage(69); // return back to continuous mode
  43. }
  44.  
  45. /**
  46.  * Decreases the current continuous mode voltage by 0.2v.
  47.  */
  48. void decreaseVoltage()
  49. {
  50.   digitalWrite(DMH, HIGH);
  51.   digitalWrite(DML, LOW);
  52.  
  53.   delay(1);
  54.  
  55.   setVoltage(69); // return back to continuous mode
  56. }
  57.  
  58. void setVoltage(unsigned int voltage)
  59. {
  60.   if (! handshakeDone)
  61.     handshake();
  62.  
  63.   switch (voltage)
  64.   {
  65.     /*case 20: // NOTE supported only on class B
  66.       digitalWrite(DPH, LOW);
  67.       digitalWrite(DPL, HIGH);
  68.       digitalWrite(DMH, LOW);
  69.       digitalWrite(DML, HIGH);
  70.     break;*/
  71.     case 69: // NOTE used to change to continuous mode
  72.       digitalWrite(DPH, HIGH);
  73.       digitalWrite(DPL, LOW);
  74.       digitalWrite(DMH, LOW);
  75.       digitalWrite(DML, HIGH);
  76.     break;
  77.     case 12:
  78.       digitalWrite(DPH, HIGH);
  79.       digitalWrite(DPL, LOW);
  80.       digitalWrite(DMH, HIGH);
  81.       digitalWrite(DML, LOW);
  82.     break;
  83.     case 9:
  84.       digitalWrite(DPH, LOW);
  85.       digitalWrite(DPL, HIGH);
  86.       digitalWrite(DMH, HIGH);
  87.       digitalWrite(DML, LOW);
  88.     break;
  89.     case 5:
  90.     default:
  91.       digitalWrite(DPH, HIGH);
  92.       digitalWrite(DPL, LOW);
  93.       digitalWrite(DMH, LOW);
  94.       digitalWrite(DML, LOW);      
  95.   }
  96. }
  97.  
  98. void setup()
  99. {
  100.   // do nothing
  101. }
  102.  
  103. void loop()
  104. {
  105.   /*setVoltage(20);
  106.   delay(5000);*/
  107.   setVoltage(12);
  108.   delay(5000);
  109.   setVoltage(9);
  110.   delay(5000);
  111.   setVoltage(5);
  112.   delay(5000);
  113.   setVoltage(69); // change to continuous mode
  114.   for (int i = 0; i < 25; i++)
  115.   {
  116.     delay(1000);
  117.     increaseVoltage();
  118.   }
  119.   for (int i = 0; i < 50; i++)
  120.   {
  121.     delay(1000);
  122.     decreaseVoltage();
  123.   }
  124.   delay(5000);
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement