hi .someone can help with this mes. i am beginner and i have got some problems with this code and i cannot find what is wrong, pin 4 and pin 8, they doz not switching off wen temp1 rich 25 and flame is low.
#include <Fsm.h>
#define servo_pin 12
#define PWM_pin 2
#define pad_pin 3
#define doz_pin 4
#define siur1_pin 5
#define siur2_pin 6
#define pam_pin 7
#define uzd_pin 8
float temp1;
#define temp1_pin A0
float temp2;
#define temp2_pin A1
float temp3;
#define temp3_pin A2
int led_pin = 13 ;
int flame_sensor_pin = 10;
int flame_pin = HIGH ;
void on_doz_on_enter() {
Serial.println("dozavimas ijugtas");
digitalWrite(doz_pin, HIGH);
}
void on_doz_off_enter() {
Serial.println("dozavimas isjungtas");
digitalWrite(doz_pin, LOW);
}
void on_uzd_on_enter() {
Serial.println("uzdegimas ijungtas");
digitalWrite(uzd_pin, HIGH);
}
void on_uzd_off_enter() {
Serial.println("uzdegimas isjungtas");
digitalWrite(uzd_pin, LOW);
}
State state_doz_on(&on_doz_on_enter, NULL);
State state_doz_off(&on_doz_off_enter, NULL);
State state_uzd_on(&on_uzd_on_enter, NULL);
State state_uzd_off(&on_uzd_off_enter, NULL);
Fsm fsm_doz(&state_doz_off);
Fsm fsm_uzd(&state_uzd_off);
Fsm fsm1_doz(&state_doz_off);
Fsm fsm1_uzd(&state_uzd_off);
Fsm fsm2_doz(&state_doz_off);
void setup() {
Serial.begin(9600);
pinMode(doz_pin, OUTPUT);
pinMode(uzd_pin, OUTPUT);
pinMode(PWM_pin, OUTPUT);
pinMode(pad_pin, OUTPUT);
pinMode(pam_pin, OUTPUT);
pinMode(siur1_pin, OUTPUT);
pinMode(siur2_pin, OUTPUT);
pinMode(temp1_pin,INPUT);
pinMode(temp2_pin,INPUT);
pinMode(temp3_pin,INPUT);
pinMode(flame_pin,INPUT);
pinMode(led_pin,OUTPUT );
fsm_doz.add_timed_transition(&state_doz_off, &state_doz_on, 5000, NULL);
fsm_doz.add_timed_transition(&state_doz_on, &state_doz_off, 10000, NULL);
fsm_uzd.add_timed_transition(&state_uzd_off, &state_uzd_on, 10000, NULL);
fsm_uzd.add_timed_transition(&state_uzd_on, &state_uzd_off,7000, NULL);
fsm1_doz.add_timed_transition(&state_doz_off, &state_doz_on, 3000, NULL);
fsm1_doz.add_timed_transition(&state_doz_on, &state_doz_off, 7000, NULL);
fsm1_uzd.add_timed_transition(&state_uzd_off, &state_uzd_on,0,NULL);
}
void loop() {
flame_pin = digitalRead ( flame_sensor_pin ) ;
if (flame_pin == HIGH)
{
Serial.println("nera liepsnos");
digitalWrite(led_pin,LOW);
}
else {
digitalWrite(led_pin,HIGH);
Serial.println("LIEPSNA");
}
{
delay (100);
}
temp1 = analogRead (temp1_pin);
temp1 = temp1 * 0.3725;
Serial.println("KATILO TEMPRATURA = ");
Serial.print(temp1);
Serial.println("*C");
temp2 = analogRead(temp2_pin);
temp2 = temp2 * 0.3725;
Serial.println("RADIATORIU TEMPRATURA ");
Serial.print(temp2);
Serial.println("*C");
temp3 = analogRead (temp3_pin);
temp3 = temp3 * 0.3725;
Serial.println("BOILERIO TEMPRATURA ");
Serial.print(temp3);
Serial.println("*C");
if(temp1<=20 && flame_pin,HIGH)
{
fsm_doz.check_timer();
fsm_uzd.check_timer();
}
else if(temp1<=20&& flame_pin,LOW)
{
fsm1_doz.check_timer();
fsm1_uzd.check_timer();
}
if (temp1 < 22)
{
digitalWrite (PWM_pin,150);
Serial.println ("ventiliatorius ijungtas");
digitalWrite (pad_pin,HIGH);
Serial.println ("padavimas ijungtas");
}
else if (temp1 > 22)
{
digitalWrite (PWM_pin,0);
Serial.println ("ventiliatorius isjungtas");
digitalWrite (pad_pin,LOW);
Serial.println ("padavimas isjungtas");
digitalWrite (doz_pin,LOW);
digitalWrite (uzd_pin,LOW);
// on_doz_off_enter();
// on_uzd_off_enter();
}
if (temp1> 20)
{
digitalWrite(siur1_pin,HIGH);
Serial.println("radiatoriu siurblys ijungtas");
}
else
{
digitalWrite (siur1_pin,LOW);
Serial.println("radiatoriu siurblys isjungtas");
}
if (temp3 >20&& temp1>20)
{
digitalWrite(siur2_pin,LOW);
Serial.println("boilerio siurblys isjungtas");
}
else if (temp3 <20&& temp1>20)
{
digitalWrite(siur2_pin,HIGH);
Serial.println("boilerio siurblys ijungtas");
}
if (temp2<=20)
{
digitalWrite (pam_pin,HIGH);
Serial.println ("pamaisymas mazeja");
}
else
{
digitalWrite (pam_pin,LOW);
Serial.println ("pamaisymas dideja");
}
{
delay(1000);
}}