Skocz do zawartości

Problem z pinem MISO na nodeMCU


SOYER

Pomocna odpowiedź

Nie wiem dokładnie o jaki typ folii chodzi, ale z foliami mam takie doświadczenie, że na takich urządzeniach zamontowanych na zewnątrz i narażonych na promieniowanie słoneczne, po kilku latach z tej folii wiele nie zostaje.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

40 minut temu, SOYER napisał:

Nie wiem dokładnie o jaki typ folii chodzi

Takie coś do laminowania dokumentów i innych karteczek - z tego się robiło covidowe przyłbice.

41 minut temu, SOYER napisał:

po kilku latach z tej folii wiele nie zostaje

No cóż - kilka lat cienkiego szkła na zewnątrz...

Link do komentarza
Share on other sites

Cześć, co jest nie tak z tym kodem, rc522 podłączone jak wpisano, nic nie zmieniałem poza deklaracjami pinów, zresztą podpięte pod domyślne HSPI. Nie czyta kart.

#include <SPI.h>
#include <MFRC522.h>

#define SCK 14
#define MISO 12
#define MOSI 13
#define SS 15
#define RST_PIN 9
 
MFRC522 rfid(SS); // Instance of the class

MFRC522::MIFARE_Key key; 

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

void setup() { 
  Serial.begin(9600);
  SPI.begin(SCK, MISO, MOSI, SS); // 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() {

  // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
  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();
  }
  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);
  }
}

 

Link do komentarza
Share on other sites

(edytowany)

Dobra, wygląda, że opanowane. Po długich i irytuąjcych nieudanych próbach, po których byłem pewny, że mam uszkodzone ESP32, znalazłem bibliotekę która obsługuje RC522 i moje ESP32. Dla  potomnych, to ta. Działa na HSPI i VSPI, działa przypisywanie pinów. Później sprawdzę, dwa rfid na jednej lini SPI i dwóch pinach SS. [EDIT] dwa czytniki rfid na tej samej magistrali HSPI też działają na tej bibliotece:).

Teraz muszę się odstresować.

Przy okazji, mam ESP32 wroom, w którym podczas wgrywania softu muszę przytrzymać BOOST, podobno da się to załatwić jakimś kondensatorem między EN i coś tam. Jak to ogarnąć, żeby nic nie uszkodzić?

Edytowano przez SOYER
Link do komentarza
Share on other sites

32 minuty temu, SOYER napisał:

Przy okazji, mam ESP32 wroom, w którym podczas wgrywania softu muszę przytrzymać BOOST

Trochę to dziwne - stan pinu GPIO0 jest odczytywany tylko przy starcie ESP. Z koniecznością chwilowego naciskania BOOT spotkałem się kiedyś, ale to była kwestia mojego kompa (Ubuntu 18.04, coś było nie tak z driverem usb serial). A pin EN raczej nie ma z tym nic wspólnego... Możesz coś bliżej, a przede wszystkim jakiś link do tej płytki?

BTW. zerknąłem na kod wyżej, kod żywcem zerżnięty z avr-ów i avr-owymi zboczeniami typu fafnaście Serial.print zamiast normalnego printfa i zupełnie bezsensownym makrem F(). Miał pełne prawo nie działać  🙂

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.