#include <SPI.
h>
#include <SdFat.h>
SdFat sd;
SdFile myFile;
#define RESET 8
#define RDY 9
const int sdchipSelect = 4;
byte firstByte;
byte secondByte;
byte thirdByte;
unsigned long Dout = 0;
char charbuff[10];
void setup() {
[Link](9600);
/*---////////// Initialize SD Card ///////////---*/
if () {
[Link]("SD Initialization failed.");
}
else {
[Link]("SD Initialization done.");
}
/*---////////// Set up AD7730 ///////////---*/
[Link]("Initializing AD7730 Shield...");
pinMode(RDY, INPUT);
pinMode(RESET, OUTPUT);
[Link]();
[Link](SPI_MODE3);
[Link](MSBFIRST);
[Link](SPI_CLOCK_DIV16);
// Reset AD7730
digitalWrite(RESET, LOW);
delay(200);
digitalWrite(RESET, HIGH);
delay(200);
// Set next action to Write to Filter Register
digitalWrite(SS, LOW); // AD7730 CS' = SS = Pin 10 - Arduino
[Link](0x03);
digitalWrite(SS, HIGH);
// Write Values to Filter Register
digitalWrite(SS, LOW);
[Link](0x80);
[Link](0x00);
[Link](0x10);
digitalWrite(SS, HIGH);
delay(30);
// Set next action to Write to DAC Register
digitalWrite(SS, LOW);
[Link](0x04);
digitalWrite(SS, HIGH);
// Write Values to DAC Register
digitalWrite(SS, LOW);
[Link](0x00);
digitalWrite(SS, HIGH);
delay(30);
// Set next action to Write to Mode Register
digitalWrite(SS, LOW);
[Link](0x02);
digitalWrite(SS, HIGH);
// Internal Full Calibration
digitalWrite(SS, LOW);
[Link](0xB1);
[Link](0x80);
digitalWrite(SS, HIGH);
while (digitalRead(RDY) != LOW) {
} // Wait until AD7730 is ready.
// Set next action to Write to Mode Register
digitalWrite(SS, LOW);
[Link](0x02);
digitalWrite(SS, HIGH);
// Internal Zero Calibration
digitalWrite(SS, LOW);
[Link](0x91);
[Link](0x80);
digitalWrite(SS, HIGH);
while (digitalRead(RDY) != LOW) {
} // Wait until AD7730 is ready.
// Set next action to Write to Mode Register
digitalWrite(SS, LOW);
[Link](0x02);
digitalWrite(SS, HIGH);
// Write Continuous Mode
digitalWrite(SS, LOW);
[Link](0x31); // 0x21 for bipolar
[Link](0x80);
digitalWrite(SS, HIGH);
while (digitalRead(RDY) != LOW) {
} // Wait until AD7730 is ready.
// Set next action is to read data continuosly from Data Register
digitalWrite(SS, LOW);
[Link](0x21);
digitalWrite(SS, HIGH);
digitalWrite(MOSI, LOW);
[Link]("AD7730 initialization done.");
}
void loop() {
while (digitalRead(RDY) != LOW) {
}
digitalWrite(SS, LOW); // Select AD7730
firstByte = [Link](0);
secondByte = [Link](0);
thirdByte = [Link](0);
digitalWrite(SS, HIGH); // Deselect AD7730
Dout = thirdByte + secondByte * 256L + firstByte * 256L * 256L;
[Link](Dout);
float fDout = Dout;
dtostrf(fDout, 4, 0, charbuff);
if ([Link]("[Link]", O_RDWR | O_CREAT | O_AT_END)) {
[Link]("Writing to [Link]...");
[Link](charbuff);
[Link]();
[Link]("done.");
}
delay(5000);
}
/ Internal Full Calibration
digitalWrite(SS, LOW);
[Link](0xB1);
[Link](0x80);
digitalWrite(SS, HIGH);
while (digitalRead(RDY) != LOW) {
} // Wait until AD7730 is ready