Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Lilnija_29012017 NucleoF042K6_IRReceiver
Diff: examples/LGACSendDemo/LGACSendDemo.ino
- Revision:
- 2:6bbd1e911324
- Parent:
- 1:370967a90abb
- Child:
- 3:17440cf7ab90
--- a/examples/LGACSendDemo/LGACSendDemo.ino Sat Jan 23 15:25:05 2016 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-#include <IRremote.h>
-#include <Wire.h>
-
-
-IRsend irsend;
-// not used
-int RECV_PIN = 11;
-IRrecv irrecv (RECV_PIN);
-
-const int AC_TYPE = 0;
-// 0 : TOWER
-// 1 : WALL
-//
-
-int AC_HEAT = 0;
-// 0 : cooling
-// 1 : heating
-
-int AC_POWER_ON = 0;
-// 0 : off
-// 1 : on
-
-int AC_AIR_ACLEAN = 0;
-// 0 : off
-// 1 : on --> power on
-
-int AC_TEMPERATURE = 27;
-// temperature : 18 ~ 30
-
-int AC_FLOW = 1;
-// 0 : low
-// 1 : mid
-// 2 : high
-// if AC_TYPE =1, 3 : change
-//
-
-
-const int AC_FLOW_TOWER[3] = {0, 4, 6};
-const int AC_FLOW_WALL[4] = {0, 2, 4, 5};
-
-unsigned long AC_CODE_TO_SEND;
-
-int r = LOW;
-int o_r = LOW;
-
-byte a, b;
-
-void ac_send_code(unsigned long code)
-{
- Serial.print("code to send : ");
- Serial.print(code, BIN);
- Serial.print(" : ");
- Serial.println(code, HEX);
-
- irsend.sendLG(code, 28);
-}
-
-void ac_activate(int temperature, int air_flow)
-{
-
- int AC_MSBITS1 = 8;
- int AC_MSBITS2 = 8;
- int AC_MSBITS3 = 0;
- int AC_MSBITS4 ;
- if ( AC_HEAT == 1 ) {
- // heating
- AC_MSBITS4 = 4;
- } else {
- // cooling
- AC_MSBITS4 = 0;
- }
- int AC_MSBITS5 = temperature - 15;
- int AC_MSBITS6 ;
-
- if ( AC_TYPE == 0) {
- AC_MSBITS6 = AC_FLOW_TOWER[air_flow];
- } else {
- AC_MSBITS6 = AC_FLOW_WALL[air_flow];
- }
-
- int AC_MSBITS7 = (AC_MSBITS3 + AC_MSBITS4 + AC_MSBITS5 + AC_MSBITS6) & B00001111;
-
- AC_CODE_TO_SEND = AC_MSBITS1 << 4 ;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS2) << 4;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS3) << 4;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS4) << 4;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS5) << 4;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS6) << 4;
- AC_CODE_TO_SEND = (AC_CODE_TO_SEND + AC_MSBITS7);
-
- ac_send_code(AC_CODE_TO_SEND);
-
- AC_POWER_ON = 1;
- AC_TEMPERATURE = temperature;
- AC_FLOW = air_flow;
-}
-
-void ac_change_air_swing(int air_swing)
-{
- if ( AC_TYPE == 0) {
- if ( air_swing == 1) {
- AC_CODE_TO_SEND = 0x881316B;
- } else {
- AC_CODE_TO_SEND = 0x881317C;
- }
- } else {
- if ( air_swing == 1) {
- AC_CODE_TO_SEND = 0x8813149;
- } else {
- AC_CODE_TO_SEND = 0x881315A;
- }
- }
-
- ac_send_code(AC_CODE_TO_SEND);
-}
-
-void ac_power_down()
-{
- AC_CODE_TO_SEND = 0x88C0051;
-
- ac_send_code(AC_CODE_TO_SEND);
-
- AC_POWER_ON = 0;
-}
-
-void ac_air_clean(int air_clean)
-{
- if ( air_clean == 1) {
- AC_CODE_TO_SEND = 0x88C000C;
- } else {
- AC_CODE_TO_SEND = 0x88C0084;
- }
-
- ac_send_code(AC_CODE_TO_SEND);
-
- AC_AIR_ACLEAN = air_clean;
-}
-
-void setup()
-{
- Serial.begin(38400);
- delay(1000);
- Wire.begin(7);
- Wire.onReceive(receiveEvent);
-
- Serial.println(" - - - T E S T - - - ");
-
- /* test
- ac_activate(25, 1);
- delay(5000);
- ac_activate(27, 2);
- delay(5000);
-
- */
-}
-
-void loop()
-{
-
-
- ac_activate(25, 1);
- delay(5000);
- ac_activate(27, 0);
- delay(5000);
-
-
- if ( r != o_r) {
-
- /*
- # a : mode or temp b : air_flow, temp, swing, clean, cooling/heating
- # 18 ~ 30 : temp 0 ~ 2 : flow // on
- # 0 : off 0
- # 1 : on 0
- # 2 : air_swing 0 or 1
- # 3 : air_clean 0 or 1
- # 4 : air_flow 0 ~ 2 : flow
- # 5 : temp 18 ~ 30
- # + : temp + 1
- # - : temp - 1
- # m : change cooling to air clean, air clean to cooling
- */
- Serial.print("a : ");
- Serial.print(a);
- Serial.print(" b : ");
- Serial.println(b);
-
- switch (a) {
- case 0: // off
- ac_power_down();
- break;
- case 1: // on
- ac_activate(AC_TEMPERATURE, AC_FLOW);
- break;
- case 2:
- if ( b == 0 | b == 1 ) {
- ac_change_air_swing(b);
- }
- break;
- case 3: // 1 : clean on, power on
- if ( b == 0 | b == 1 ) {
- ac_air_clean(b);
- }
- break;
- case 4:
- if ( 0 <= b && b <= 2 ) {
- ac_activate(AC_TEMPERATURE, b);
- }
- break;
- case 5:
- if (18 <= b && b <= 30 ) {
- ac_activate(b, AC_FLOW);
- }
- break;
- case '+':
- if ( 18 <= AC_TEMPERATURE && AC_TEMPERATURE <= 29 ) {
- ac_activate((AC_TEMPERATURE + 1), AC_FLOW);
- }
- break;
- case '-':
- if ( 19 <= AC_TEMPERATURE && AC_TEMPERATURE <= 30 ) {
- ac_activate((AC_TEMPERATURE - 1), AC_FLOW);
- }
- break;
- case 'm':
- /*
- if ac is on, 1) turn off, 2) turn on ac_air_clean(1)
- if ac is off, 1) turn on, 2) turn off ac_air_clean(0)
- */
- if ( AC_POWER_ON == 1 ) {
- ac_power_down();
- delay(100);
- ac_air_clean(1);
- } else {
- if ( AC_AIR_ACLEAN == 1) {
- ac_air_clean(0);
- delay(100);
- }
- ac_activate(AC_TEMPERATURE, AC_FLOW);
- }
- break;
- default:
- if ( 18 <= a && a <= 30 ) {
- if ( 0 <= b && b <= 2 ) {
- ac_activate(a, b);
- }
- }
- }
-
- o_r = r ;
- }
- delay(100);
-}
-
-
-
-void receiveEvent(int howMany)
-{
- a = Wire.read();
- b = Wire.read();
- r = !r ;
-}
-
-