View Single Post
Det er strengt tatt ikke nødvendig med noe "dekoder" i det hele tatt. Ja, du kan koble en knapp på sender-linken og en diode på mottaker-linken og knappen vil skru på dioden!

Du spør om du må ha en arduino i hver ende. Som jeg prøvde å si over: Hvis inngangen på sender-linken går høy (+5v f.eks), så vil utgangen på mottakeren gå høy. Det er en direkte erstatning for én ledning. Problemet kommer hvis du f.eks vil ha en krets på mottaker siden som skal forstå enten "forover", "bakover", "høyre" eller "venstre". Da har du et problem fordi du kan bare representere to verdier med høy eller lav, og både kretsen på sender-siden og på mottaker-siden må da konstrueres så de snakker sammen på samme måte. Hvis du kunne sendt 2 bit, altså to pulser med enten høy eller lav, like etter hverandre så ville du kunne sende 4 forskjellige kommandoer. Et eksempel er
00 Forover
01 Bakover
10 Venstre
11 Høyre
Men nå har du et nytt problem. Hvordan vet mottakeren nøyaktig når den skal begynne å lese denne sekvensen med pulser? Hvis du prøver å sende sekvensen "bakover" (01) så vil første biten være 0v og diagrammet tolkes som én høy puls. Enda værre, hvis du prøver å sende sekvensen "forover" (00) så vil linjen ligge lavt hele tiden og ingenting oppfattes i det hele tatt!
Denne enkle men høyst tilstedeværende problemstillingen er grunnlaget for utviklingen av flere standarder for seriell-kommunikasjon (når en beskjed sendes som et tog med pulser i serie på en ledning).
Prinsippet med de fleste typer standarder er å definere hvordan du vet når et pulstog starter, hvor langt det er (hvor mange pulser skal oppfattes, i eksempelet over var det to), hvor brede pulsene er og evt. hvordan man vet når et pulstog slutter. Den mest brukte standarden er UART, og er som regel implementert som hardware på de fleste mikrokontrollere (arduino har det, Basic stamp vet jeg ikke), og det er gjenlatt til programmereren av mikrokontrollen (deg) å sette opp UART med helt like parametre (som beskrevet ovenfor) på mikrokontrolleren på både sender og mottaker siden.

Uansett hvilken metode du måtte finne på å velge for å dekode/enkode signalet ditt, husk nå at RF linken er kun en erstatning for en ledning! Hvis du greier å få sender- og mottakerkretsen din til å kommunisere mellom en ledning, så kan du bare bytte ut ledningen med data inngangen og data utgangen på rf-linken, respektivt.

Pyronics sa noe interessant; hvis du kan få sender- og mottakerkretsen til å prate sammen basert på bredden av én puls så slipper du å tenke på andre standarder for seriell kommunikasjon. La oss si at en høy puls på +5v har en varighet på mellom 10 og 40 millisekunder:
10ms = forover
20ms = bakover
30ms = høyre
40ms = venstre

Når mottakerkretsen merker at datautgangen på mottaker-linken går høy så må den telle tiden det tar helt til den går lav, og derav finne ut hvilken hvilken kommando som ble sendt.

Angående ferdiglagde dekoder/enkoder brikker, så finnes de i mange forskjellige typer. Den i linken over (NKM2401) fungerer som et slags mellomledd mellom din valgte form for seriekommunikasjon og en mer sikker type overføring av den ved hjelp av konvertering til manchester kode (prøv wikipedia).
En mye mer interessant enkoder/dekoder er et sett av brikkene RF600D og RF600E. Dog mye dyrere. De har en parelell inngang på 4 bit på sender og mottaker siden, dvs fire data-innganger hvor du kan huke på f.eks 4 brytere eller 4 digitale linjer fra en mikrokontroller, og da har du plutselig 2^4 (16) mulige kommandoer å sende, enkelt! Disse kobles direkte opp mot RF link på sender og mottaker siden.