/*
Adafruit Arduino - Lesson 4. 8 LEDs and a Shift Register
*/
int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
float soc = 74;
int temp= 51;
byte leds = 0;
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
/*
leds = 0;
updateShiftRegister();
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister();
delay(500);
}
*/
SOC();
BUZZ();
}
/*
int pattern = 0b10111111;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(500);
pattern = ~pattern; // Invert the pattern
*/
void SOC()
{
if (soc >0 && soc <=25)
{
int pattern = 0b10000000;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
Serial.print("S0C1 ");
delay(500);
}
if (soc >25 && soc <=50)
{
int pattern = 0b11000000;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
Serial.print("S0C2 ");
delay(500);
//pattern = ~pattern; // Invert the pattern
}
if (soc >50 && soc <=75)
{
int pattern = 0b11100000;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
Serial.print("S0C3 ");
delay(500);
}
if (soc >75 && soc <=100)
{
int pattern = 0b11110000;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
Serial.print("S0C4 ");
delay(500);
}
}
void BUZZ()
{
if (temp>50 )
{
for(int i=4; i<5;i++)
{
int pattern = 0b00001000;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
Serial.println("buzzer on");
//delay(500);
}
}
else
{
for(int i=4; i<5;i++)
{
Serial.println("buzzer off");
//delay(500);
}
}
}
/*
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
digitalWrite(latchPin, HIGH);
}
*/