Oscar de Jesus Vasquez
/
PowerLink
Control de cargas por medio de optoacopladores con comunicacion BT
main.cpp@0:4196d7ffeb5a, 2016-05-14 (annotated)
- Committer:
- oscarvzfz
- Date:
- Sat May 14 18:03:52 2016 +0000
- Revision:
- 0:4196d7ffeb5a
blabla;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
oscarvzfz | 0:4196d7ffeb5a | 1 | #include "mbed.h" |
oscarvzfz | 0:4196d7ffeb5a | 2 | #include "DHT22.h" |
oscarvzfz | 0:4196d7ffeb5a | 3 | |
oscarvzfz | 0:4196d7ffeb5a | 4 | PwmOut pulso(LED1); |
oscarvzfz | 0:4196d7ffeb5a | 5 | Serial pc(USBTX, USBRX); |
oscarvzfz | 0:4196d7ffeb5a | 6 | Serial blue(p13,p14); // TX = P14 RX = P13 |
oscarvzfz | 0:4196d7ffeb5a | 7 | |
oscarvzfz | 0:4196d7ffeb5a | 8 | DigitalOut sala(p30); |
oscarvzfz | 0:4196d7ffeb5a | 9 | DigitalOut foco(p29); |
oscarvzfz | 0:4196d7ffeb5a | 10 | DigitalOut ventilador(p28); |
oscarvzfz | 0:4196d7ffeb5a | 11 | DigitalOut fuente(p27); |
oscarvzfz | 0:4196d7ffeb5a | 12 | DigitalOut jardin(p26); |
oscarvzfz | 0:4196d7ffeb5a | 13 | Ticker cruce; |
oscarvzfz | 0:4196d7ffeb5a | 14 | Timeout sen; |
oscarvzfz | 0:4196d7ffeb5a | 15 | const float powerlinefrequency=60.000; |
oscarvzfz | 0:4196d7ffeb5a | 16 | volatile float dim; |
oscarvzfz | 0:4196d7ffeb5a | 17 | Timeout SSRtriggerOn; |
oscarvzfz | 0:4196d7ffeb5a | 18 | AnalogIn mq2(p20); |
oscarvzfz | 0:4196d7ffeb5a | 19 | float value = 0; |
oscarvzfz | 0:4196d7ffeb5a | 20 | float cal=0; |
oscarvzfz | 0:4196d7ffeb5a | 21 | float calt=0; |
oscarvzfz | 0:4196d7ffeb5a | 22 | float Rgas,Raire; |
oscarvzfz | 0:4196d7ffeb5a | 23 | |
oscarvzfz | 0:4196d7ffeb5a | 24 | |
oscarvzfz | 0:4196d7ffeb5a | 25 | char n; |
oscarvzfz | 0:4196d7ffeb5a | 26 | float m=180; |
oscarvzfz | 0:4196d7ffeb5a | 27 | |
oscarvzfz | 0:4196d7ffeb5a | 28 | float temp,hum;m |
oscarvzfz | 0:4196d7ffeb5a | 29 | |
oscarvzfz | 0:4196d7ffeb5a | 30 | DHT22 dht22(p15) ; |
oscarvzfz | 0:4196d7ffeb5a | 31 | |
oscarvzfz | 0:4196d7ffeb5a | 32 | void triggerOn() |
oscarvzfz | 0:4196d7ffeb5a | 33 | { |
oscarvzfz | 0:4196d7ffeb5a | 34 | foco = 1; |
oscarvzfz | 0:4196d7ffeb5a | 35 | } |
oscarvzfz | 0:4196d7ffeb5a | 36 | |
oscarvzfz | 0:4196d7ffeb5a | 37 | void dimmer() |
oscarvzfz | 0:4196d7ffeb5a | 38 | { |
oscarvzfz | 0:4196d7ffeb5a | 39 | // turn off SSR at zero crossing |
oscarvzfz | 0:4196d7ffeb5a | 40 | foco = 0; |
oscarvzfz | 0:4196d7ffeb5a | 41 | // compute time delay using dim value and set timer interrupt |
oscarvzfz | 0:4196d7ffeb5a | 42 | // triggers SSR after a small post zero crossing time delay |
oscarvzfz | 0:4196d7ffeb5a | 43 | SSRtriggerOn.attach(&triggerOn,(dim)/(2*powerlinefrequency)); |
oscarvzfz | 0:4196d7ffeb5a | 44 | } |
oscarvzfz | 0:4196d7ffeb5a | 45 | void sensado() |
oscarvzfz | 0:4196d7ffeb5a | 46 | { dht22.sample() ; |
oscarvzfz | 0:4196d7ffeb5a | 47 | temp=dht22.getTemperature(); |
oscarvzfz | 0:4196d7ffeb5a | 48 | hum=dht22.getHumidity(); |
oscarvzfz | 0:4196d7ffeb5a | 49 | Rgas=mq2/(3.3-mq2); |
oscarvzfz | 0:4196d7ffeb5a | 50 | blue.printf("%2.2f,%2.2f,%2.2f",temp/10,hum/10,(Rgas/Raire)*100); |
oscarvzfz | 0:4196d7ffeb5a | 51 | |
oscarvzfz | 0:4196d7ffeb5a | 52 | |
oscarvzfz | 0:4196d7ffeb5a | 53 | } |
oscarvzfz | 0:4196d7ffeb5a | 54 | |
oscarvzfz | 0:4196d7ffeb5a | 55 | int main() |
oscarvzfz | 0:4196d7ffeb5a | 56 | { |
oscarvzfz | 0:4196d7ffeb5a | 57 | for(int x = 0 ; x < 20 ; x++) |
oscarvzfz | 0:4196d7ffeb5a | 58 | { |
oscarvzfz | 0:4196d7ffeb5a | 59 | cal = cal + mq2 ; |
oscarvzfz | 0:4196d7ffeb5a | 60 | wait(.1); |
oscarvzfz | 0:4196d7ffeb5a | 61 | |
oscarvzfz | 0:4196d7ffeb5a | 62 | } |
oscarvzfz | 0:4196d7ffeb5a | 63 | calt=(cal/20)*3.3; |
oscarvzfz | 0:4196d7ffeb5a | 64 | Raire=calt/(3.3-calt); |
oscarvzfz | 0:4196d7ffeb5a | 65 | |
oscarvzfz | 0:4196d7ffeb5a | 66 | cruce.attach(&dimmer, 0.00833333); |
oscarvzfz | 0:4196d7ffeb5a | 67 | sen.attach(&sensado, 1); |
oscarvzfz | 0:4196d7ffeb5a | 68 | |
oscarvzfz | 0:4196d7ffeb5a | 69 | blue.baud(9600); |
oscarvzfz | 0:4196d7ffeb5a | 70 | pc.baud(9600); |
oscarvzfz | 0:4196d7ffeb5a | 71 | pc.printf("Bluetooth Start\r\n"); |
oscarvzfz | 0:4196d7ffeb5a | 72 | |
oscarvzfz | 0:4196d7ffeb5a | 73 | // echo back characters and toggle the LED |
oscarvzfz | 0:4196d7ffeb5a | 74 | while (1) |
oscarvzfz | 0:4196d7ffeb5a | 75 | { |
oscarvzfz | 0:4196d7ffeb5a | 76 | if (blue.readable()) |
oscarvzfz | 0:4196d7ffeb5a | 77 | { |
oscarvzfz | 0:4196d7ffeb5a | 78 | n=blue.getc(); |
oscarvzfz | 0:4196d7ffeb5a | 79 | pc.putc(n); |
oscarvzfz | 0:4196d7ffeb5a | 80 | if(n=='H'){if(m<180)m=m+5;} |
oscarvzfz | 0:4196d7ffeb5a | 81 | if(n=='h'){if(m<180)m=m-5;} |
oscarvzfz | 0:4196d7ffeb5a | 82 | |
oscarvzfz | 0:4196d7ffeb5a | 83 | if(n=='J'){jardin=1;} |
oscarvzfz | 0:4196d7ffeb5a | 84 | if(n=='j'){jardin=0;} |
oscarvzfz | 0:4196d7ffeb5a | 85 | if(n=='C'){ventilador=1;} |
oscarvzfz | 0:4196d7ffeb5a | 86 | if(n=='c'){ventilador=0;} |
oscarvzfz | 0:4196d7ffeb5a | 87 | if(n=='F'){fuente=1;} |
oscarvzfz | 0:4196d7ffeb5a | 88 | if(n=='f'){fuente=0;} |
oscarvzfz | 0:4196d7ffeb5a | 89 | if(n=='S'){sala=1;} |
oscarvzfz | 0:4196d7ffeb5a | 90 | if(n=='s'){sala=0;} |
oscarvzfz | 0:4196d7ffeb5a | 91 | |
oscarvzfz | 0:4196d7ffeb5a | 92 | dim=m/180+0.001; |
oscarvzfz | 0:4196d7ffeb5a | 93 | |
oscarvzfz | 0:4196d7ffeb5a | 94 | } |
oscarvzfz | 0:4196d7ffeb5a | 95 | |
oscarvzfz | 0:4196d7ffeb5a | 96 | |
oscarvzfz | 0:4196d7ffeb5a | 97 | |
oscarvzfz | 0:4196d7ffeb5a | 98 | } |
oscarvzfz | 0:4196d7ffeb5a | 99 | } |