For my project I am collecting diameters on one board and sending them over to another to do temp compensation calculations. On the secondary board I also have a SD module plugged in to then write each individual diameter on a line in a .txt file. This will then be used later down the line to upload into excel. Can someone point me in the right direction to go about this. My current code is:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht.h>
#include <SD.h>
#include <ezButton.h>
#define PIN_SPI_CS 53
File file;
ezButton button (6);
unsigned long lastCount = 0;
unsigned long count = 0;
float dL = 0;
float dT = 0;
float a1 = 0;
float a2 = 0;
float a3 = 0;
float a4 = 0;
float a5 = 0;
float diaAdjusted = 0;
float TF = 0; //Temp of part
float RF = 0; //Room Temp
float diameterin;
int i = 0;
char myData[6] = {0};
int Length[10];
float Diameter[6];
const int ledPin1 = 4; //Material 1
const int ledPin2 = 9; //Material 2
const int ledPin3 = 8; //Material 3
const int ledPin4 = 7; //Material 4
const int ledPin5 = 5; //Material 5
LiquidCrystal_I2C lcd(0x27, 20, 21);
dht DHT;
#define DHT11_PIN 3
void setup() {
Serial.begin(9600);
Serial2.begin(9600);
lcd.init();
lcd.backlight();
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
pinMode(ledPin5, OUTPUT);
button.setDebounceTime(50);
button.setCountMode(COUNT_FALLING);
if (!SD.begin(PIN_SPI_CS)) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
while (1);
}
SD.remove("Diameter.txt");
file = SD.open("Diameter.txt", FILE_WRITE);
}
void loop() {
if (Serial2.available() > 0)
{
byte m = Serial2.readBytesUntil('\n', myData, 6);
myData[m] = '\0';
diameterin = atof(myData);
//Serial.println(diameterin,4);
memset(myData, 0, 6);
}
button.loop();
count = button.getCount();
if (count != lastCount) {
//Serial.println(count);
int countIn6 = count % 6 + 1;
switch (countIn6) {
case 1:
//Serial.println("button 1");
digitalWrite(ledPin1, HIGH);
dT = TF - RF;
dL = diameterin * dT * a1;
diaAdjusted = diameterin - dL;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Material 1");
lcd.setCursor(0, 1);
lcd.print("Dia(in)= ");
lcd.setCursor(9, 1);
lcd.print(diaAdjusted, 4);
break;
case 2:
//Serial.println("button 2");
digitalWrite(ledPin2, HIGH);
dT = TF - RF;
dL = diameterin * dT * a2;
diaAdjusted = diameterin - dL;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Material 2");
lcd.setCursor(0, 1);
lcd.print("Dia(in)= ");
lcd.setCursor(8, 1);
lcd.print(diaAdjusted, 4);
break;
case 3:
//Serial.println("button 3");
digitalWrite(ledPin3, HIGH);
dT = TF - RF;
dL = diameterin * dT * a3;
diaAdjusted = diameterin - dL;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Material 3");
lcd.setCursor(0, 1);
lcd.print("Dia(in)= ");
lcd.setCursor(8, 1);
lcd.print(diaAdjusted, 4);
break;
case 4:
//Serial.println("button 4");
digitalWrite(ledPin4, HIGH);
dT = TF - RF;
dL = diameterin * dT * a4;
diaAdjusted = diameterin - dL;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Material 4");
lcd.setCursor(0, 1);
lcd.print("Dia(in)= ");
lcd.setCursor(8, 1);
lcd.print(diaAdjusted, 4);
break;
case 5:
//Serial.println("button 5");
digitalWrite(ledPin5, HIGH);
dT = TF - RF;
dL = diameterin * dT * a5;
diaAdjusted = diameterin - dL;
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Material 5");
lcd.setCursor(0, 1);
lcd.print("Dia(in)= ");
lcd.setCursor(8, 1);
lcd.print(diaAdjusted, 4);
break;
case 6:
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
}
lastCount = count;
}
for (int i = 0; i < 6; i++); {
if (diameterin > 0) {
Diameter[i] = diameterin;
if(file){
file.write(Diameter[6]);
}
else{
Serial.print(F("SDCard: error on opening file Diameter.txt"));
}
i += 1;
}
else {
i == i;
}
}
file.close();
if (Diameter[1] > 0) {
if (Diameter[2] > 0) {
if (Diameter[3] > 0) {
if (Diameter[4] > 0) {
if (Diameter[5] > 0) {
Serial.println("1st: ");
Serial.println(Diameter[1]);
Serial.println("2nd: ");
Serial.println(Diameter[2]);
Serial.println("3rd: ");
Serial.println(Diameter[3]);
Serial.println("4th: ");
Serial.println(Diameter[4]);
Serial.println("5th: ");
Serial.println(Diameter[5]);
}
}
}
}
}
int chk = DHT.read11(DHT11_PIN);
TF = (DHT.temperature * 1.8) + 32;
lcd.setCursor(0, 2);
lcd.print("T= ");
lcd.setCursor(4, 2);
lcd.print(TF);
//Serial.println(TF);
}