VirtualWire.h und LedControl.h verstehen sich nicht

Hallo zusammen,

ich habe vor eine Wetterstation zu bauen, bei der die Außentemperatur über ein 433 MHz Sender-Empfängerpaar an den Hauptcontroller gesendet wird (Atmega328-P PU). Dieser soll die Temperatur über ein 8-Digit LED Display ausgeben.
Problem: Der Timer Interrupt der Virtual Wire Bibliothek scheint die Verbindung zwischen dem Controller und der Anzeige zu stören und andersrum. Es ist also möglich Temperaturwerte zu empfangen, dann bleibt aber der Display dunkel. Wenn ich den Bildschirm an andere Pins stecke, kann es passieren, dass der Display aufleuchtet aber keine Daten mehr eingelesen werden von dem Empfängermodul. Wenn ich nun die Stecker des Bildschirms herausziehe funktioniert das Dateneinlesen wieder ohne Problem.

Hat jemand Erfahrung damit, bzw. könnte sich jemand vorstellen wo mein Fehler liegt.

Vielen Dank im voraus

Bene

Das hört sich für mich so an, als wenn Du das 8-Digit LED-Display vom Arduino aus mit Strom versorgst!?
Wenn ja, das ist zuviel für den Spannungsregler auf dem Arduino.

Ansonsten poste mal Deinen Schaltplan bzw. wie Du das Ganze angschlossen hast.
Und Dein bisheriges Programm wäre auch ganz hilfreich.

BeneH:
Hat jemand Erfahrung damit, bzw. könnte sich jemand vorstellen wo mein Fehler liegt.

Klar, du schreibst Text, den keiner versteht und der Sketch sowie das Schaltbild bleiben geheim.

Das hört sich für mich so an, als wenn Du das 8-Digit LED-Display vom Arduino aus mit Strom versorgst!?
Wenn ja, das ist zuviel für den Spannungsregler auf dem Arduino.

Ja da hast du recht, ich habe es direkt an die 5V des Arduino gehängt, wobei der Display als Einzelbeschaltung gut funktioniert hat.

HotSystems:
Klar, du schreibst Text, den keiner versteht und der Sketch sowie das Schaltbild bleiben geheim.

Das tut mir leid, wenn es nicht verständlich war. Problem nochmal kurz zusammengefasst: Display geht nicht an wenn über Funk Daten empfangen werden, bzw. wenn ich aus der VirtualWire Bibliothek den Befehl vw_setup(2000); // Bits per sec einfüge.

Empf_nger.ino (3.43 KB)

Der Timer Interrupt der Virtual Wire Bibliothek scheint die Verbindung zwischen dem Controller und der Anzeige zu stören und andersrum.

Oder es ist ein elektrisches Problem, und die Funkübertragung stört den DisplayController.
Hast du zum Test 2 Arduinos? Dann könnte evtl. eine elektrische Störung zwar auch weg sein, enen gemeinsamen Timer haben die zwei Libraries aber auf keinen Fall mehr.

Was die Libraries machen, kann man nachsehen. Wenn man weiss, was genau "LedControl.h" ist.
Von VirtualWire gibt es übrigens auch verschiedene Versionen.

Bitte setze den Sketch direkt ins Forum.

Als Datei kann ich das Teil im Tablet nicht lesen.

Verwende dazu Code-Tags (Schaltfläche </>) oben links im Editor.

Wie versorgst du den Arduino und welchen hast du ?

Bei USB kann der Strom für das Display aus 5 Volt schon zu hoch sein.

Vielen Dank für die schnelle Hilfe, aber ich glaube ich habe das Problem gefunden.

Und zwar ist in der LedControl Bibliothek eine Pinbelegung vorgeschlagen. 12 für DIN, 11 für CLK und 10 für CS.
Diese Kombination kann man nicht nutzen, da der Timerinterrupt, der VirtualWire Bibliothek den Timer1 beansprucht und dieser auf PIN 9 und 10 zugreift, somit das Signal auf beiden kapputt macht.
Man muss sich somit drei andere PINS suchen.
Die Wahl der PINS ist aber, wie anfangs gedacht, nicht egal. DIN muss auf einem 'normalen' PIN liegen z.B. 8 und die beiden anderen müssen jedoch auf einem PWM PIN liegen, z.B. 5 und 3.
Jetzt funktioniert alles :wink:

Viele Grüße
Bene