Skip to content

Instantly share code, notes, and snippets.

@pingud98
Created October 3, 2015 14:30
Show Gist options
  • Save pingud98/b439bf4c13926bec35cf to your computer and use it in GitHub Desktop.
Save pingud98/b439bf4c13926bec35cf to your computer and use it in GitHub Desktop.
HV PSU Control algo
//upwards voltage ramp from 40V to 68.8V, takes approx 60 seconds to reach
//03 10 15 Jdevine
#include <SPI.h>
const int slaveAPin = 52;
void setup() {
pinMode (slaveAPin, OUTPUT);
digitalWrite(slaveAPin, LOW);
SPI.begin();
ramp(0x69);
}
void loop()
{
Serial.print("Looper");
stepset(0x60);
Serial.print("up");
stepset(0x70);
Serial.print("down");
}
void ramp(int target)
{
//wait 100ms before ramp up
int currentval=0xFF;
int difference = currentval - target;
for(int i = 0; i < difference; i++)
{
digitalWrite(slaveAPin, LOW);
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
//digitalWrite(slaveAPin, LOW);
delay(200);
SPI.transfer(currentval);
delay(200);
//digitalWrite(slaveAPin, HIGH);
SPI.endTransaction();
digitalWrite(slaveAPin, HIGH);
currentval = currentval -1;
}
}
void stepset(int target)
{
digitalWrite(slaveAPin, LOW);
SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE0));
//digitalWrite(slaveAPin, LOW);
delay(300);
SPI.transfer(target);
delay(300);
//digitalWrite(slaveAPin, HIGH);
SPI.endTransaction();
digitalWrite(slaveAPin, HIGH);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment