Funkknöpfe mit NRF24L01+

OP #3368633
Lesenswert?

Hallo,

ich möchte an meinen Arduino gerne sechs Funkknöpfe (Buzzer) mittels 
NRF24L01+ Modulen anbinden. Dh am Arduino hängt ein Modul und jeweils 
eines an den Buzzern. Wenn jetzt einer gedrückt wird, muss ich wissen 
welcher es war.

Dafür gibt es ja zwei Varianten:
A: Jeder Buzzer bekommt eine eigene Adresse und das Hauptmodul lauscht 
auf allen Adressen und wartet auf einen Drücker.

B: Alle Buzzer haben die gleiche Adresse und senden beim Drücken einen 
bestimmten Code mit, um den Buzzer zu identifizieren.

Erste Frage: Welche Lösung wäre zuverlässiger und weniger 
störungsanfällig?

Zweite Frage: Gibt es dafür vielleicht schon Code Samples oder 
Tutorials? Die meisten Anleitungen beziehen sich auf das verbinden von 
mehreren Arduino Controllern.


Danke vielmals!
#3368638
Lesenswert?

Hast du dir mal das Datenblatt angesehen? Der NRF kann auf bis zu 6 
Adressen lauschen. Alternativ definierst du einfach eine 
Broadcast-Adresse und sendest im Paket den Absender mit dazu. Es gibt 
sogar eine Collision Detection/automatischer Ack mit selbstständigem 
Retry in konfigurierbaren Abständen.

Guck doch bitte einfach mal ins Datenblatt, der NRF ist so simpel zu 
programmieren, wenn man die Konfiguration zusammen hat läuft der Rest 
schon fast mit Autopilot.
OP #3368698
Lesenswert?

Danke für die schnelle Antwort.

Ja, diese Funktion ist mir bekannt und ist ja auch die Lösungsvariante 
A. Meine Frage ist halt, ob man abschätzen kann, welche Lösung 
zuverlässiger ist und weniger Probleme beim fast gleichzeitigen Drücken 
von zwei Buzzern macht.

Ich werde mir das Datenblatt nochmal genau ansehen. In den ganzen 
Anleitungen geht es aber immer um mehrere Arduinos und ich war da 
einfach ein wenig unsicher und wollte fragen, ob es dafür einen Sample 
Code gibt...
OP #3368868
Lesenswert?

ok, dann würde ich die lösung mit der gleichen adresse für alles und dem 
senden eines eindeutigen codes bevorzugen.

andere frage zur programmierung: bei den funkknöpfen ist ja dann nur der 
funkchip verbaut, mit dem buzzer und einer batterie. das heißt ich muss 
vorher in das modul eine fixe adresse, einen sendecode und eventuelle 
einstellungen zur collision detection festlegen.

würde das so hinhauen und merkt der chip sich auch alle einträge, wenn 
mal der strom verloren geht?
#3368879
Lesenswert?

Ganz so einfach ist es nicht, das Modul kann nicht autark laufen. Du 
brauchst schon einen kleinen Mikrocontroller, der das steuert. Spontan 
würde mir da die Größenordnung Attiny24 einfallen, da hast du dann auch 
noch was Platz für Taster/Led.

Die Adresse kannst du dann direkt im Flash hinterlegen oder ins Eeprom 
schreiben.
OP #3369505
Lesenswert?

verstehe verstehe. da lag wohl ein denkfehler meinerseits vor. der 
attiny24 wär sicher auch noch im budget drinnen :)

hätte da aber noch eine andere frage. bei unserem projekt sind die 
buzzer jetzt über kabel angeschlossen. bei einem drücker, wird am 
entsprechenden pin das potential angehoben, wobei der arduino darauf 
reagiert und ein entsprechendes signal an den angeschlossenen pc 
weitergibt.

jetzt ist die frage, wie man beide varianten kombinieren kann, damit man 
im notfall auf kabellösung zurückgreifen kann.

was wäre, wenn man am hauptempfänger noch einen mikrocontroller verbaut, 
der sich um die funkkommunikation und adresszuteilung kümmert (eventuell 
auch ein attiny24). wäre es dann technisch (ohne großen aufwand) 
möglich, dass man dann auch hier das potential des entsprechenden pins 
anhebt und quasi einen drücker der kabellösung simuliert?

kann jetzt sein, dass ich viel zu kompliziert denke, aber so könnte man 
theoretisch beide varianten parallel fahren...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren