62 lines
1.1 KiB
C++
62 lines
1.1 KiB
C++
//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);
|
|
}
|
|
|