I have programmed different sensors, is it possible, but I am facing difficulty in that, to help me solve this problem, knowing that I am a chemistry major and do not know the programming language I designed this code according to the sensors I have
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS A1
#define ONE_WIRE_BUS A2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
int flowPin = 12;
int volume=11;
double flowRate; //This is the value we intend to calculate.
volatile int count;
int heat = analogRead(A1);
int temp = analogRead(A2);//This integer needs to be set as volatile to ensure it updates correctly during the interrupt process.
int pin5=5;
int pin3=3;
int pin4=4;
int pin6=6;
int pin7=7;
void setup() {
Serial.begin(9600);
sensors.begin();
pinMode(flowPin, INPUT);
pinMode(volume, INPUT);
pinMode (pin5,OUTPUT);
pinMode (pin3,OUTPUT);
pinMode (pin4,OUTPUT);
pinMode (pin6,OUTPUT);
pinMode (pin7,OUTPUT);
//Sets the pin as an input
attachInterrupt(0, Flow, RISING);
Serial.begin(9600);
}
void Flow()
{
count++;
}
void loop()
{
me:
count = 0;
interrupts();
delay (1000);
noInterrupts();
{int heat = analogRead(A1);
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0); // the index 0 refers to the first device
float tempF = sensors.getTempFByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.print(" \xC2\xB0"); // shows degree symbol
Serial.print("C ");
delay(100);
if (tempC <= 30){
digitalWrite (pin3,HIGH);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
}
if (tempC <= 30){
goto me;
digitalWrite (pin3,HIGH);
delay(5000);
}
else {
delay(5000);
digitalWrite (pin3,LOW);
digitalWrite (pin4,HIGH);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
delay(3000);
}
}
{int flowPin = 12;
flowPin = (count * 2.25); //Take counted pulses in the last second and multiply by 2.25mL
Serial.println(flowPin);
delay (1000);
if (flowPin<=15) {
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,HIGH);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
delay(3000);
}
else
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
Serial.println(flowRate);
delay (1000);
}
{int volume =11;
volume = (count * 2.25); //Take counted pulses in the last second and multiply by 2.25mL
Serial.println(volume);
delay (1000);
if (volume<=45) {
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,HIGH);
digitalWrite (pin7,LOW);
delay(3000); }
else
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
delay (1000);
Serial.println(flowRate);
delay (1000);
}
{int temp = analogRead(A2);
sensors.requestTemperatures();
float tempC = sensors.getTempCByIndex(0); // the index 0 refers to the first device
float tempF = sensors.getTempFByIndex(0);
Serial.print("Temperature: ");
Serial.print(tempC);
Serial.print(" \xC2\xB0"); // shows degree symbol
Serial.print("C ");
delay(100);
if (tempC>=30){
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,HIGH);
delay(1000);
}
else{
digitalWrite (pin3,LOW);
digitalWrite (pin4,LOW);
digitalWrite (pin5,LOW);
digitalWrite (pin6,LOW);
digitalWrite (pin7,LOW);
}
}
}