Go Down

Topic: Hoi en HELP!!! 433mhz zender (Read 1 time) previous topic - next topic

ynzrik

Ten eerste, Hoi allemaal :) ik ben sinds kort begonnen met het gebruiken van arduino en ben er met goede zin mee begonnen.

Nu komt dus het 2e.. (duh) Ik gebruik thuis al een langere tijd kaku schakelaars. deze werken op 433mhz, ik heb de afstandbediening al gedecode, het probleem is echter.. hoe zend ik dit signaal weer door?

dit zijn de codes:
               |     A      ||1-2-3||altijd| |aan/uit|
A1ON:   000101010 001010 101010 1110
A2ON:   000101010 100010 101010 1110
A3ON:   000101010 101000 101010 1110
A1OFF:   000101010 001010 101010 1000
A2OFF:   000101010 100010 101010 1000
A3OFF:   000101010 101000 101010 1000

A1ON:   000101010 001010 101010 1110
B1ON:   010001010 001010 101010 1110
C1ON:   010100010 001010 101010 1110
D1ON:   010101000 001010 101010 1110

A1OFF:   000101010 001010 101010 1000
B1OFF:   010001010 001010 101010 1000
C1OFF:   010100010 001010 101010 1000
D1OFF:   010101000 001010 101010 1000

de delays zijn 350 voor kort en 1050 voor lang

ik heb verschillende sketches bestudeerd, maar ik kom er echt niet uit.

gr Rik

astrofrostbyte

Gear: Arduino- Uno,Due,Ethernet,  OLS, Buspirate, J-Link, TDS1002, Rigol DG1022

ynzrik

hoi astrofrostbyte,

ik heb deze idd al bekenen. op een of andere manier krijg ik geen codes te zien. daarom heb ik dit met audacity de codes opgehaalt. ook als ik de delay en dergelijk aan pas, werkt het niet. zeer frustrerend :P


astrofrostbyte

#3
Apr 07, 2013, 12:00 pm Last Edit: Apr 07, 2013, 12:44 pm by astrofrostbyte Reason: 1
Even voor het overzicht,  je hebt de volgende opstelling :

Handzender      ~~~~A~~~~>     '433.92Mhz Receiver'     ----B---->    'Arduino'      ----C---->      '433.92Mhz Transmitter'     ~~~~D~~~~>   KaKu schakelaar

Je hebt met audacity gemeten op 'B'  ?
Heb je ook al gemeten op 'C'

I merk trouwens ook dat er veel verschil is in receivers:
-  super-regenerative receivers -  dit zijn de goedkoopste 'china' met een LC-resonantie circuit

Ik heb net twee van dit soort modules binnen van eBay en wat ik merk is dat je erg veel 'rommel' data ontvangt als er geen carrier is,  nadeel is dat de arduino ontvangst routine het super druk heeft deze 'rommel' data te ontcijferen om te kijken of er data tussen zit.

-  superheterodyne receivers -  dit zijn de betere circuits met crystal.

Ik weet niet of deze modules 'stil' zijn als er geen carrier is ?.
Gear: Arduino- Uno,Due,Ethernet,  OLS, Buspirate, J-Link, TDS1002, Rigol DG1022

astrofrostbyte

De 433MHz transmitters zijn binnen die ik op eBay heb besteld.  Heb de webpage geupdate :

https://sites.google.com/site/arduinohomeautomation/home/unitec_eim826
https://sites.google.com/site/arduinohomeautomation/home/infrared_remote_-2-_rf_switch

Arduino sketch update , met 'Logitech Harmony One' de '433Mhz RF switches' bedienen.
De code is vrij kort/simpel mischien kan je hiermee verder testen.  Tis dan wel geen 'echte' Klik-Aan-Klik-Uit' maar een kloon van de hornbach (unitec eim826),  maar de principes zijn meestal het zelfde.
Gear: Arduino- Uno,Due,Ethernet,  OLS, Buspirate, J-Link, TDS1002, Rigol DG1022

ynzrik

Thnx voor het reageren op mijn vraag :) ik heb je links bekeken en heb er wel wat aan gehad :D

Ik heb nu mijn sketch compleet en hij werkt ook nog eens super goed :P

voor de mensen die geïnteresseerd zijn, dit is mijn sketch:
Code: [Select]
#define RFPIN 3
#define SHORT 354
#define LONG (SHORT*3)
#define TOTAL (SHORT*4)
#define SYNC (SHORT*24.5)
byte A = B00000101;
byte B = B01000101;
byte C = B01010001;
byte D = B01010100;
byte K1 = A;
byte K2 = B;
byte K3 = C;
byte ON = B00010101;
byte OFF = B00010100;

void rfsend(byte letter = B00000000, byte number = B00000000, byte command = B00000000)
{
  digitalWrite(RFPIN, LOW);
  unsigned char r;
  for(r=0;r<15;r++)
  {
    unsigned char k;
    int d;
    for(k=0;k<8;k++)
    {
      d = ((letter>>(7-k)) & 1 ? LONG : SHORT);
      digitalWrite(RFPIN, HIGH);
      delayMicroseconds(d);
      digitalWrite(RFPIN, LOW);
      delayMicroseconds(TOTAL - d);
    }
    for(k=0;k<8;k++)
    {
      d = ((number>>(7-k)) & 1 ? LONG : SHORT);
      digitalWrite(RFPIN, HIGH);
      delayMicroseconds(d);
      digitalWrite(RFPIN, LOW);
      delayMicroseconds(TOTAL - d);
    }
    for(k=0;k<8;k++)
    {
      d = ((command>>(7-k)) & 1 ? LONG : SHORT);
      digitalWrite(RFPIN, HIGH);
      delayMicroseconds(d);
      digitalWrite(RFPIN, LOW);
      delayMicroseconds(TOTAL - d);
    }
    for(k=0;k<1;k++)
    {
      digitalWrite(RFPIN, HIGH);
      delayMicroseconds(SHORT);
      digitalWrite(RFPIN, LOW);
      delayMicroseconds(LONG);
    }
    delayMicroseconds(SYNC);
  }
}
void setup()
{
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode(RFPIN, OUTPUT);
}

void loop()
{
  // put your main code here, to run repeatedly:
 
  delay(500);
  rfsend(A, K2, OFF);
}

Go Up