// LCD1602 to Arduino Uno connection example
#include <LiquidCrystal.h>
#define DELAY 500 // Delay between two measurements in ms
#define VIN 5 // V power voltage
#define R 1 //ohm resistance value
const int sensorPin = A0; // Pin connected to sensor
int sensorVal; // Analog value from the sensor
float res; //resistance value
const int LED = 4;
int sensorstate = 0;
int LED1 = 0;
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
byte wind1[] = {
B00000,
B00000,
B00000,
B00011,
B00111,
B00111,
B00111,
B00011
};
byte wind2[] = {
B11111,
B11111,
B01110,
B00000,
B00000,
B00000,
B00000,
B00000
};
byte wind3[] = {
B00000,
B00000,
B00000,
B00000,
B00000,
B01110,
B11111,
B11111
};
byte wind4[] = {
B11000,
B11100,
B11100,
B11100,
B11000,
B00000,
B00000,
B00000,
};
// Second Frame
byte wind5[] = {
B00000,
B00000,
B00000,
B00000,
B01000,
B11100,
B11110,
B01111
};
byte wind6[] = {
B00001,
B00011,
B00111,
B01111,
B00110,
B00000,
B00000,
B00000
};
byte wind7[] = {
B00000,
B00000,
B00000,
B01100,
B11110,
B11100,
B11000,
B10000
};
byte wind8[] = {
B11110,
B01111,
B00111,
B00010,
B00000,
B00000,
B00000,
B00000
};
void setup() {
lcd.begin(16, 2);
// you can now interact with the LCD, e.g.:
pinMode(LED,OUTPUT);
lcd.createChar(1 , wind1); //Numbering should start at 1, not 0
lcd.createChar(2 , wind2);
lcd.createChar(3 , wind3);
lcd.createChar(4 , wind4);
lcd.createChar(5 , wind5);
lcd.createChar(6 , wind6);
lcd.createChar(7 , wind7);
lcd.createChar(8 , wind8);
}
float sensorRawToPhys(int raw){
// Conversion rule
float Vout = float(raw) * (VIN / float(1023));// Conversion analog to voltage
float phys = R *((Vout))/VIN; // Conversion voltage to resistance between GND and signal
float phys2 = R *((VIN - Vout))/VIN; // Conversion voltage to resistance between 5V and signal
return phys;
}
void loop() {
sensorstate = analogRead(sensorPin);
if (sensorstate >= 500)
{
digitalWrite(LED, HIGH);
}
else{
}
if (sensorstate <= 100)
{
digitalWrite(LED, LOW);
}
else{
}
LED1 = digitalRead(4);
if (LED1 == HIGH)
{
lcd.clear();
lcd.setCursor(0,0);
lcd.write(1);
lcd.setCursor(0,1);
lcd.write(2);
lcd.setCursor(1,0);
lcd.write(3);
lcd.setCursor(1,1);
lcd.write(4);
lcd.setCursor(3,0);
lcd.print(analogRead(sensorPin));
lcd.setCursor(3,3);
lcd.print("FAN ON");
delay (200);
lcd.clear();
lcd.setCursor(0,0);
lcd.write(5);
lcd.setCursor(0,1);
lcd.write(6);
lcd.setCursor(1,0);
lcd.write(7);
lcd.setCursor(1,1);
lcd.write(8);
lcd.setCursor(3,0);
lcd.print(analogRead(sensorPin));
lcd.setCursor(3,3);
lcd.print("FAN ON");
delay (200);
}
else
{
lcd.clear();
lcd.setCursor(0,0);
lcd.write(1);
lcd.setCursor(0,1);
lcd.write(2);
lcd.setCursor(1,0);
lcd.write(3);
lcd.setCursor(1,1);
lcd.write(4);
lcd.setCursor(3,0);
lcd.print(analogRead(sensorPin));
lcd.setCursor(3,3);
lcd.print("FAN OFF");
delay (200);
lcd.clear();
lcd.setCursor(0,0);
lcd.write(5);
lcd.setCursor(0,1);
lcd.write(6);
lcd.setCursor(1,0);
lcd.write(7);
lcd.setCursor(1,1);
lcd.write(8);
lcd.setCursor(3,0);
lcd.print(analogRead(sensorPin));
lcd.setCursor(3,3);
lcd.print("FAN OFF");
delay (200);
}
delay(500);
lcd.clear();
}