Heya,
At the moment I'm working with a test boards called SEN208\2.
I have to control 24 NX3DV2567 devices ( SOT1161-1 ) individually. I've already tried to learn the I2C code by watching and reading tutorials but i cant seem to figure it out myself. Somehow everything I think I understand doesn't seem to make sense within the coding.
I would be reall glad if once again someone would like to help me out ![]()
This is the code in it's current state:
#include <SD.h> //Insert SD Library
#include <SPI.h> // Insert SPI communication library
#include <Wire.h>
const int PCA8574PW1 = 0x38;
const int PCA8574PW2 = 0x39;
const int PCA8574PW3 = 0x3A;
float refresh_rate = 0.0; //Set refreshrate, dit is de delay functie. Dit geeft aan hoe snel de data word ontvangen en geschreven.
long id = 1;// Oplopend getal voor alle data.
void setup() {
Â
 Wire.begin();
 Serial.begin(9600);// Begin het programma op 9600baud, dit is nodig voor de COM om text in weer te geven
 Serial.println("Initializing Card");
 pinMode(4, OUTPUT);// Locatie op arduino voor SD pin
 if(!SD.begin(4))
 {
  Serial.println("Card Failed!");
  return;//Indien de SD kaart niet gevonden is geeft aan :Card Failed
 }
 else
 Serial.println("Card Ready.");
 delay(5000);
Â
 File commandFile = SD.open("COMMAND.txt");// Het lezen van de SD card. (Refreshrate)
 if (commandFile)
 {
  Serial.println("Reading Command File");
  float decade = pow(10, (commandFile.available() - 1));
  while(commandFile.available())//programma gaat opzoek naar de Cammond file op de SD kaart
  {
   float temp = (commandFile.read() - '0');
   refresh_rate = temp*decade+refresh_rate;
   decade = decade/10;//Refreshrate van command file omgezet naar hexadecimale getallen
  }
  Serial.print("Refresh Rate = ");
  Serial.print(refresh_rate);
  Serial.println("ms");//refreshrate aangegeven op de COM
 }
 else
 {
  Serial.println("Couldn't read command file.");
  return;
 }
Â
 File logFile = SD.open("CRASH.csv", FILE_WRITE);
 if (logFile)
 {
  logFile.println(", ,");
  String header = "ID, Voltage, Current, Display V, Display A";
  logFile.println(header);
  logFile.close();
  Serial.println(header);// Display op COM van data
 }
 else
 {
  Serial.println("Couldn't open log file");
 }Â
 delay(10000);
}
void loop() {
int val = analogRead(A10);
int valC = analogRead(A11);// analoge ingangen (zelf aangeven) waar de voltages binnen komen.
 Wire.beginTransmission(PCA8574PW1);
Â
 if (PCA8574PW1 == 0)
 {Serial.println ("No connection!");
 delay(refresh_rate);
 return;
Â
 }
Â
 else
  {
   Wire.write(byte highAddress);
   Wire.write(byte lowAddress);
   float Voltage = val*(5.0/1023.0);
   float Current = valC*(5.0/1023.0);
   float Display = ((val*(5.0/1023.0))*3);
   float DisplayC = ((valC*(5.0/1023.0))*2);
   String dataString = String(id) + ", " + String(Voltage) + ", " + String(Current) + ", " +String(Display) + ", " +String(DisplayC);//Display voor COM en Excel.
  }
 Wire.endTransmission(PCA8574PW1);
 delay(refresh_rate);
 Wire.beginTransmission(PCA8574PW2);
Â
 if (PCA8574PW2 ==0)
 {Serial.println("Lost connection.");
 delay(refresh_rate);
 return;}
Â
 else
  {
   Wire.write(byte highAddress);
   Wire.write(byte lowAddress);
   float Voltage = val*(5.0/1023.0);
   float Current = valC*(5.0/1023.0);
   float Display = ((val*(5.0/1023.0))*3);
   float DisplayC = ((valC*(5.0/1023.0))*2);
   String dataString = String(id) + ", " + String(Voltage) + ", " + String(Current) + ", " +String(Display) + ", " +String(DisplayC);//Display voor COM en Excel.
  }
 Wire.endTransmission(PCA8574PW2);
 delay(refresh_rate);
 Wire.beginTransmission(PCA8574PW3);
Â
 if (PCA8574PW3 == 0)
 {
 Serial.println("Connection Lost.");
 delay(refresh_rate);
 return;
 }
 else
  {
   Wire.write(byte highAddress);
   Wire.write(byte lowAddress);
   float Voltage = val*(5.0/1023.0);
   float Current = valC*(5.0/1023.0);
   float Display = ((val*(5.0/1023.0))*3);
   float DisplayC = ((valC*(5.0/1023.0))*2);
   String dataString = String(id) + ", " + String(Voltage) + ", " + String(Current) + ", " +String(Display) + ", " +String(DisplayC);//Display voor COM en Excel.
   {
    File dataFile = SD.open("CRASH.csv", FILE_WRITE);
    if(dataFile)
 {
  dataFile.print(dataString);
  dataFile.close();
  Serial.println(dataString);
 }
 else
 {
  Serial.println("Couldn't create datalog");
   }
  }
  }
Â
Wire.endTransmission(PCA8574PW3);
 id++; // code voor het feit dat iedere opgenome waarde i.p.v. 1-1-1-1-1-1-1 is 1-2-3-4-5 word.
 delay (2000);
}
The description is in dutch for some of my collealues. If necessary i can change that to english.
On forehand thanks!