donderdag 11 juni 2015

Eindproduct



Na maanden werk is de afstandsbediening eindelijk af.

De besturing gebeurt door een Arduino.










De code wordt nog altijd bediend met de computer.
Via multiplexing kan de IR led bediend worden met de knoppen







Arduino Code:

/*
 * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */

#include <IRremote.h>
IRsend irsend;
unsigned int raw[26] = {400,250,300,650,350,300,600,600,350,300,600,600,650,600,350,300,350,300,600,600,650,300,300,600,350,};
unsigned int raw2[26] = {350,300,350,550,350,300,650,550,400,250,650,600,650,600,350,300,600,300,350,300,300,300,350,550,700,};
unsigned int raw3[26] = {350,250,350,600,350,250,700,550,350,300,650,550,700,550,350,300,350,250,700,250,300,650,650,550,400,};
unsigned int raw4[26] = {350,250,400,550,350,300,650,550,400,250,650,600,650,600,350,300,600,600,350,300,300,300,350,300,650,};
unsigned int raw5[26] = {300,300,350,600,350,300,600,600,350,300,650,600,600,600,400,250,650,300,350,550,350,300,350,300,600,};
unsigned int raw6[26] = {350,250,350,600,350,300,600,600,350,300,650,600,650,600,300,300,650,300,350,550,650,300,350,600,300,};
unsigned int raw7[24] = {350,250,350,600,350,250,700,550,350,300,650,600,650,600,350,250,650,600,650,600,650,600,350,};
unsigned int raw8[24] = {350,300,350,550,350,300,650,550,400,250,650,600,650,600,350,300,650,550,650,300,350,550,700,};
unsigned int raw9[26] = {350,300,300,600,350,300,600,600,350,300,600,600,650,600,350,300,600,600,400,300,600,300,300,600,350,};
unsigned int raw10[24] = {400,250,300,600,400,250,650,600,350,300,600,600,650,600,350,300,600,600,650,600,350,300,600,};
unsigned int raw11[26] = {350,300,300,600,350,300,600,600,350,300,600,600,650,600,350,300,650,600,600,300,350,300,350,550,350,};
unsigned int raw12[26] = {350,300,350,550,350,300,650,600,350,250,650,600,650,600,350,250,650,300,350,600,350,250,650,600,350,};
unsigned int raw13[24] = {400,250,350,600,300,300,650,600,300,300,700,550,700,550,350,300,650,300,300,600,650,600,650,};
unsigned int raw14[24] = {350,250,350,600,350,250,700,550,350,300,650,600,650,600,650,550,350,300,350,250,700,550,650,};
unsigned int raw15[24] = {350,250,350,600,350,250,700,550,350,300,650,550,700,550,700,550,350,300,650,600,350,250,650,};
unsigned int raw16[26] = {350,250,350,600,350,300,650,550,350,300,650,600,650,550,700,550,350,300,350,300,650,250,350,600,350,};
unsigned int raw17[28] = {350,250,350,600,350,250,700,550,350,300,650,550,650,600,350,300,600,300,350,300,350,250,350,300,350,550,350,};
unsigned int raw18[26] = {350,250,350,600,350,250,700,550,350,300,650,550,700,550,700,550,350,300,350,300,300,300,650,550,350,};
unsigned int raw19[26] = {350,300,350,550,350,300,600,650,300,300,650,600,650,600,650,600,300,350,300,250,350,300,300,300,650,};


void setup()
{
  Serial.begin(9600);
}

void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendRaw(raw,26,38);  //power
      delay(40);
    }
  }
  if (Serial.read() != -2) {
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw2,26,38); //esc
      delay(40);
    }
  }
  if (Serial.read() != -3) {
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw3,26,38); //tvgids
      delay(40);
    }
  }


  if (Serial.read() != -4) {            //OPGENOMEN
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw4,26,38); //home
      delay(40);
  irsend.sendRaw(raw5,26,38); //pijl links
      delay(40);
 irsend.sendRaw(raw6,26,38); //OK
      delay(40);
  }
  }

  if (Serial.read() != -5) {            //channel up
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw7,24,38);
      delay(40);
    }
  }
  if (Serial.read() != -6) {            //channel down
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw8,24,38);
      delay(40);
    }
  }

  if (Serial.read() != -7) {            //volume up
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw9,26,38);
      delay(40);
    }
  }  if (Serial.read() != -8) {            //volume down
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw10,24,38);
      delay(40);
    }
  }

 if (Serial.read() != -9) {            //pijl omhoog
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw11,26,38);
      delay(40);
    }
  }
 if (Serial.read() != -10) {            //pijl rechts
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw12,26,38);
      delay(40);
    }
  }
 if (Serial.read() != -11) {            //pijl omlaag
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw13,24,38);
      delay(40);
    }
  }
 if (Serial.read() != -12) {            //pijl links
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw5,26,38);
      delay(40);
    }
  }

 if (Serial.read() != -13) {            //OK
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw6,26,38);
      delay(40);
    }
  }
 if (Serial.read() != -14) {            //record
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw14,24,38);
      delay(40);
    }
  }
 if (Serial.read() != -15) {            //play
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw15,24,38);
      delay(40);
    }
  }
 if (Serial.read() != -16) {            //stop
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw16,26,38);
      delay(40);
    }
  }
 if (Serial.read() != -17) {            //terugspoelen
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw17,28,38);
      delay(40);
    }
  }
 if (Serial.read() != -18) {            //pause
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw18,26,38);
      delay(40);
    }
  }
 if (Serial.read() != -19) {            //doorspoelen
    for (int i = 0; i < 3; i++) {
     irsend.sendRaw(raw19,26,38);
      delay(40);
    }
  }


}


Tenslotte nog een foto van het toestel in gebruik