ha

Dependencies:   mbed C12832 LM75B

Committer:
cian13
Date:
Sun Oct 27 18:53:08 2019 +0000
Revision:
0:aa600b2b5ffa
drhg

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cian13 0:aa600b2b5ffa 1 #include "mbed.h"
cian13 0:aa600b2b5ffa 2 #include <iostream>
cian13 0:aa600b2b5ffa 3 #include "LM75B.h"
cian13 0:aa600b2b5ffa 4 #include <C12832.h>
cian13 0:aa600b2b5ffa 5
cian13 0:aa600b2b5ffa 6
cian13 0:aa600b2b5ffa 7 //TextLCD lcd(p14, p15, p16, p17, p18, p19);
cian13 0:aa600b2b5ffa 8 //lcd screen
cian13 0:aa600b2b5ffa 9 C12832 lcd(p5, p7, p6, p8, p11);
cian13 0:aa600b2b5ffa 10
cian13 0:aa600b2b5ffa 11 //Sensor
cian13 0:aa600b2b5ffa 12 LM75B sensor(p28,p27);
cian13 0:aa600b2b5ffa 13
cian13 0:aa600b2b5ffa 14 //RGB pins
cian13 0:aa600b2b5ffa 15 PwmOut r (p23);
cian13 0:aa600b2b5ffa 16 PwmOut g (p24);
cian13 0:aa600b2b5ffa 17 PwmOut b (p25);
cian13 0:aa600b2b5ffa 18
cian13 0:aa600b2b5ffa 19 //Method for setting the led
cian13 0:aa600b2b5ffa 20 void setLED(float red, float green, float blue){
cian13 0:aa600b2b5ffa 21 r = red;
cian13 0:aa600b2b5ffa 22 g = green;
cian13 0:aa600b2b5ffa 23 b = blue;
cian13 0:aa600b2b5ffa 24 }
cian13 0:aa600b2b5ffa 25
cian13 0:aa600b2b5ffa 26 //Speaker pin
cian13 0:aa600b2b5ffa 27 PwmOut speaker(p26);
cian13 0:aa600b2b5ffa 28
cian13 0:aa600b2b5ffa 29 //Potentiometer pins
cian13 0:aa600b2b5ffa 30 AnalogIn pot1(p19);
cian13 0:aa600b2b5ffa 31 AnalogIn pot2(p20);
cian13 0:aa600b2b5ffa 32
cian13 0:aa600b2b5ffa 33 //Tickers
cian13 0:aa600b2b5ffa 34 Ticker ledSwitch;
cian13 0:aa600b2b5ffa 35 Ticker speakerSwitch;
cian13 0:aa600b2b5ffa 36
cian13 0:aa600b2b5ffa 37 //Ticker methods
cian13 0:aa600b2b5ffa 38 void speakerFlip(){
cian13 0:aa600b2b5ffa 39 speaker != speaker;
cian13 0:aa600b2b5ffa 40 }
cian13 0:aa600b2b5ffa 41
cian13 0:aa600b2b5ffa 42 void ledFlip(){
cian13 0:aa600b2b5ffa 43 setLED(1.0, 1.0, 1.0);
cian13 0:aa600b2b5ffa 44 }
cian13 0:aa600b2b5ffa 45
cian13 0:aa600b2b5ffa 46 //Temp of room
cian13 0:aa600b2b5ffa 47 float currentTemp;
cian13 0:aa600b2b5ffa 48
cian13 0:aa600b2b5ffa 49
cian13 0:aa600b2b5ffa 50 //method to convert the pwmout to Celsius
cian13 0:aa600b2b5ffa 51 float getTemp(float v){
cian13 0:aa600b2b5ffa 52 float temp = (v * 50);
cian13 0:aa600b2b5ffa 53 return temp;
cian13 0:aa600b2b5ffa 54 }
cian13 0:aa600b2b5ffa 55
cian13 0:aa600b2b5ffa 56 //Setting the reading from potentiometer 1 to the threshold
cian13 0:aa600b2b5ffa 57 float threshold1(){
cian13 0:aa600b2b5ffa 58 return getTemp(float(pot1.read()));
cian13 0:aa600b2b5ffa 59 }
cian13 0:aa600b2b5ffa 60
cian13 0:aa600b2b5ffa 61 ///Setting the reading from potentiometer 2 to the threshold
cian13 0:aa600b2b5ffa 62 float threshold2(){
cian13 0:aa600b2b5ffa 63 return getTemp(float(pot2.read()));
cian13 0:aa600b2b5ffa 64 }
cian13 0:aa600b2b5ffa 65
cian13 0:aa600b2b5ffa 66
cian13 0:aa600b2b5ffa 67 //Attempt at the faster beep as it approaches the second threshold
cian13 0:aa600b2b5ffa 68 void beepRate(float current, float trehs2){
cian13 0:aa600b2b5ffa 69 float multiplier;
cian13 0:aa600b2b5ffa 70 }
cian13 0:aa600b2b5ffa 71
cian13 0:aa600b2b5ffa 72 //Flashes orange at the rate specified
cian13 0:aa600b2b5ffa 73 void orangeFlash(){
cian13 0:aa600b2b5ffa 74 for(int i = 0; i < 2; i++){
cian13 0:aa600b2b5ffa 75 setLED(0, .64, 1);
cian13 0:aa600b2b5ffa 76 speaker.period(1.0/5000);
cian13 0:aa600b2b5ffa 77 speaker = 0.5;
cian13 0:aa600b2b5ffa 78 wait(.25);
cian13 0:aa600b2b5ffa 79 setLED(1, 1, 1);
cian13 0:aa600b2b5ffa 80 speaker = 1;
cian13 0:aa600b2b5ffa 81 wait(.25);
cian13 0:aa600b2b5ffa 82 }
cian13 0:aa600b2b5ffa 83 }
cian13 0:aa600b2b5ffa 84
cian13 0:aa600b2b5ffa 85 //Method to display the LCD
cian13 0:aa600b2b5ffa 86 void display(){
cian13 0:aa600b2b5ffa 87 lcd.cls();
cian13 0:aa600b2b5ffa 88 lcd.locate(0, 3);
cian13 0:aa600b2b5ffa 89 currentTemp = sensor.temp();
cian13 0:aa600b2b5ffa 90 lcd.printf("CurrentTemp = %.3f\n" , currentTemp);
cian13 0:aa600b2b5ffa 91 lcd.printf("Threshold 1: %.3f\n", getTemp(float(pot1.read())));
cian13 0:aa600b2b5ffa 92 lcd.printf("Threshold 2: %.3f\n", getTemp(float(pot2.read())));
cian13 0:aa600b2b5ffa 93 }
cian13 0:aa600b2b5ffa 94
cian13 0:aa600b2b5ffa 95 int main() {
cian13 0:aa600b2b5ffa 96 //Ticker attaches
cian13 0:aa600b2b5ffa 97 //ledSwitch.attach(ledFlip, 2);
cian13 0:aa600b2b5ffa 98 //speakerSwitch.attach(speakerFlip, 1);
cian13 0:aa600b2b5ffa 99
cian13 0:aa600b2b5ffa 100 while(1){
cian13 0:aa600b2b5ffa 101 display();
cian13 0:aa600b2b5ffa 102 //Green state if statement
cian13 0:aa600b2b5ffa 103 if(currentTemp < threshold1()){
cian13 0:aa600b2b5ffa 104 setLED(1, 0, 1);
cian13 0:aa600b2b5ffa 105 wait(1);
cian13 0:aa600b2b5ffa 106 }
cian13 0:aa600b2b5ffa 107
cian13 0:aa600b2b5ffa 108 //Orange state if statement
cian13 0:aa600b2b5ffa 109 if(currentTemp > threshold1() && currentTemp < threshold2()){
cian13 0:aa600b2b5ffa 110 display();
cian13 0:aa600b2b5ffa 111 orangeFlash();
cian13 0:aa600b2b5ffa 112 }
cian13 0:aa600b2b5ffa 113
cian13 0:aa600b2b5ffa 114 //Red state if statement
cian13 0:aa600b2b5ffa 115 if(currentTemp > threshold2()){
cian13 0:aa600b2b5ffa 116 display();
cian13 0:aa600b2b5ffa 117 setLED(0, 1, 1);
cian13 0:aa600b2b5ffa 118 speaker.period(1.0/2000);
cian13 0:aa600b2b5ffa 119 speaker = 0.5;
cian13 0:aa600b2b5ffa 120 wait(1);
cian13 0:aa600b2b5ffa 121 setLED(1, 1, 1);
cian13 0:aa600b2b5ffa 122 speaker = 1;
cian13 0:aa600b2b5ffa 123 wait(1);
cian13 0:aa600b2b5ffa 124 }
cian13 0:aa600b2b5ffa 125 }
cian13 0:aa600b2b5ffa 126 }