// GEN-IEC changer to Arduino Uno Simulator
//constant intiger // מספר שלם קבוע
#include <Servo.h>
//servo myservo; // create servo object to control a servo
int servoPin = 5;
Servo servo;
int angle = 0; // servo position in degrees
const int trig=2;
const int echo=3;
const int redled=A0;
const int yloled=A1;
const int bluled=A2;
const int orgled=A3;
const int grnled=A4;
const int buzzer=A5;
const int grnpushbuton=13;
const int redpushbuton=4;
//intiger distance 11 bit // משתנה שלם קצר
int distance;
//long duration 32 bit // משתנה שלם מתמשך
long duration;
long durations;
long durationse;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
//I/O MODE // הגדרה חד פעמית למשתני כניסות ויציאות
void setup() {// תחילת תהליך
servo.attach(servoPin);
//put your setup code here, to runonce:
//ultrasonic
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(redled, OUTPUT);
pinMode(yloled, OUTPUT);
pinMode(bluled, OUTPUT);
pinMode(orgled, OUTPUT);
pinMode(grnled, OUTPUT);
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(grnpushbuton, INPUT_PULLUP);
pinMode(redpushbuton, INPUT_PULLUP);
lcd.begin(16, 0);
// you can now interact with the LCD, e.g.:
lcd.print("Genrator inrest!");
digitalWrite(grnled, LOW);
digitalWrite(orgled, HIGH);
digitalWrite(bluled, HIGH);
digitalWrite(redled, HIGH);
digitalWrite(yloled, HIGH);
digitalWrite(buzzer, LOW);
servo.write(0);
}// סיום תהליך
//LOOP MODE // הגדרת תהליך מדידה בלולאה, תחילת תהליך
void loop() {
//clears the trigpin // תהליך איפוס המשדר בשלשה שלבים
// 1. sets the trigpin on LOW state for 2 microseconds:
digitalWrite(trig, LOW);
delayMicroseconds(2);
//2. sets the trigpin on high state for 10 microseconds:
digitalWrite(trig, HIGH);
delayMicroseconds(10);
//3. sets the trigpin on LOW state:
digitalWrite(trig, LOW);
//calculation of distance time // תחילת וסיום מדידת המרחק
duration=pulseIn(echo, HIGH);
pulseIn(echo, LOW);
//calculating the distance // נוסחת חישוב המרחק הסבה לסנטימטרים
distance = duration * 0.034/2;
//prints the distance on the serial monitor // על המסך "distance" הצג את
// distance=digits(echo) // המרחק נמדד בספרות
Serial.print("distance: ");
Serial.println(distance);
//program process // הגדרת תנאי התראות גובה מיכל הנדרש
// רק אם גובה מיכל דלק < 20 ליטר תדלק נורת התראה אדומה וזמזם יתריע
if(distance<20)
{
digitalWrite(redled, LOW);
digitalWrite(yloled, HIGH);
digitalWrite(buzzer, LOW);
servo.write(90);
}
// רק אם גובה מיכל דלק 20 < המרחק < 100 ליטר תדלק נורת התראה צהובה
if(distance>20 && distance<100)
{
digitalWrite(redled,HIGH);
digitalWrite(yloled, LOW);
digitalWrite(buzzer, HIGH);
servo.write(0);
}
//100>אם גובה מיכל דלק
if(distance>100)
{
digitalWrite(yloled, HIGH);
servo.write(0);
}
if(digitalRead(redpushbuton)== LOW)
{
digitalWrite(grnled, HIGH);
digitalWrite(orgled, LOW);
lcd.print("Genrator inwork!");
}
else{
digitalWrite(grnled, LOW);
digitalWrite(orgled, HIGH);
}
if(digitalRead(grnpushbuton)== LOW) //&& digitalRead(redpushbuton)== LOW )
{
digitalWrite(bluled, LOW);
//digitalWrite(orgled,LOW);
}
else{
digitalWrite(bluled, HIGH);
// digitalWrite(orgled, HIGH);
}
/*
if(durations, HIGH)
{
digitalWrite(orgled, LOW);
lcd.print("Genrator inwork!");
}
else{
delay(5000);
digitalWrite(grnled, LOW);
lcd.print("Genrator inrest!");
}
durationse=pulseIn(grnpushbuton, HIGH);
pulseIn(grnpushbuton, LOW);
if(durationse, HIGH && durations, HIGH)
{
digitalWrite(bluled, LOW);
lcd.print("Genrator inwork!");
}
else{
delay(5000);
digitalWrite(grnled, LOW);
lcd.print("Genrator inrest!");
}
*/
// סיום הניסוי
}