Created
October 3, 2015 14:30
-
-
Save pingud98/b439bf4c13926bec35cf to your computer and use it in GitHub Desktop.
HV PSU Control algo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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