Traisaman
Published © GPL3+

Bulthaup DA90 Range Hood Infrared Remote Control

Emulates IR remote control for the Bulthaup DA90 range hood (Dunstabzugshaube). You need to download the IRremote library.

BeginnerFull instructions provided1,835
Bulthaup DA90 Range Hood Infrared Remote Control

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
IR transmitter (generic)
×1
Tactile Switch, Top Actuated
Tactile Switch, Top Actuated
×2

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Breadboard, 270 Pin
Breadboard, 270 Pin

Story

Read more

Schematics

Bulthaup Range Hood Remote Control - Schematic

Very simple to setup. Just 3 pins to connect to the Arduino

Code

Bulthaup Range Hood Remote Control

Arduino
/*
This code emulates the Bulthaup infrared remote control for range hood DA 90 TAS 86 R.
Dieser Code emuliert die Infrarot Fernbedienung der Bulthaup Dunstabzugshaube DA 90 TAS 86 R.
Library: 
IR-Remote 

Hardware:
Arduino Uno, Nano
IR-LED connected to pin 3 - I did not use any pre-resistor. The signal is very short, thus the LED can cope with it.
Two switches conneted to pin 6 and 7, pull down to ground via 10k resistor

What I strongly recommend is just use it for teaching a standard programmable IR-remote from the shelf.
I used the SEKI Slim and it worked fine.

Remark: There is a 800€ service kit instead in case the original remote control is broken. Crazy !!
 
*/

#if defined(ARDUINO) && ARDUINO >= 100
  #include "Arduino.h"
#else
  #include "WProgram.h"
#endif

// ---- Libraries ------- 
#include <IRremote.h>           //This lirary can be downloaded from the www.arduino.cc
IRsend sendbulthaup;            //Enable sending IR code

#define PINLICHT 6              //Connet to switch light
#define PINVENTILATOR 7         //Connect to switch fan 


// Raw code for the light button
unsigned int LichtRawData[41] = {572, 2772, 576, 496, 572, 500, 572, 500, 572, 500, 572, 496, 572, 500, 572, 500, 572, 468, 572, 496, 572, 21940, 572, 2772, 572, 500, 572, 500, 572, 468, 568, 500, 572, 1076, 572, 500, 572, 496, 1200, 1056, 568};

// Raw data for starting the fan
unsigned int VentRawData[49] = {596, 2748, 596, 444, 532, 476, 596, 476, 596, 440, 596, 476, 596, 444, 532, 476, 596, 476, 592, 444, 532, 21948, 568, 2776, 568, 1048, 1156, 1068, 1156, 1068, 1152, 1068, 1152, 1072, 596, 64216, 568, 2776, 568, 1048, 1156, 1072, 1148, 1072, 1152, 1068, 1152, 1072, 592};

// Raw data for increasing the fan
unsigned int VentRawDataRepeat [13]={ 624, 2720, 540, 1076, 1180, 1040, 1160, 1064, 1156, 1064, 1160, 1064, 624};


// =========================================================================
void setup() {
    
  Serial.begin(9600);
  pinMode (PINLICHT,INPUT);
  pinMode (PINVENTILATOR,INPUT);
  Serial.println("Press Button");
  
}
// =============================================================
void loop() {

 if (digitalRead(PINLICHT) == HIGH) {
  Serial.println ("Licht");  
  sendbulthaup.sendRaw(LichtRawData, sizeof(LichtRawData)/sizeof(LichtRawData[0]), 38);   

  delay(200);
 } 
  if (digitalRead(PINVENTILATOR) == HIGH) {
    Serial.println ("Ventilator");
    sendbulthaup.sendRaw(VentRawData, sizeof(VentRawData)/sizeof(VentRawData[0]),38);
    delay(64);      //do not change the 64ms delay time. It is part of the sequence
    while (digitalRead(PINVENTILATOR) == HIGH) { //if switch is still pushed
      sendbulthaup.sendRaw(VentRawDataRepeat, sizeof(VentRawDataRepeat)/sizeof(VentRawDataRepeat[0]),38);
      delay (64);  //do not change the 64ms delay time. It is part of the sequence
    }  
  delay(200);
 } 

}

Credits

Traisaman
0 projects • 2 followers

Comments