Arduino Nano Nebenläufigkeit oder Timer ohne PWM zu beeinflussen

Hallo,

ich bin dabei meine ersten Arduino Projekte zu realisieren. Macht wirklich Spass - jetzt stehe ich allerdings vor dem ersten Problemen, das ich trotz intensiver Recherche noch nicht lösen konnte.

Ich möchte mit einem nebenläufigen Prozess auf einem Arduino Nano bzw ProMini einen 433MHz Empfänger überwachen, und gewisse Signale in eine globale / volatile Variable schreiben.

In dem Projekt werden des weiteren 6 LEDs über die PWM Pins (3, 5, 6, 9, 10 und 11) gedimmt.

Mein erster Versuch über das timerOne Lib scheitert nun leider, da ich die 433MHz Funktion zwar hierüber regelmäßig aufrufen lassen kann. Als unerwünschter Nebeneffekt wird offensichtlich aber leider auch das PWM Timing mit beeinflusst. Einige LEDs haben nicht mehr 100% Leuchtkraft... ;-)

Wie kann ich nun Funktionen regelmäßig vom 328 aufrufen lassen, ohne die PWM timings zu beeinflussen ?

Vielen Dank im voraus, MarcJ

PS: Ich hatte auch versucht den 433MHz Empfänger (hängt am digital Pin2) mit einem Interrupt zu verbinden. Da aber auf 433MHz ein gleichmäßiges Grundrauschen liegt, wird der Interrupt permanent ausgelöst.

Wie kann ich nun Funktionen regelmäßig vom 328 aufrufen lassen, ohne die PWM timings zu beeinflussen ?

In dem du z.B. einen PCA9685 als PWM Generator einsetzt

An eine ähnliche Lösung dachte ich auch schon. Dann würde ich aber wohl eher einen 2. Arduino ProMini anschließen, den Zustand der empfangenen 433MHz Befehle an 2 Pins überträgt… Das ist aber echt keine schöne Lösung.

Kann das Problem nicht mit einem Arduino ohne zusätzlichen Hardware-Aufwand gelöst werden ?!

Jeder Timer steuert 2 PWM Pins (auf dem Mega bis zu 3). Wenn du einen Timer für was anderes verendest, geht auf den entsprechenden Pins gar kein PWM mehr.

3 Timer, 5 Aufgaben. Ein typischer Fall von Resourcenmangel.

Marcj: PS: Ich hatte auch versucht den 433MHz Empfänger (hängt am digital Pin2) mit einem Interrupt zu verbinden. Da aber auf 433MHz ein gleichmäßiges Grundrauschen liegt, wird der Interrupt permanent ausgelöst.

Für die billigen Empfänger für ASK/OOK modulierte Signale ist ein Hardwareinterrupt schon der richtige Ansatz. Vorallem, wenn Du alle drei Timer bereits für 6 PWM-Ausgänge in Gebrauch hast.

Aber Du mußt die Signale dabei eben aus dem Rauschen herausfischen.

Bei ASK/OOK Modulation und mit Billigstempfängern funktioniert das nur, wenn der Sender auch ein passendes (und dabei möglichst kurzes) Übertragungsprotokoll benutzt.

Was und womit willst Du denn senden?