Hi I am very new to Arduino and I am having trouble with some if statements I made. I keep getting the error "request for member 'read' in 'file', which is of non-class type 'int'", for each of my if statements. The goal was to make the if statements run when a character in the added text file, was either A, G, T, C, or U. I made five individual "if" statements to make different parameters for each letter, and it was meant to run on the text letter sequences that was on the inserted text file; called "oligo.txt". Here is the complete code:
This is the problem statement:
If you have any suggestions to fix this error, it would be very much appreciated!
Code:
#include <Arduino.h>
#include <stdint.h>
#include <SD.h>
#include <SPI.h>
int dataPin = 2; // DIOA
int blPin = 3; // BL
int polPin = 4; // POL
int dirPin = 6; // DIR
int clockPin = 5; // CLK
int latchPin = 7; // LE
int solenoidPin1 = 1; //connected to Digital 1
int solenoidPin2 = 2; //connected to Digital 2
int solenoidPin3 = 3;
int solenoidPin4 = 4;
int solenoidPin5 = 5;
int solenoidPin6 = 6;
int solenoidPin7 = 7;
int solenoidPin8 = 8;
int robotmotor = 9;
uint64_t one = 1;
uint64_t data;
int d = 2000;
void writeData(uint64_t data) {
char* arr = (char*) &data;
digitalWrite(latchPin, LOW);
for (int i=0; i < 8; ++i) {
char c = arr[i];
shiftOut(dataPin, clockPin, LSBFIRST, c);
}
digitalWrite(latchPin, HIGH);
}
File dataFile;
void open_me(){
dataFile = SD.open("oligo.txt");
if (dataFile) {
while (dataFile.available()) {
Serial.write(dataFile.read());
}
dataFile.close();
open_me();
}
}
int file = "oligo.txt";
char myChar1 = 'A';
char myChar2 = 'G';
char myChar3 = 'C';
char myChar4 = 'T';
char myChar5 = 'U';
void setup() {
pinMode(13, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(blPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(polPin, OUTPUT);
pinMode(solenoidPin1, OUTPUT); //Sets the pin as an output
pinMode(2, OUTPUT); //Sets the pin as an output
pinMode(3, OUTPUT); //Sets the pin as an output
pinMode(4, OUTPUT); //Sets the pin as an output
pinMode(5, OUTPUT); //Sets the pin as an output
pinMode(6, OUTPUT); //Sets the pin as an output
pinMode(7, OUTPUT); //Sets the pin as an output
pinMode(8, OUTPUT); //Sets the pin as an output
Serial.begin(9600);
digitalWrite(blPin, LOW);
digitalWrite(polPin, LOW); // INVERTING ALL OUTPUT
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, LOW);
digitalWrite(latchPin, HIGH);
digitalWrite(dirPin, LOW);
delay(1000);
digitalWrite(blPin, HIGH);
if (file.read = myChar2);{
digitalWrite(1, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(1, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else digitalWrite(1, LOW);
if (file.read = myChar2);{
digitalWrite(2, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(2, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else digitalWrite(2, LOW);
if (file.read = myChar3);{
digitalWrite(3, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(3, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else digitalWrite(3, LOW);
if (file.read = myChar4);{
digitalWrite(4, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(4, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else digitalWrite(4, LOW);
if (file.read = myChar5);{
digitalWrite(5, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(5, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(6, HIGH);
delay(1000);
digitalWrite(6, LOW);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(7, LOW);
}
else digitalWrite(5, LOW);
}
if (File.available())
digitalWrite(9, LOW);
}
else digitalWrite(9, HIGH); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(9, LOW); //Switch Solenoid ON
delay(1000); //Wait 1 Second
digitalWrite(8, HIGH);
delay(1000);
digitalWrite(8, LOW);
int delayTime = 250;
void loop() {
writeData(one<<43);
delay(delayTime);
writeData(one<<42);
delay(delayTime);
writeData(one<<41);
delay(delayTime);
writeData(one<<40);
delay(delayTime);
writeData(one<<41);
delay(delayTime);
writeData(one<<42);
delay(delayTime);
}
This is the problem statement:
Code:
if (file.read = myChar5);{