So I am relatively new to Arduino and not that experienced of a coder. But, I don't understand why my code refuses to work. The different functions work fine when separated, but when the code is put together, nothing works. Not even the serial monitor works.
Here is my code:
#include <dht.h>
dht DHT;
#define DHT11_PIN 6
int enB = 3;
int in3 = 2;
int in4 = 4;
int chk = DHT.read11(DHT11_PIN);
int mode = 0;
int rpm = 100;
int startstop = 0;
#define SegA 11
#define SegB 10
#define SegC 8
#define SegD 9
#define SegE 5
#define SegF 12
#define SegG 13
#define SegDP 7
void setup() {
Serial.begin(9600);
pinMode(5, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(A3, INPUT_PULLUP);
pinMode(A4, INPUT_PULLUP);
pinMode(A5, INPUT_PULLUP);
digitalWrite(in4, HIGH);
digitalWrite(in3, LOW);
Serial.println("Hello");
}
void loop() {
analogWrite(enB, rpm);
ShowNumber(1);
if(mode>9){
mode=0;
}
if (digitalRead(A4)==LOW){
mode=mode+1;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (digitalRead(A3)==LOW){
mode=mode-1;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if(digitalRead(A5) == LOW)
{
if(startstop == 0)
{
startstop = 255;
}
else
{
startstop = 0;
}
}
if(startstop > 0)
{
ShowNumber(10);
AutoMode();
}
}
void ShowNumber(int Number){
if(Number==0){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, LOW);
digitalWrite(SegDP, LOW);
}
if(Number==1){
digitalWrite(SegA, LOW);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
digitalWrite(SegDP, LOW);
}
if(Number==2){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, LOW);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, LOW);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==3){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==4){
digitalWrite(SegA, LOW);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==5){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, LOW);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, LOW);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==6){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, LOW);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==7){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
digitalWrite(SegDP, LOW);
}
if(Number==8){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, HIGH);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==9){
digitalWrite(SegA, HIGH);
digitalWrite(SegB, HIGH);
digitalWrite(SegC, HIGH);
digitalWrite(SegD, HIGH);
digitalWrite(SegE, LOW);
digitalWrite(SegF, HIGH);
digitalWrite(SegG, HIGH);
digitalWrite(SegDP, LOW);
}
if(Number==10){
digitalWrite(SegA, LOW);
digitalWrite(SegB, LOW);
digitalWrite(SegC, LOW);
digitalWrite(SegD, LOW);
digitalWrite(SegE, LOW);
digitalWrite(SegF, LOW);
digitalWrite(SegG, LOW);
digitalWrite(SegDP, HIGH);
}
}
void AutoMode() {
if (DHT.temperature<=18.3){
mode=0;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>18.3 && (DHT.temperature<=23.8)){
mode=1;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>23.8 && (DHT.temperature<=26.7)){
mode=2;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>26.7 && (DHT.temperature<=29.4)){
mode=3;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>29.4 && (DHT.temperature<=30.6)){
mode=4;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>30.6 && (DHT.temperature<=32.2)){
mode=5;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>32.2 && (DHT.temperature<=33.9)){
mode=6;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>33.9 && (DHT.temperature<=35.6)){
mode=7;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>35.6 && (DHT.temperature<=37.2)){
mode=8;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
if (DHT.temperature>37.2){
mode=9;
ShowNumber(mode);
rpm=mode*28.3;
analogWrite(enB, rpm);
}
}
Edit: to make the issue more clear, when the code is put together, the main issue is that the physical parts stop working (as in their inputs aren't read and they don't take in the output information), and the serial monitor stops showing values