Hallo zusammen,
ich habe hier im Forum Beiträge zur Kommunikation über HC12 gelesen. Diese Module (https://www.amazon.de/dp/B0BYNG2524?psc=1&ref=ppx_yo2ov_dt_b_product_details) habe ich mir angeschafft und bin die Anleitung hier https://wolles-elektronikkiste.de/hc-12-funkmodul durchgegangen. Zitat: "Nun könnt ihr für beide einen seriellen Monitor öffnen. Schreibt eine Nachricht in eines der Eingabefelder, geht auf Senden und schon taucht die Nachricht im seriellen Monitor des anderen Arduinos auf. So einfach ist das!" Diese Hoffnung hatte ich auch.
Über die AT Befehle habe ich alles eingerichtet. Die Module melden auch immer brav AT-OK zurück. So ist es eingestellt (auf beiden Modulen):
OK+B9600
OK+RC004
OK+RP: +8 dBm
OK+FU3
Aber ansonsten verhält sich die Technik leider nicht wie in der Quelle zu lesen. Die Schaltung ist auch exakt genau so. Selbst die Microcontroller sind Nanos.
Arduino links meldet gar nichts. Es sollte ja auch auf dem rechten etwas ankommen. Wenn ich rechts was eingebe sollte es links erscheinen aber statt dessen erscheinen rechts Hieroglyphen als wäre die Baudrate falsche. Ich habe alle durchprobiert.
Was kann das sein? Ich bin um jeden Tipp dankbar. Habe jetzt ca. 3h experimentiert und bin mit meinen Ideen am Ende.
Hoffe ihr könnt helfen oder habt Ideen, was ich noch versuchen könnte. Danke vorab!
Please post in English in the English language forum.
Thank you for your advice. I changed the category and hope that my post will be shifted to the German part of the forum.
Dann poste doch bitte ein Schaltbild, wie du alles verdrahtet hast, und die aktuellen Sketche, die du verwendest. Auch , wie deine Einstellungen in der IDE sind interessant bzw. wichtig.
Danke für Ihre Rückmeldung. Aber ich habe doch alles gepostet. Das Schaltbild ist exakt wie im Link. Das Coding exakt genauso. Sogar der Controller ist ein Nano (zufällig, weil ich gerade einen verfügbar hatte)
#include <SoftwareSerial.h>
SoftwareSerial hc12(10,11);
void setup() {
Serial.begin(9600);
hc12.begin(9600);
Serial.println("Let's start!");
}
void loop() {
if (hc12.available()) {
Serial.write(hc12.read());
}
if (Serial.available()) {
hc12.write(Serial.read());
}
}
Welche Einstellungen in der IDE meinen Sie? Nano 386P (old Bootloader); Serieller Monitor 9600 Baud, Arduino 1 COM3 Arduino 2 COM10...?
Ok, nur wir hatten hier schon oft Fehler, weil es eben nicht genau nach Anleitung aufgebaut war. Welche IDE-Version verwendest du ?
Schon mal die RX/TX Leitungen getauscht?
Auf die Idee bin ich noch nicht gekommen, denn dann wäre es ja falsch. RX muss auf TX und TX auf RX. wenn ich es tausche würde ich RX mit RX und TX mit TX verbinden. Letzteres dürfte nicht richtig sein. Aber ich versuche es (wahrscheinlich), in der Hoffnung das nichts kaputt geht.
Ich habe echt wirklich viel probiert. Ich hoffe die Module wurden mir nicht defekt geliefert. Aber dann dürfte doch auch die Kommunikation über die AT Befehle nicht funktionieren, oder?
Hallo Tom,
die HC-12 habe ich als recht unproblematisch in Erinnerung. Es könnte auch an der Verkabelung liegen, ein Steckbrett samt DupontKabel ist nicht so zuverlässig, oft genug lagen meine Probleme daran ... Andererseits kannst Du schon einen defekten HC-12 erwischt haben.
Sind die aus einer Lieferung, es soll unterschiedliche geben, die nicht mit anderen HC-12 harmonieren. Hast Du eine Antenne an beiden dran? Draht von 17cm oder die kleinen Spirellis? Evtl. ma doppelt verkabeln, also 2x GND, 2x Power, ... erhöht die Warscheinlichkeit eines besseren Kontaktes ... Wie weit stehen die 2 Transceiver auseinander?
Gruß André
1 Like
Ich habe jetzt nochmal rumprobiert. Dabei ist mir aufgefallen, dass eines von den beiden Modulen nach kurzer Zeit <1min heiß wird. Aussortiert und ein neues bestellt. Soll morgen schon geliefert werden. Ich glaube das ist defekt. Das andere Modul, welches die Hieroglyphen im Seriellen Monitor angezeigt hat schreibt jetzt ERROR. Vermutlich weil seine Signale nicht entgegengenommen werden. Warum da nun plötzlich was im Klartext zu lesen ist (ERROR) weiß ich nicht. Vielleicht war das wirklich ein schlechter Kontakt.
Zu deinen Fragen: die Module stehen nebeneinander (Luftlinie 40cm). Auch später (falls alles so klappt wie ich es mir vorstelle) wird die Entfernung nicht größer als 10m sein). Als Antennen nehme ich die kleinen die dabei waren. Größere gehen auch nicht. Wenn es auf die kurze Distanz ganz ohne Antenne geht würde ich das sogar realisieren oder ich muss eine Verlängerung für die Antenne bauen. Soweit bin ich aber noch nicht. Erst mal muss das grundsätzlich laufen. Falls nicht ist es auch nicht schlimm. Wollte es eh mal probieren per Funk zu senden. Momentan mache ich alles nur mit BT (Arduino <-> App)
Die IDE-Version setze ich noch nicht ein, kann daher nicht viel dazu sagen.
Mich wunderte nur, dass du mit einer IDE-Instanz 2 verschiedene Controller bzw. Com-Ports nutzen kannst. Das geht sonst nur mit einer portablen Installation.
Das mit den kleinen, beiliegenden Antennen ist ok und reicht ganz sicher für deine 10 m.
Ohne Antennen solltest du es nicht machen, da du dabei u.U. Probleme bekommen kannst, die die Module evtl. zerstören.
Okay. Danke für den Tipp. Warum kann das passieren?
Bei einer falsch oder schlecht angepassten Antenne, bzw. ohne Antenne wird die Sendeenergie nicht abgestrahlt, sondern fließt zurück in die Senderendstufe, die dadurch überhitzt und deshalb kaputt gehen kann.
1 Like
Oh je... das macht natürlich Sinn. Vielleicht hätte ich heute gleich zwei neue Module bestellen sollen
Danke für die Erklärung. Wieder was gelernt.
Heute kam die Bestellung, Zusammengelötet. Probiert. Es funktioniert. Juhu... ganz so einfach wie in dem oben dargestellten Link zu finden. Hatte halt leider Pech.
@HotSystems auch das mit den zwei offenen IDE' s funktioniert. Man muss nur drauf achten, die Port anzupassen. Wenn man das zweite Fenster öffnet kommt das ab und zu durcheinander. Ich kontrolliere das dann und justiere ggf. nach.
Jetzt hätte ich aber noch eine Frage an die Technikexperten (ich bin es leider nicht). Und zwar hat hier Wireless Doorbell (electronicshub.org) jemand eine Klingel per Funk gebaut. Das für mich spannende ist nun, dass man dafür auf Senderseite keinen Mikrocontroller benötigt. Dort ist einfach nur ein Taster. Wenn gedrückt wird ein Signal gesendet und im MC auf Empfängerseite ausgewertet.
In order to ring the bell (or buzzer in this case), we need to push the button on the transmitter side of the circuit. When the button is pushed on the transmitter side, a logic ‘0’ will be detected by the Encoder IC. The Encoder IC will transmit this data serially through the RF Transmitter Module.
The transmitted data will be received by the RF Receiver Module and is given to the Decoder IC. The Decoder IC, then decodes the serial data to parallel data and transmits the Logic ‘0’ to Arduino.
In the Arduino UNO’s, it is programmed such that, whenever a Logic ‘0’ is detected by the Arduino, the buzzer is turned on. Hence, whenever the button is pressed, the buzzer is turned on wirelessly.
Im genannten Projekt wird allerdings kein Modul sondern werden einzelne Komponenten verwendet. Würde das mit meinen Modul https://www.amazon.de/dp/B0BYNG2524?psc=1&ref=ppx_yo2ov_dt_b_product_details auch funktionieren und wenn ja wie? Ohne das es einen Kurzschluss gibt 
Schön, dass es jetzt funktioniert. Es kann ja immer sein, dass man ein defektes Teil bekommt.
Das von dir verlinkte Modul ist ein reiner Transceiver. Der braucht noch einen Controller, der die notwendigen Daten aufbereitet.
Wenn du etwas einfaches willst, kannst du einen kleinen Handsender dafür nutzen. Oder du baust etwas aus den Beispielen der von dir verlinkten Webseite. Z.B. das mit dem IC HT-12E.
Was die IDE betrifft, das funktioniert eben erst mit der neueren Version, die ich noch nicht einsetzen möchte.
Edit:
Du musst allerdings auch darauf achten, dass die verwendeten Module (Sender, Empfänger und Transceiver) auch miteinander kompatibel sind. Da reicht nicht nur die Freuqenz, auch die Modulationsart und das Datenprotokoll muss passen.
1 Like
Das mit dem Handsender ist natürlich eine Mega-Idee. Allerdings müsste ich den dann auch demontieren. Ich plane 3,7V als Spannungsquelle zu nehmen. Eine kleinen Mikrocontroller hatte ich mir bestellt. Einen Pro Mini. Nur leider erscheint der mir immer noch zu groß. Gibt es evtl. in diesem Bereich noch eine Alternative? Der MC muss nix können außer auf einen Button zu reagieren und dann an das Modul eben einen Wert übergeben, so wie auch im Beispielsketch (123, oder hallo1). Ich bin noch nicht so lange im Thema und habe jetzt meist mit dem Nano und dem Uno R3 gearbeitet, wobei ich in meinen Projekten bisher immer den Nano verbaut habe. Das ist aber alles zu groß.
Klar kann das passieren. Es ist nur schade um die Zeit die ich verschwendet habe und auch um Eure, denn auch ihr habt Euch unnötige Gedanken zum Thema gemacht. Mir fehlt da vielleicht auch noch ein wenige Erfahrung bzw. Vertrauen in mich selbst (also um sich damit zurecht zu geben, dass es eben auch mal an der Hardware liegen kann). Deshalb Sorry in die Runde!
Ist ok, wir helfen gern, mit den richtigen und notwendigen Informationen ist das ok und macht auch Spaß. 