-menu

Toon bijdragen

Deze sectie stelt je in staat om alle bijdragen van dit lid te bekijken. Je kunt alleen de bijdragen zien waar je op dit moment toegang toe hebt.

Toon bijdragen-menu

Berichten - MarcelvdG

#1
Ik heb 'm inmiddels aangepast voor een Humax IRHD-5000C want de Pace DCR 7111 moest terug naar Ziggo. Zie hieronder voor het aangepaste Arduinoprogramma, de elektronica blijft hetzelfde. Het programma gebruikt de nieuwste infraroodbibliotheek, IRremote versie 4.zoveel.

Om een of andere reden lukt het me niet meer op RC-5-codes met adres 8 en field = 0 uit de RDR-AT105 te krijgen, maar wel met field = 1. Vandaar het aangepaste adres in regel 72.

De Humax IRHD-5000C wordt meteen na aanschakelen van de RDR-AT105 wakker gemaakt met de infraroodcode voor een 0. Doe je dat niet, dan mist hij het eerste cijfer. De Humax kan helaas niet in de standbystand met het laagste stroomgebruik gezet worden, net als voorheen de Pace.

// Vertaler van RC-5 op adres 8 naar de codes die een door Maarten Bakker geleverde Humax IRHD-5000C nodig heeft.
// Om redenen die mij volstrekt onduidelijk zijn, moet het zogenaamde veldbit nu 1 zijn, want de Sony produceert
// geen RC-5-codes met adres 8 en veldbit = 0 meer.
// Aangepaste versie van het programma van https://www.instructables.com/id/Arduino-Based-Remote-Translator/
// Daarnaast een poging gedaan om hem de Humax in standby te laten zetten als de
// voeding wegvalt (gedetecteerd via de analoge spanningsvergelijker).
// Aangepast aan versie 4.zoveel van de Arduino infraroodbibliotheek IRremote.
//
// Codes herhalen, zoals bij de Pace, kan met de NEC-codering niet zomaar (geen togglebit,
// desalniettemin heb ik de codes er dubbel in laten staan, alleen zijn de a- en b-code nu gelijk).
// Zelfs de standbycode kan niet herhaald worden, twee keer op standby drukken zet 'm weer aan...

#include <Arduino.h>
#define DECODE_RC5 // Alle protocols uit behalve RC5 voor ontvangst, hoop ik.
#include <IRremote.hpp>

const int RECV_PIN = 10;
const int IR_SEND_PIN = 13;
const int hw = 2;
const int herhaalst = 1; // herhalen van de standbycode kan niet bij de Humax IRHD-5000C...
const int kHz = 38; // 38 kHz "draaggolffrequentie" voor het NEC-32-protocol dat de Humax gebruikt (NEC zonder geinverteerde adressen en data)
const int Humaxlengte = 67; // 67 intervallen in elke Humax-code

unsigned long code;
unsigned long vorigecode;
unsigned int irSignal [Humaxlengte];
int i;
int geldig;
int ab;
int herhaal;
int wacht;

volatile bool standby; // variabele moet atomisch zijn, een enkel bit is dat vast wel


//RC5-codes
const unsigned long RC5adres = 72; // Eigenlijk adres 8 met commandoveld 1, om een of andere reden werkt het niet meer met gewoon 8.
const unsigned long RC5_0_a = RC5adres*64 + 0;
const unsigned long RC5_0_b = RC5_0_a + 2048; // toggle bit = 1
const unsigned long RC5_1_a = RC5adres*64 + 1;
const unsigned long RC5_1_b = RC5_1_a + 2048; // toggle bit = 1
const unsigned long RC5_2_a = RC5adres*64 + 2;
const unsigned long RC5_2_b = RC5_2_a + 2048; // toggle bit = 1
const unsigned long RC5_3_a = RC5adres*64 + 3;
const unsigned long RC5_3_b = RC5_3_a + 2048; // toggle bit = 1
const unsigned long RC5_4_a = RC5adres*64 + 4;
const unsigned long RC5_4_b = RC5_4_a + 2048; // toggle bit = 1
const unsigned long RC5_5_a = RC5adres*64 + 5;
const unsigned long RC5_5_b = RC5_5_a + 2048; // toggle bit = 1
const unsigned long RC5_6_a = RC5adres*64 + 6;
const unsigned long RC5_6_b = RC5_6_a + 2048; // toggle bit = 1
const unsigned long RC5_7_a = RC5adres*64 + 7;
const unsigned long RC5_7_b = RC5_7_a + 2048; // toggle bit = 1
const unsigned long RC5_8_a = RC5adres*64 + 8;
const unsigned long RC5_8_b = RC5_8_a + 2048; // toggle bit = 1
const unsigned long RC5_9_a = RC5adres*64 + 9;
const unsigned long RC5_9_b = RC5_9_a + 2048; // toggle bit = 1
const unsigned long RC5_st_a = RC5adres*64 + 12;
const unsigned long RC5_st_b = RC5_st_a + 2048; // toggle bit = 1

// Humax-codes

const uint16_t Humax_0_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_0_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_1_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_1_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_2_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_2_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_3_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_3_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_4_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_4_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_5_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_5_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_6_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_6_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_7_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_7_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_8_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_8_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_9_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_9_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_st_a[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};
const uint16_t Humax_st_b[] PROGMEM = {9000, 4500, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 563, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562, 1688, 562};


ISR (ANALOG_COMP_vect)
  {
  standby = true;
  }

void setup()
{
    Serial.begin(9600);
      pinMode(hw, INPUT_PULLUP);
      delay(500); // delay(1000);
// Deze wachttijd voorkomt dat hij bij het opkomen van de voeding standbycodes gaat uitzenden door de spanningsvergelijkerinterruptie.
// Verder geeft deze vertraging poot hw meer dan genoeg tijd om op spanning te komen.

// Herhalen kan helaas niet meer, 5511 is wat anders dan 51 en er is geen togglebit.
// hw == laag: herhaal = 1, wacht = 100
// hw == hoog: herhaal = 1, wacht = 100

    if (digitalRead(hw) == HIGH)
    {
        herhaal = 1;
        wacht = 100;
    }
    else
    {
        herhaal = 1;
        wacht = 100;
    }
      code = 0;
      vorigecode = 0;
      standby = false;
      ADCSRB = 0;       // ACME = 0: bandgap op minpoot vergelijker
      ACSR = B00011010;
// ACD = 0: vergelijker aan (stond al aan en ACIE was al 0 na reset)
// ACBG = 0: AIN0 (van de ATmega32U4, D7 Arduino Micro) op pluspoot vergelijker
// ACO: alleen leesbaar
// ACI = 1: strijk de vlag, indien van toepassing
// ACIE = 1: analoge-vergelijkerinterruptie aan
// ACIC = 0: timer 1 reageert er niet op
// ACIS1, ACIS0 = binair 10: reageren op dalende flank

// Humax wakker maken met code 0, anders negeert 'ie het eerste cijfer.

    IrSender.begin(IR_SEND_PIN, false, 12);
    for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_0_b[i]);}; ab = 1; // Doe maar togglebit = 1, want de Sony begint vast met 0
      IrSender.sendRaw(irSignal, Humaxlengte, kHz);
    IrReceiver.begin(RECV_PIN, false);
}

void loop()
{
    if (standby)
    {
        standby = false;
        if (ab)
        {
            for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_st_a[i]);};
            ab = 0;
        }
        else
        {
            for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_st_b[i]);};
            ab = 1;
        }
            for (i = 0; i < herhaalst; i = i + 1)
            {
              IrSender.sendRaw(irSignal, Humaxlengte, kHz);
                  delay(20); // Bij de Pace had ik de tussenpauze verkort zodat standby-commando vaker verzonden konden worden voor
                   // de elco's leeg waren. Doet niks voor Humax, want herhalen kan toch niet.
            }
    }
    if (IrReceiver.decode())
    {
            if (IrReceiver.decodedIRData.protocol == RC5 )
        {
            geldig = 1;
            code = IrReceiver.decodedIRData.decodedRawData;
            switch (code)
            {
                      case RC5_0_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_0_a[i]);}; ab = 0; break;};
                      case RC5_0_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_0_b[i]);}; ab = 1; break;};
                      case RC5_1_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_1_a[i]);}; ab = 0; break;};
                      case RC5_1_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_1_b[i]);}; ab = 1; break;};
                      case RC5_2_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_2_a[i]);}; ab = 0; break;};
                      case RC5_2_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_2_b[i]);}; ab = 1; break;};
                      case RC5_3_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_3_a[i]);}; ab = 0; break;};
                      case RC5_3_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_3_b[i]);}; ab = 1; break;};
                      case RC5_4_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_4_a[i]);}; ab = 0; break;};
                      case RC5_4_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_4_b[i]);}; ab = 1; break;};
                      case RC5_5_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_5_a[i]);}; ab = 0; break;};
                      case RC5_5_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_5_b[i]);}; ab = 1; break;};
                      case RC5_6_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_6_a[i]);}; ab = 0; break;};
                      case RC5_6_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_6_b[i]);}; ab = 1; break;};
                      case RC5_7_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_7_a[i]);}; ab = 0; break;};
                      case RC5_7_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_7_b[i]);}; ab = 1; break;};
                      case RC5_8_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_8_a[i]);}; ab = 0; break;};
                      case RC5_8_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_8_b[i]);}; ab = 1; break;};
                      case RC5_9_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_9_a[i]);}; ab = 0; break;};
                      case RC5_9_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_9_b[i]);}; ab = 1; break;};
                      case RC5_st_a: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_st_a[i]);}; ab = 0; break;};
                      case RC5_st_b: {for (i = 0; i < Humaxlengte; i = i + 1) {irSignal[i] = pgm_read_word(&Humax_st_b[i]);}; ab = 1; break;};
                default: geldig = 0;
               }
            if (geldig == 1 && code != vorigecode)
            {
                    for (i = 0; i < herhaal; i = i + 1)
                    {
                      IrSender.sendRaw(irSignal, Humaxlengte, kHz);
                          delay(wacht);
                    }
            }
            vorigecode = code;
        }
        IrReceiver.resume();
    }
}
#2
Ah, op die manier. Ik weet dat particulier bestellen bij Farnell lastig is, maar de LNK306 is ook gewoon bij Distrelec te bestellen en de LNK304 bij Conrad.
#3
Reparatie verslagen / Re: Repiet recycle Megger
18 maart, 2019, 00:08:14
In het schema Megger1.pdf in de openingspost zie je toch duidelijk dat alles met trafo's gescheiden is van het lichtnet? (Je zou trouwens ook elke uitgangsklem van een weerstand kunnen voorzien.)
#4
Wat is een LNK eigenlijk?
#5
Reparatie verslagen / Re: Repiet recycle Megger
16 maart, 2019, 23:39:08
Kun je niet gewoon een paar flinke hoogspanningsweerstanden in serie met de uitgang zetten zodanig dat de kortsluitstroom maar een paar milliampere is? Dan kun je er nog steeds defecte isolatie mee opsporen en is het apparaat zelf niet levensgevaarlijk meer.
#6
Hallo allemaal,

Nu er geen analoge televisie meer in de lucht is en kabelaanbieders zoals Ziggo het analoge televisiesignaal van hun kabels halen, zijn veel harddisk-/DVD-recorders die ontworpen zijn voor analoge televisie alleen nog te gebruiken als ze gekoppeld worden aan een uitwendige ontvanger (DVB-C-ontvanger, mediabox, settopbox). Voor het omschakelen van het kanaal dat de ontvanger ontvangt heeft Guide+ ooit een truc bedacht: de G-linkaansluiting. Als je hier een 950 nm infrarood-LED op aansluit, bootst de recorder de afstandsbedieningscodes van de ontvanger na en schakelt zo het ontvangen kanaal om. De anode van de LED moet aan het puntje van een 3,5 mm-steker en de kathode aan de afscherming.

Heb je echter nooit de in 2016 uit de lucht gehaalde programmagids van Guide+ gebruikt, dan heeft de recorder geen nieuwe afstandsbedieningscodes gedownload en ondersteunt de G-linkuitgang alleen apparaten die al op de markt waren toen de recorder ontworpen werd. Ik had dat probleem met een Sony RDR-AT105 en een Pace DCR 7111.

Ik heb het opgelost door een G-linkvertaler te maken en in te bouwen in de harddiskrecorder. De Sony RDR-AT105 zet nu RC-5-codes met adres 8 op zijn G-linkuitgang, alsof hij een Philips-ontvanger aanstuurt. Een Arduino Micro decodeert de RC-5-codes en zendt de bijbehorende Pace DCR 7111-codes uit. Zie de bijlagen; het tekstbestand bevat Arduino-broncode, de extensie ervan moet worden veranderd in .ino.

Het betreft een aanpassing van een bestaand apparaat, dus ik zal wel een half dozijn nationale en Europese regels overtreden hebben ermee. Bovendien is het te veel werk om in een Repair-Cafe avondje in elkaar te prutsen. Het helpt wel om oude apparatuur bruikbaar te houden, en ik denk dat mijn wijziging niet heel erg onverantwoord is: alles is gescheiden van het lichtnet, ver van de netvoeding geplaatst, en er zijn een printje met CE-markering en een paar onderdelen zonder actief of passief stoorpotentieel toegevoegd.

Met vriendelijke groeten,
Marcel van de Gevel