bin seit heute neu in dem Forum und seit kurzer Zeit auch neu in der Programmierung des Arduinos.
Nun zu meinem Problem: Ich versuche derzeit den Arduino Mega 2650 mit zwei oder mehreren RFID-Lesegeräten auszustatten. Leider gelingt mir dies nicht.
Ich benutze die Beispiele aus der Libary von miguelbalboa bzw das Beispiel "ReadUidMultiReader" aus der neusten Version direkt über die Software zum programmieren heruntergeladen. Die Pins schließe ich alle zusammen bis auf SS, dort benutze ich jeweils SS1=53 und SS2=43.
Problem hierbei ist, das er wenn ich beide zusammenstecke der arduino keins von beiden Lesegeräten findet. Nehme ich ein Lesegerät hingegen vom Strom weg und benutze trotzdem den gleichen Code erkennt er das lesegerät welches noch verbunden ist. Das verbundene Lesegerät kann dann auch Tags auslesen..
PS: Beide Lesegeräte funktionieren
RFID-RC522
Gibt es hier noch etwas zu beachten? Bzw was mache ich falsch? Funktioniert dies einfach nicht auf dem Mega?
ja das ist ja das Beispiel welches ich versuche zu verwenden. Leider gibt er mir immer die Ausgabe:
Reader 0: Firmware Version: 0x0 = (unknown)
WARNING: Communication failure, is the MFRC522 properly connected?
Reader 1: Firmware Version: 0x0 = (unknown)
WARNING: Communication failure, is the MFRC522 properly connected?
Pin Belegung habe ich auch beachtet und schon locker 10 mal kontrolliert. Wenn ich das MISO Kabel des einen Lesegerätes trenne geht der andere auch wieder.
Aber halt immer nur einer. Egal welchen ich abziehe, der andere geht danach.
Anscheinend ist hier ein Fehler bei der Kommunikation. Ich wüsste aber nicht wie ich das verändern soll, das der zweite Reader einen extra MISO anschluss bekommt. Schließlich ist der RFID-RC522 ja nur über SS und RST definiert.
Es gibt auch manches Mal fehlerhafte SPI-Module, die sich nicht hochohmig schalten, wenn sie nicht angewählt sind. Viele Ethernetmodule hatten/haben z.B. diesen Fehler.
was bedeutet das für mich? Muss ich mir einen anderen Arduino zulegen oder kann man das reparieren oder ähnliches. habe von dem Arduinno noch nicht wirklich die Ahnung.
Nimm nur 1 Modul. Setze SS des Moduls auf HIGH. Messe die Spannung am MISO -Ausgang.
Ist sie LOW oder HIGH ist das Modul evtl. defekt.
Bei laufendem Betrieb oder ohne andere Anbindungen,Strom etc?
Passt der Code dann so?
#include <SPI.h>
byte ssPin = 53;
byte miPin = 50;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
SPI.begin();
pinMode(ssPin,OUTPUT);
pinMode(miPin,INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ssPin,HIGH);
Serial.print("Status des ssPin ist:");
Serial.println(digitalRead(ssPin));
Serial.print("Status des miPin ist:");
Serial.println(digitalRead(miPin));
delay(1000);
}
Der Kommentar war lediglich für mich.
Ich habe noch nicht viel Ahnung vom Programmieren und deswegen der Kommentar.
Was dein Kommentar jetzt hier zu suchen hat ist wohl die wichtigere Frage, helfen tut er mir nämlich bei meinem Problem mit den RFID-Lesegeräten nicht.
Doch doch - Der hilft Dir - denn auch Du wirst Dich, gerade in Deiner Situation - noch nicht wirklich viel Durchblick, in zwei Wochen fragen, WAS MACHE ICH HIER ÜBERHAUPT - und dann ist der Kommentar 'digitalWrite(ssPin,HIGH)' leider Nichts wert - denn genau Das steht schon vorne.
Sollten die Kommentare nicht allgemein für die Leser Deiner Sketche gedacht sein, müssen wir hier gar nicht weiter machen - ohne Kommentaren ist JEDER Sketch nach kürzester Zeit kaum noch zu verstehen - wenn dann noch 'interessante' Programmier-Wege hinzu kommen, war's Das komplett.
Wenn Du keine Hilfe haben möchtest, verstehe ich Dich aber noch viel weniger - angeben täte man eher mit einem funktionierendem Sketch.
MfG
PS: Ich kann aber auch locker ohne Dich - weil Dein Kommentar hilft nun wirklich Keinem!
Dein Problem habe ich durchaus verinnerlicht, Du aber die Lösungswege der anderen Kommentatoren, noch nicht wirklich.
Den SS-Pin HIGH setzen ginge auch mit einem Stück Draht.
Du kannst aber auch mit dem Arduino messen, was der Miso-Pin so treibt.
Dazu den MISO-Pin an einen analogIN, gerne je Widerstände >1K nach Vdd und GND - somit ergibt sich aufgrund dieses Spannungsteiler Vdd/2 auf dem MISO-Pin - können wir am Analog-Pin A0 messen (und ausgeben).
Wenn SS auf HIGH gesetzt ist, MUSS der Wert 'auf der Hälfte' liegen - der SPI-Slave MUSS den MISO-Pin 'los lassen' - wenn der Pin weiter auf HIGH oder LOW liegt - ist der Slaver 'nicht teamfähig' - dann braucht's auch keinen Bus - Single-Sensoren gehen auch an Single-Pins (aber eben keine SPI-Sensoren, Die brauchen SPI, auch, wenn Sie nicht ruhig werden -> Ausschuss).
Sollten die Kommentare nicht allgemein für die Leser Deiner Sketche gedacht sein, müssen wir hier gar nicht weiter machen - ohne Kommentaren ist JEDER Sketch nach kürzester Zeit kaum noch zu verstehen - wenn dann noch 'interessante' Programmier-Wege hinzu kommen, war's Das komplett.
und das kann ich nur bestätigen.
Ein schlecht kommentierter Code ist kein brauchbarer Code.
Spätestens wenn der Code in mehr als einem Tab steht und eher zusammenkopiert als selber geschrieben, wird es später ganz schwer durchzusteigen.
Was mich aber viel mehr ärgert, das Du Deinen Code im Post offenbar nach der Kritik verändert hast OHNE dies anzumerken.
Das sehe ich problematisch - denn ich sehe jetzt zum ersten Mal in den Thread und musste erst die Uhrzeiten der Beiträge vergleichen um dem inhaltlich zu folgen.