Using Arduino
Using Arduino
Salazar
CPE330
Pinz Israe B. Salazar
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int start = 8;
const int htc = 9;
const int rise = 10;
const int drop = 11;
const int sensor = A0;
float recoredtemp[10];
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(2, 0);
lcd.print("Prinz Salazar");
lcd.setCursor(4, 1);
lcd.print("Plate 1");
delay(1000);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);}
void loop() {
static bool variables = false;
static int data = 0;
if (digitalRead(start) == LOW) {
variables = true;
data = 0;
lcd.clear();}
if (variables && data < 10) {
float temp = readTemperature();
recoredtemp[data] = temp;
lcd.setCursor(0, 0);
lcd.print("Temp Recorder");
lcd.setCursor(0, 1);
lcd.print("Rate ");
lcd.print(data+1);
lcd.print(":");
lcd.print(temp);
lcd.print(char(223));
lcd.print("C");
delay(6000);
data++;}
if (data == 10) {
variables = false;}
if (digitalRead(htc) == LOW) {
htcdata();}
if (digitalRead(rise) == LOW) {
hldata();}
if (digitalRead(drop) == LOW) {
lhdata();}}
float readTemperature() {
int tempdata = analogRead(sensor);
float temperatureC = (tempdata / 1024.0) * 500.0;
return temperatureC;}
void htcdata() {
lcd.clear();
float hottest = recoredtemp[0];
float coldest = recoredtemp[0];
for (int p = 1; p < 10; p++) {
if (recoredtemp[p] > hottest) {
hottest = recoredtemp[p];}
if (recoredtemp[p] < coldest) {
coldest = recoredtemp[p];}}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Hottest: ");
lcd.print(hottest);
lcd.print(char(223));
lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("Coldest: ");
lcd.print(coldest);
lcd.print(char(223));
lcd.print("C");
delay(1500);
lcd.clear();}
void hldata() {
for (int p = 0; p < 9; p++) {
for (int s = p + 1; s < 10; s++) {
if (recoredtemp[p] < recoredtemp[p]) {
float temp = recoredtemp[p];
recoredtemp[p] = recoredtemp[s];
recoredtemp[s] = temp;}}}
for (int p = 0; p < 10; p++) {
lcd.setCursor(0, 0);
lcd.print("High = Low");
lcd.setCursor(0, 1);
lcd.print("Rate ");
lcd.print(p + 1);
lcd.print(" : ");
lcd.print(recoredtemp[p]);
lcd.print(char(223));
lcd.print("C");
delay(1500);
lcd.clear();}}
void lhdata() {
for (int p = 0; p < 9; p++) {
for (int s = p + 1; s < 10; s++) {
if (recoredtemp[p] > recoredtemp[s]) {
float temp = recoredtemp[p];
recoredtemp[p] = recoredtemp[s];
recoredtemp[s] = temp;}}}
for (int p = 0; p < 10; p++) {
lcd.setCursor(0, 0);
lcd.print("Low - High");
lcd.setCursor(0, 1);
lcd.print("Rate ");
lcd.print(p + 1);
lcd.print(" : ");
lcd.print(recoredtemp[p]);
lcd.print(char(223));
lcd.print("C");
delay(1500);
lcd.clear();}}