AAU CANSAT KIT - Code

Shield test kode

Kan hentes shield2test.pde

Koden måler på 6 analoge indgang og printer dem på udgang sammen med tidskode. Sampletid er sat til 2 Hz men kan ændres.

NB: En spidsfindighed er at en samplingsomgang dvs 500 millisekunder har varigehd i sig selv idet det tager ca 1 millisekund pr karakter at printe. Dette kompenseres der for.

koden: shield2test.pde

/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
// AAU cansat shield v2 testprpogram
// Jens Dalsgaard Nielsen
// AAU - Satlab  jdn@es.aau.dk
// no guarantee


#define SAMPLETIME 500 // msec

unsigned long newTime,oldTime,looptime; // for accurate loop time
unsigned int slp;

void setup()
{
  Serial.begin(9600);
  newTime = oldTime = millis(); // time in milli sec since start
}

// Maaler spaending på analog indgang nr "portnr"
// 10 bit maalevaerdi (0-1023) regnes om til Volt (0-5V)
// NBNB De 5V der bruegs som reference kan findes på connector. 
// Maal venligst efter for at se om der er 5V. Hvis der fesk kun er 4.85V svarer
// 1023 til 4.85 så %-tal nedenfor skal retets til 4.85

float analogVoltage(int portnr)
{
  float f;
  f = analogRead(portnr);
  return 5.0 * f/1023;  // 10 bit to 0-5V
}

float a0,a1,a2,a3,a4,a5;

void loop()
{
  newTime = millis();
 
  // beregn tid siden du var her sidst
  // komenser i delay
  looptime = (newTime-oldTime);
  // traek det fra i den tid vi skal vente
  slp = SAMPLETIME - looptime;
  delay(slp);
  
  //registrer tid for start i naeste loekke
  oldTime = millis();
  
  Serial.print(oldTime);

// print data hjem med komma imellem

  Serial.print(" , ");
  Serial.print(  analogVoltage(0));
  Serial.print(" , ");
  Serial.print(  analogVoltage(1));
  Serial.print(" , ");
  Serial.print(  analogVoltage(2));
  Serial.print(" , ");
  Serial.print(  analogVoltage(3));
  Serial.print(" , ");
  Serial.print(  analogVoltage(4));
  Serial.print(" , ");
  Serial.println(  analogVoltage(5));
}