• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pomoc w połączeniu
#1
Witam.
Z góry nadmieniam że to mój pierwszy post na tym forum i jestem bardzo początkującym jeśli chodzi o arduino więc proszę o wyrozumiałość.
Mam Arduino UNO R3 oraz bezpośrednio Keypad Shield 1602 do tego próbuje podłączyć moduł RFID MFRC522.
Sam moduł Rfid z arduino działa natomiast z Keypadem już nie. Wiem że zarówno Keypad jak i Rfid korzystają z pinu 10 dlatego odizolowałem go w Keypadzie jednak dalej nie jest to dobrze skonfigurowane bo na wyświetlaczu pojawiają się krzaki.
Próbowałem też po I2C jednak jest wtedy problem z Rfid.

Pomóżcie jak to razem spiąć
 
Odpowiedź
#2
daj kod spróbujemy pokombinować z połączeniami
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#3
Sorki że tak długo ale byłem na weekendzie.
Kod z przykładu ReadNUID z dopisanym kodem do lcd

Kod:
#include <SPI.h>
#include <MFRC522.h>
#include <LiquidCrystal.h>

#define SS_PIN 10
#define RST_PIN 9
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class

MFRC522::MIFARE_Key key;

// Init array that will store new NUID
byte nuidPICC[3];

void setup() {
 lcd.begin(16, 2);
  lcd.clear();
 lcd.print("Start");
 Serial.begin(9600);
 SPI.begin(); // Init SPI bus
 rfid.PCD_Init(); // Init MFRC522

 for (byte i = 0; i < 6; i++) {
   key.keyByte[i] = 0xFF;
 }

 Serial.println(F("This code scan the MIFARE Classsic NUID."));
 Serial.print(F("Using the following key:"));
 printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
}

void loop() {

 // Look for new cards
 if ( ! rfid.PICC_IsNewCardPresent())
   return;

 // Verify if the NUID has been readed
 if ( ! rfid.PICC_ReadCardSerial())
   return;

 Serial.print(F("PICC type: "));
 MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
 Serial.println(rfid.PICC_GetTypeName(piccType));

 // Check is the PICC of Classic MIFARE type
 if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&  
   piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
   piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
   Serial.println(F("Your tag is not of type MIFARE Classic."));
   return;
 }

 if (rfid.uid.uidByte[0] != nuidPICC[0] ||
   rfid.uid.uidByte[1] != nuidPICC[1] ||
   rfid.uid.uidByte[2] != nuidPICC[2] ||
   rfid.uid.uidByte[3] != nuidPICC[3] ) {
   Serial.println(F("A new card has been detected."));

   // Store NUID into nuidPICC array
   for (byte i = 0; i < 4; i++) {
     nuidPICC[i] = rfid.uid.uidByte[i];
   }
 
   Serial.println(F("The NUID tag is:"));
   Serial.print(F("In hex: "));
   printHex(rfid.uid.uidByte, rfid.uid.size);
   Serial.println();
   Serial.print(F("In dec: "));
   printDec(rfid.uid.uidByte, rfid.uid.size);
   Serial.println();
   Serial.end();
   lcd.print("Wczytano");
 }
 else Serial.println(F("Card read previously."));

 // Halt PICC
 rfid.PICC_HaltA();

 // Stop encryption on PCD
 rfid.PCD_StopCrypto1();
}


/**
* Helper routine to dump a byte array as hex values to Serial.
*/
void printHex(byte *buffer, byte bufferSize) {
 for (byte i = 0; i < bufferSize; i++) {
   Serial.print(buffer[i] < 0x10 ? " 0" : " ");
   Serial.print(buffer[i], HEX);
 }
}

/**
* Helper routine to dump a byte array as dec values to Serial.
*/
void printDec(byte *buffer, byte bufferSize) {
 for (byte i = 0; i < bufferSize; i++) {
   Serial.print(buffer[i] < 0x10 ? " 0" : " ");
   Serial.print(buffer[i], DEC);
 }
}

Przypominam że pin 10 mam zagięty w wyświetlaczu i jest on pinem ss dla czytnika.
 
Odpowiedź
#4
masz zdublowany pin 9 , RST i wyświetlacz tak nie może być daj na RST pin 11 , a SS możesz dać pin 4 to niczemu nie przeszkadza i powinno działać
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#5
(09-05-2016, 23:07)JasQ napisał(a): masz zdublowany pin 9 , RST i wyświetlacz tak nie może być daj na RST pin 11 , a SS możesz dać pin 4 to niczemu nie przeszkadza i powinno działać

Zadziałało tylko raz z SS na pinie 10. I znowu nie reaguje ani na SS pin 10 ani na 4
 
Odpowiedź
#6
daj zdjęcie jak to połączyłeś
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#7
Photo 
(10-05-2016, 00:33)JasQ napisał(a): daj zdjęcie jak to połączyłeś

Ten czarny nie bierz pod uwagę


Załączone pliki Miniatury
   
 
Odpowiedź
#8
jednak rozrysuj schemat za gwoździa nie widać co gdzie idzie
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#9
(10-05-2016, 23:23)JasQ napisał(a): jednak rozrysuj schemat za gwoździa nie widać co gdzie idzie

LCD to oczywiście keypad Shield


Załączone pliki Miniatury
   
 
Odpowiedź
#10
jak raz zadziałało to szukaj gdzieś masz w sprzęcie przerwę lub coś nie łączy , teoretycznie jest ok .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości