Forum: HF, Funk und Felder 433 Mhz-Sender mit Arduino - Pinbelegung wichtig?


von A. K. (atom_kanister)


Lesenswert?

Ich möchte einen billigen 433 Mhz-Sender 
(https://www.amazon.de/gp/product/B00R2U8OEU/) mit der RCSwitch-Library 
an einem Arduino betreiben. In sämtlichen Examples, die ich dazu 
gefunden habe, wird immer Pin 10 für den Output verwendet. In meiner 
Schaltung ist dieser Pin jedoch schon mit anderem Zeug belegt. Muss der 
Sender an einen PWM-Pin (oder sonst irgendwas Speziellem), oder 
funktioniert jeder Digitalpin?

von Wolfgang (Gast)


Lesenswert?

Philemon S. schrieb:
> Muss der Sender an einen PWM-Pin (oder sonst irgendwas Speziellem), oder
> funktioniert jeder Digitalpin?

Der Sender ist strohdoof.

Wie du ihn mit Daten fütterst, bleibt vollständig dir überlassen.

von x0x (Gast)


Lesenswert?

Wenn ich das halbwegs richtig interpretiere, das einzige was dem Sender 
vorgegeben ist. Ist die Modulationsart.

Wie du was (in der Modulationsart) überträgst (Protokoll) ist ganz dir 
überlassen.
Auch die Pinbelegung.
Du musst nur in eventuell vorhandenen Codebeispielen den entsprechenden 
Pin verwenden.

Oder liege ich da falsch?

von Sebastian S. (amateur)


Lesenswert?

Wenn Dein freier Pin die gleichen Kunststückchen (Betriebsart) kann, wie 
der Pin 10: Warum nicht.
Der Sender lauscht an seinem Eingang und interessiert sich nicht dafür, 
wo es herkommt.
Wie auch Wolfgang schon ausgeführt hat.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Schau Dir auch folgende Seite Mal an:
http://www.datasheet-pdf.info/entry/SC2272-pdf

Die dort genannten Chips (2272 Encoder und 2262 Decoder) verhackstückeln 
das zu übertragende Nibble, da diese Funkmodule keine gleichbleibenden 
Pegel übertragen können.

MfG

von Michael U. (amiga)


Lesenswert?

Hallo,

die RCSwitch-Library will nur irgendeinen Pin, der wird als 
Outputgenutzt und eben nur zeitrichtig direkt ein- und ausgeschaltet.

Schau einfch in den Source der RCSwitch-Lib rein. ;-)

Aus RCSwitch.cpp:
1
/**
2
 * Transmit a single high-low pulse.
3
 */
4
void RCSwitch::transmit(HighLow pulses) {
5
  uint8_t firstLogicLevel = (this->protocol.invertedSignal) ? LOW : HIGH;
6
  uint8_t secondLogicLevel = (this->protocol.invertedSignal) ? HIGH : LOW;
7
  
8
  digitalWrite(this->nTransmitterPin, firstLogicLevel);
9
  delayMicroseconds( this->protocol.pulseLength * pulses.high);
10
  digitalWrite(this->nTransmitterPin, secondLogicLevel);
11
  delayMicroseconds( this->protocol.pulseLength * pulses.low);
12
}

Gruß aus Berlin
Michael

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.