Hello guys,
during quarantine me and my landlord decided to automate his DIY campervan, meaning I'd deal with all the arduino end of things...
we need 4 light switches and a global switch, water temperature control and level meter, and batteries voltages. I'm using the "Bluetooth Electronics" app so I dont have to develop my own, and I have tested all individual component of the final build by its self and in little groups and everything works... the problem arises when I have all together (or all I have done so far together), the temperature meter stops working; it outputs allways the same two values "-271.3" and some times "-91". It is the exact same code that works stand alone but for some reason, when i add the switches it just breaks. Here is the code
#include "HX711.h"
HX711 scale;
#define main 2
#define ledTwo 3
#define ledThree 4
#define ledFour 5
#define ledFive 6
#define global 7
#define tempCon 8
#define sck A0
#define lvlOut A1
#define tempSens A2
#define leisureBatt A3
#define carBatt A4
int update_interval=100; // time interval in ms for updating panel indicators
unsigned long last_time=0; // time of last update
char data_in; // data received from serial link
int slider_value; // Received Slider Values
String text; // String for text elements
int red,green,blue,greenTwo; // RGB color
int bubbles; // Bubble Gauge Value
int mapped, T;
const unsigned long eventTime_1_press = 5000;
const unsigned long eventTime_2_temp = 5000;
unsigned long previousTime_1;
unsigned long previousTime_2;
int Vo;
float R1 = 9800;
float logR2, R2;
float A = 1.009249522e-03, B = 2.378405444e-04, C = 2.019202697e-07;
void setup() {
pinMode(main, OUTPUT);
pinMode(ledTwo, OUTPUT);
pinMode(ledThree, OUTPUT);
pinMode(ledFour, OUTPUT);
pinMode(ledFive, OUTPUT);
pinMode(global, OUTPUT);
pinMode(tempCon, OUTPUT);
pinMode(tempSens, OUTPUT);
pinMode(carBatt, OUTPUT);
pinMode(leisureBatt, OUTPUT);
Serial.begin(9600);
/*pannel builder code*/
Serial.println("*.kwl");
Serial.println("clear_panel()");
Serial.println("set_grid_size(16,9)");
Serial.println("add_text(1,2,large,R,LED 2,245,240,245,)");
Serial.println("add_text(1,0,large,R,Main,245,240,245,)");
Serial.println("add_text(1,6,large,R,LED 4,245,240,245,)");
Serial.println("add_text(1,4,large,R,LED 3,245,240,245,)");
Serial.println("add_text(6,7,large,L,Car batt.,245,240,245,)");
Serial.println("add_text(11,7,large,L,Leisure batt.,245,240,245,)");
Serial.println("add_text_box(10,0,2,L,Text,245,240,245,S)");
Serial.println("add_text_box(13,0,2,L,Text,245,240,245,P)");
Serial.println("add_text_box(7,0,2,L,Text,245,240,245,T)");
Serial.println("add_text_box(7,8,3,L,Text,245,240,245,V)");
Serial.println("add_text_box(12,8,3,L,Text,245,240,245,U)");
Serial.println("add_text(14,5,large,L,Press.,245,240,245,)");
Serial.println("add_text(8,5,large,L,Temp,245,240,245,)");
Serial.println("add_text(1,8,large,R,Global ,245,240,245,)");
Serial.println("add_switch(2,0,1,M,m,0,0)");
Serial.println("add_switch(2,2,1,L,l,0,0)");
Serial.println("add_switch(2,4,1,N,n,0,0)");
Serial.println("add_switch(2,6,1,O,o,0,0)");
Serial.println("add_switch(2,8,1,G,g,0,0)");
Serial.println("add_switch(10,5,1,Y,y,0,0)");
Serial.println("add_slider(10,1,3,50,100,100,R,r,0)");
Serial.println("add_led(4,0,1,A,0,0,0)");
Serial.println("add_led(4,2,1,B,0,0,0)");
Serial.println("add_led(4,4,1,C,0,0,0)");
Serial.println("add_led(4,6,1,D,0,0,0)");
Serial.println("add_led(11,3,1,J,0,0,0)");
Serial.println("add_led(4,8,1,W,255,0,0)");
Serial.println("add_gauge(7,1,3,0,100,0,F,,,10,5)");
Serial.println("add_gauge(13,1,3,0,100,0,H,,,10,5)");
Serial.println("set_panel_notes(,,,)");
Serial.println("run()");
Serial.println("*");
/*Pressure sensor calibration*/
scale.begin(A1, A0);
Serial.println(scale.read());
Serial.println(scale.read_average(20));
Serial.println(scale.get_value(5));
Serial.println(scale.get_units(5), 1);
scale.set_scale(2280.f);
scale.tare();
Serial.println(scale.read());
Serial.println(scale.read_average(20));
Serial.println(scale.get_value(5));
Serial.println(scale.get_units(5), 1);
}
void loop() {
unsigned long currentTime = millis();
/*pressure sensor code*/
if(currentTime - previousTime_1 >= eventTime_1_press ){
float percent = scale.get_units(10);
mapped = map(percent, 89, 421, 0, 100);
scale.power_down();
scale.power_up();
text=mapped;
Serial.print("*H"+text+"*");
Serial.print("\t");
bubbles=mapped;
Serial.println("*P"+String(bubbles)+"*");
previousTime_1 = currentTime;
}
/*temperature sensor code*/
if(currentTime - previousTime_2 >= eventTime_2_temp ){
Vo = analogRead(tempSens);
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (A + B*logR2 + C*logR2*logR2*logR2));
T = T - 273.15;
text=T;
Serial.print("*T"+text+"*");
bubbles=T;
Serial.print("\t");
Serial.println("*F"+String(bubbles)+"*");
previousTime_2 = currentTime;
}
/*switches code*/
if (Serial.available()){
data_in=Serial.read(); //Get next character
if(data_in=='G'){
digitalWrite(global, HIGH);
red=255; green=0; blue=0;
Serial.println("*WR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='g'){
digitalWrite(global, LOW);
red=0; green=0; blue=0;
Serial.println("*WR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in==('M')){
digitalWrite(main, HIGH);
red=255; green=255; blue=255;
Serial.println("*AR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='m'){
digitalWrite(main, LOW);
red=0; green=0; blue=0;
Serial.println("*AR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in==('L')){
digitalWrite(ledTwo, HIGH);
red=255; green=255; blue=255;
Serial.println("*BR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='l'){
digitalWrite(ledTwo, LOW);
red=0; green=0; blue=0;
Serial.println("*BR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in==('N')){
digitalWrite(ledThree, HIGH);
red=255; green=255; blue=255;
Serial.println("*CR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='n'){
digitalWrite(ledThree, LOW);
red=0; green=0; blue=0;
Serial.println("*CR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in==('O')){
digitalWrite(ledFour, HIGH);
red=255; green=255; blue=255;
Serial.println("*DR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='o'){
digitalWrite(ledFour, LOW);
red=0; green=0; blue=0;
Serial.println("*DR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in==('Y')){
digitalWrite(main, HIGH);
red=255; green=255; blue=255;
Serial.println("*JR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='y'){
digitalWrite(main, LOW);
red=0; green=0; blue=0;
Serial.println("*JR"+String(red)+"G"+String(green)+"B"+String(blue)+"*");
}
if(data_in=='R'){
slider_value=Serial.parseInt();
text=slider_value;
Serial.println("*S"+text+" 'C"+"*");
}
if(data_in=='Y' && T<slider_value){
pinMode(tempCon, HIGH);
}
if(data_in=='y'){
pinMode(tempCon, LOW);
}
}
///////////// Send Data to Android device
/*
if ((currentTime-last_time)>update_interval){
last_time=currentTime;
text="abc";
Serial.print("*V"+text+"*");
text="abc";
Serial.print("*U"+text+"*");
}
*/
}
What am i doing wrong?
