ich hab ein kleines Programm "erstellt" (von irgendwo kopiert), das auf meinem
Arduino Leonardo funktioniert. Am Leonardo ist ein RDM6300 angeschlossen, der
wenn er einen RFID Tag erkennt per "serial" die Infos an den Arduino übergibt.
Funktioniert wie gesagt.
Jetzt hab ich mir einen Arduino Pro Micro besorgt, der ja eigentlich genau das
gleiche sein sollte, wie der Leonardo. Also den Sketch auf den Micro kompiliert.
Das Programm selber scheint auch zu laufen. Leider wird der RDM nicht erkannt,
bzw. der RFID Tags werden nicht erkannt. Hab schon div. Pins ausprobiert.
Am Leonardo war es Pin10 (alle anderen Pins haben nicht funktioniert)
am Micro hab ich deswegen auch mit Pin10 probiert, leider erfolglos. Auch Pins
2, 6 und 9 gingen nicht...
jemand ne Idee, wieso es am Leonardo funktioniert, am Micro aber nicht ?
Wollt nur mal grob nachfragen, ob es da ein bekanntes "Problem" gibt... deswegen hab ich da noch gespart.. könnte ja sein das einer sagt... ja ne.. is klar das da nicht geht.. Lenoardo Pin 10 = Micro Pin xy..
aber gut.. kein Thema.. reich ich natürlich gern nach..
hier der Sketch
#include <rdm630.h>
#include <Keyboard.h>
rdm630 rfid(10, 11); //TX-pin of RDM630 connected to Arduino pin 6
byte data[6];
byte length;
byte sperre = 1;
unsigned long previousMillis = 0;
const long interval = 2000;
String ID_hex="";
String pw = "dein Passwort";
char ctrlKey = KEY_RETURN;
byte n= 0;
void setup()
{
Serial.begin(9600); // start serial to PC
rfid.begin();
Keyboard.begin();
}
void loop()
{
unsigned long currentMillis = millis();
unsigned long divMillis = (currentMillis - previousMillis);
if(rfid.available()&&sperre==0){
rfid.getData(data,length);
Serial.println("Data valid");
for(int i=0;i<length;i++){
//Serial.print(data[i],HEX);
//Serial.print(" ");
ID_hex = ID_hex + String(data[i],HEX);
}
Serial.print("hex CardID: ");
Serial.println(ID_hex);
//Serial.println("");
//Keyboard.print(resultHEX);
if (ID_hex=="700abcdefg" || ID_hex=="40abcdefg") {
Keyboard.print(pw);
}
else
{
Keyboard.print(ID_hex);
}
Keyboard.releaseAll(); //Release all keyboard buttons
delay(200); //Wait 200ms before hitting ENTER
Keyboard.press(ctrlKey); //Hit ENTER
Keyboard.releaseAll(); //Release all keyboard buttons
//concatenate the bytes in the data array to one long which can be
//rendered as a decimal number
unsigned long result =
((unsigned long int)data[1]<<24) +
((unsigned long int)data[2]<<16) +
((unsigned long int)data[3]<<8) +
data[4];
Serial.print("decimal CardID: ");
Serial.println(result);
// Serial.println (sperre);
// Serial.println (currentMillis);
// Serial.println (previousMillis);
Serial.print("Interval: ");
Serial.println (divMillis);
Serial.println("");
ID_hex = "";
sperre=1;
}
if (divMillis >= interval) {
previousMillis = currentMillis;
sperre=0;
}
}
Schaltbild ist auch recht einfach:
RDM6300 am Leonardo:
GRD/VCC an GRD/VCC
TX an Pin 10
Hab das jetzt am "RAW" Pin des Micros angeschlossen.. der gibt knapp 5V raus..
Das funktioniert.. ist vielleicht nicht sauber, aber hauptsache es geht ... ist ja nur
für ein kleines Bastelprojekt.. dafür tuts das schon..
@HotSystems, danke jedenfalls ... Schaltbild... pfff... wer braucht schon sowas
Brick01:
Hab das jetzt am "RAW" Pin des Micros angeschlossen.. der gibt knapp 5V raus..
Das funktioniert.. ist vielleicht nicht sauber, aber hauptsache es geht ... ist ja nur
für ein kleines Bastelprojekt.. dafür tuts das schon..
@HotSystems, danke jedenfalls ... Schaltbild... pfff... wer braucht schon sowas
Da du mit 5V vom RFID-Leser in den 3,3V-Arduino gehst, ist das weder für den RFID-Leser noch für den ProMicro gut. Du solltest einen Spannungsteiler zur Pegelanpassung vorsehen. All so was sieht man mit einem Schaltbild und wenn es mal eben auf Papier hingekrakelt ist.
Das mit den 5V ist mir gestern Abend auch aufgefallen.. hab mir jetzt einen Step Down Wandler bestellt..
Leider ist der 3,3V doch irgendwie lahm... (8Mhz)... Eingaben werden da echt nur verzögert abgearbeitet..Hab mir deswegen jetzt auch noch mal die 5V Version bestellt..