Go Down

Topic: Funkempfang auf Nano (pin/interrupt problem?) (Read 3881 times) previous topic - next topic

Theseus

Da ist am Nano was faul. Also defekte Kabel, schlechter Kontakt, kalte Lötstellen, usw. am Nano. Aus der Ferne lässt sich da nicht mehr Ursachenforschung betreiben.

HotSystems

Das ist falsch, der Empfänger hat keine "interne Antenne", da solltest du unbedingt eine anschließen.
Diese billigen Mistdinger brauchen eine. Ohne Antenne geht garnichts.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

karlj

Ich denke auch am Arduino stimmt was nicht, denn der Code passt, das Funkmodul funktioniert grundsätzlich und die Fernbedienung ebenfalls. Pins sind auch nicht vertauscht. Also bleibt ja nichts anderes mehr.

Klar brauchen die billigteile im endgültigen Einsatz eine Antenne, aber sie sollten unter den selben Bedingungen unter denen sie am Mega funktionieren ja ebenfalls am Nano ihren Dienst tun.

Ich habe übrigens auch mal ein einfaches Multimeter genommen um die Spannung am Data Pin des Receivers sichtbar zu Machen. Klar, taugt das dafür nur sehr eingeschränkt, da es sich ja nicht um eine konstante Spannung handelt, aber es ist trotzdem ein messbarer Effekt bei gedrückter Fernbedienung erkennbar, sodass ich mir mittlerweile ziemlich sicher bin, dass am Nano etwas defekt ist. Die Lötstellen der einzelnen Pins werde ich nachher mal prüfen, aber ich denke weitergehende Nachforschungen in dieser Richtung lohnen nicht wirklich.

Vielen Dank für eure Hilfe!

karlj

Und es geht! :)

Nachdem ich die Lötstellen der benutzten Pins geprüft und keinen Fehler gefunden hatte, kam mir noch eine letzte Idee. Eine andere Spannungsversorgung. Das Problem lag wohl in der Spannungsversorgung über den USB Anschluss meines PCs. Habe Testweise mal den Mega als 5V Stromquelle genutzt und zack, die Funkübertragung funktioniert fehlerlos

HotSystems

Du machst Spaß, oder ?

Naja, Hauptsache es geht. ;)
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

uwefed

Sorry, da hat wohl was mit dem Bild nicht funktioniert. Hoffe das klappt hier jetzt.
laut http://www.pighixxx.com/test/pinouts/boards/nano.pdf und https://www.arduino.cc/en/Main/ArduinoBoardNano ist D2 der fünfte Pin von links auf der oberen Reihe in Deinem Bild. Du hast die Kabel auf den vierten und sechsten Pin gesteckt (GND und D3 (Interrupt 1))



Grüße Uwe

karlj

Du machst Spaß, oder ?

Naja, Hauptsache es geht. ;)

Leider kein Spaß, aber naja jetzt läuft es wenigstens. abgesehen davon, dass ich jetzt andere Probleme habe, weil mein Code komische Sachen macht :D

HotSystems

Leider kein Spaß, aber naja jetzt läuft es wenigstens. abgesehen davon, dass ich jetzt andere Probleme habe, weil mein Code komische Sachen macht :D
Welcher Code ?

Und was sind "komische Sachen" ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

karlj

Der Code, welcher das über virtual Wire empfangene Signal auswertet.

Wenn ich vor einer for-Schleife einen char-Array über serial ausgeben lassen wird die Zeile nach der Schleife auch schon ausgeführt, dann die Schleife und dann läuft es normal weiter.

Ich habe dazu einen Testsketch erstellt, der das gleich Problem hat. Ganz ohne virtual Wire. Und dazu einen eigenen Thread erstellt.

http://forum.arduino.cc/index.php?topic=436777.0

karlj

jetzt noch ein anderes "problem". Naja ich kann den Code so schreiben, dass er trotzdem funktioniert, aber ich verstehe trotzdem nicht, wieso die Zeichen hinten angehängt werden.

Also ich habe mir die empfangenen Daten von Virtual Wire zuerst in einen char-Arrray Namens "puffer" geschrieben, dann will ich mir den 2. und 3. char in einen anderen Array "ID" schreiben. Das funktioniert auch, allerdings werden die in "ID" gespeicherten Zeichen gleichzeitig auch an "puffer" angehängt und das obwohl dieser mit Länge 4 bereits voll sein sollte.

Code: [Select]

for (int j=1; j<3; j++) {
            ID [j-1] = puffer[j];
            Serial.println(j);
            Serial.println(puffer);
            Serial.println(ID);
         }


Dies ist der Code Schnipsel, in welchem das Problem auftritt. Die serielle Ausgabe mache ich nur zu Testzwecken, aber dadurch ist mir das überhaupt erst aufgefallen.

Tommy56

Ist puffer mit '\0' abgeschlossen?
ID ist es nach Deinem Codefragment garantiert nicht.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

karlj

stimmt, das hatte ich ursprünglich mal drin. Habe ich wohl zwischenzeitlich gelöscht/beim herumprobieren rausgestrichen. Baue ich mal wieder ein. Danke!

Go Up