Skocz do zawartości

JEREDEK

Użytkownicy
  • Zawartość

    15
  • Rejestracja

  • Ostatnio

Wszystko napisane przez JEREDEK

  1. Oh, tak przepraszam. Nie miałem ostatnio czasu na sprawdzanie forum. Oto schemat i design płytki. Mam nadzieję, że pomoże.
  2. Witam, Kupiłem sobie PCB które sam zaprojektowałem. Użyłem tam atmegi32u4, która ma wbudowaną komunikację USB. Nie wiem czemu, ale po wgraniu bootloadera z arduino IDE w portach nic się nie pokazuje. Natomiast gdy próbowałem wgrać program przy użyciu innego arduino, wszytko się udało. Czy ktoś wie, jak sprawić, żeby arduino IDE widziało tą płytkę jako arduino Leonardo (Bo tam jest użyta atmega32u4) i żebym mógł używać interfejsu USB? I tak, wszystkie ścieżki na PCB są poprawne, sprawdziłem. Dzięki z góry!
  3. Witam, Projektuję właśnie wersje 2 mojej płytki odblokowującej komputer, ponieważ powstał problem mechaniczny. Tym razem używam atmegi32u4 prosto na płytce, zamiast używać arduino. Jako, że używam atmegi32u4 , muszę sam dodać oscylator. Zawsze używałem tego samego oscylatora i kondensatorów 22pF, ale gdy patrzyłem na datasheet innego oscylatora (Ponieważ mojego nie mieli w magazynach), dokładnie tego: https://lcsc.com/product-detail/49S_Yangxing-Tech-X49SD16MSB2SI_C188202.html Pisało tam: "Load Capacitance: 12pF, 20pF, or specify". Link do datasheet: https://datasheet.lcsc.com/szlcsc/Yangxing-Tech-X49SD16MSB2SI_C188202.pdf Nie znam się w ogóle na oscylatorach, więc piszę tutaj w nadziei, że ktoś mi tu pomoże. Z góry dzięki!
  4. @Treker Tak, funkcje blk() i blke() odpowiadają za mruganie. @Elvis Tak! O to właśnie chodziło! Dzięki wielkie! Teraz projekt jest nareszcie zakończony! IMG_1414.rar Dziękuję wam wszystkim za pomoc, w końcu projekt udał się lepiej niż się spodziewałem
  5. Nadal nie mogę znaleźć błędu, kompiluje się dobrze . Adminie nasz, @Treker jakieś pomysły?
  6. A, tak przepraszam.gdy przyłożę kartę to dioda powinna mignąć krótko lub długo (zależy czy dobra karta) a arduino wysyła tylko hasło, odblokowując komputer.
  7. Okay, zamówiłem płytkę z JLCPCB, poczekałem miesiąc, i przyszła. Muszę powiedzieć, że jestem BARDZO zadowolony z roboty którą odwalili. Są idealnej jakości, przyszłali ich dziesięć, a zapłaciłem tylko 20 zł! (bez dostawy 6 zł!!) Płytka działa bez zarzutu, oprócz migającej diody i buzzera. To usterka w kodzie, ale nie mogę jej znaleźć. Pomożecie? #include <SPI.h> #include <MFRC522.h> #include "Keyboard.h" #define RST_PIN 9 // Configurable #define SS_PIN 10 // Configurable uint8_t successRead; // Variable integer to keep if we have Successful Read from Reader byte storedCard[4]; // Stores an ID read from EEPROM byte readCard[4]; // Stores scanned ID read from RFID Module int x = 1; String readid; MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin();// Init SPI bus Keyboard.begin(); pinMode(2, OUTPUT); mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void temp(byte *buffer, byte bufferSize)//function to store card uid as a string datatype. { readid=""; for(byte i = 0;i<bufferSize; i++) { readid=readid+String(buffer[i], HEX); } } void loop() { successRead = getID(); if (successRead == 1) { temp(mfrc522.uid.uidByte, mfrc522.uid.size); if (readid == "6a6b1f7") { if (x == 1) { Keyboard.press(KEY_ESC); delay(100); Keyboard.releaseAll(); delay(500); Keyboard.print("8659"); Serial.print(readid); blk; x = 2; return; } if (x == 2){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('l'); delay(100); Keyboard.releaseAll(); x = 1; return; } } successRead = 0; } else { blke; } } ///////////////////////////////////////// Get PICC's UID /////////////////////////////////// uint8_t getID() { // Getting ready for Reading PICCs if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue return 0; } if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue return 0; } // There are Mifare PICCs which have 4 byte or 7 byte UID care if you use 7 byte PICC // I think we should assume every PICC as they have 4 byte UID // Until we support 7 byte PICCs //Serial.println(F("Scanned PICC's UID:")); for ( uint8_t i = 0; i < 4; i++) { // readCard[i] = mfrc522.uid.uidByte[i]; Serial.print(readCard[i], HEX); } Serial.println(""); mfrc522.PICC_HaltA(); // Stop reading return 1; } uint8_t blk() { digitalWrite(2, HIGH); delay(200); digitalWrite(2, LOW); } uint8_t blke() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); }
  8. Okay, miałem problem, ponieważ okazało się, że powódem dla którego moje Arduino wysyłało 4V, było poluzowanie portu MicroUSB, które odpadło. Po zamówienie nowych, wysyłało one 4.78 V, więc podjechałem do Poznania, i kupiłem regulator 3.3V (LM2950 33 716), po podłączeniu wszystkiego na BreadBoardzie działało, więc zaprojektowałem nową płykę i ja zamówiłem. Za miesiąc powinna przyjść (Bo z chin). W starym kodzie był glitch gdzie jak się zablokowało komputer, to od razu wpisywał hasło, ale Windows nie zdążył się jeszcze zalogować. Oto nowy kod: #include <SPI.h> #include <MFRC522.h> #include "Keyboard.h" #define RST_PIN 9 // Configurable #define SS_PIN 10 // Configurable uint8_t successRead; // Variable integer to keep if we have Successful Read from Reader byte storedCard[4]; // Stores an ID read from EEPROM byte readCard[4]; // Stores scanned ID read from RFID Module int x = 1; String readid; MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin();// Init SPI bus Keyboard.begin(); mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void temp(byte *buffer, byte bufferSize)//function to store card uid as a string datatype. { readid=""; for(byte i = 0;i<bufferSize; i++) { readid=readid+String(buffer[i], HEX); } } void loop() { successRead = getID(); if (successRead == 1) { temp(mfrc522.uid.uidByte, mfrc522.uid.size); if (readid == "6a6b1f7") { if (x == 1) { Keyboard.press(KEY_ESC); delay(100); Keyboard.releaseAll(); delay(500); Keyboard.print("8659"); Serial.print(readid); blk; x = 2; return; } if (x == 2){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('l'); delay(100); Keyboard.releaseAll(); x = 1; return; } } successRead = 0; } else { blke; } } ///////////////////////////////////////// Get PICC's UID /////////////////////////////////// uint8_t getID() { // Getting ready for Reading PICCs if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue return 0; } if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue return 0; } // There are Mifare PICCs which have 4 byte or 7 byte UID care if you use 7 byte PICC // I think we should assume every PICC as they have 4 byte UID // Until we support 7 byte PICCs //Serial.println(F("Scanned PICC's UID:")); for ( uint8_t i = 0; i < 4; i++) { // readCard[i] = mfrc522.uid.uidByte[i]; Serial.print(readCard[i], HEX); } Serial.println(""); mfrc522.PICC_HaltA(); // Stop reading return 1; } uint8_t blk() { digitalWrite(6, HIGH); delay(200); digitalWrite(6, LOW); } uint8_t blke() { digitalWrite(6, HIGH); delay(1000); digitalWrite(6, LOW); }
  9. Mój amperomierz nie wiem czemu odmawia posłuszeństwa, ale mój zasilacz przy napięciu 3.3V rejestruje przepływ prądu o wartości 0.01A bez karty i 0.02A kiedy przyłożę kartę do odczytania. UPDATE: Nie znam się na miernikach, ale chyba płynie tam 0.7 mikro Ampera. Datasheet potwierdza:
  10. Natrafiłem na problem z Arduino Pro micro. Na moim breadboardzie użyłem dzielnika napięcia z rezystorem 68R i 156R, ale gdy zmierzyłem, leciało napięcie 2.9V zamiast 3.3V, Oto rozwiązanie: Użyłem wzoru Vo = Vin*(R2/R1+R2) = 5*(156/68+156) = 3.4 Natomiast po zmierzeniu napięcia wejściowego, nie było to 5V ale 4V. Mam problem z moją płytką, więc użyłem innego wzoru Vo = Vin*(R2/R1+R2) = 4*(330/68/330) = 3,3 Natomiast chciałem też oddać parę płytek znajomym, więc postanowiłem zamiast dzielnika napięcia zastosować regulator 3.3V: Holtek Semicon HT7533-1 , w pakiecie TO-92. Zmieniłem też lekko kod, oto on: #include <SPI.h> #include <MFRC522.h> #include "Keyboard.h" #define RST_PIN 9 // Configurable, see typical pin layout above #define SS_PIN 10 // Configurable, see typical pin layout above uint8_t successRead; // Variable integer to keep if we have Successful Read from Reader byte storedCard[4]; // Stores an ID read from EEPROM byte readCard[4]; // Stores scanned ID read from RFID Module int x = 1; String readid; MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance void setup() { Serial.begin(9600); // Initialize serial communications with the PC // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) SPI.begin();// Init SPI bus Keyboard.begin(); mfrc522.PCD_Init(); // Init MFRC522 mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void temp(byte *buffer, byte bufferSize)//function to store card uid as a string datatype. { readid=""; for(byte i = 0;i<bufferSize; i++) { readid=readid+String(buffer[i], HEX); } } void loop() { successRead = getID(); if (successRead == 1) { temp(mfrc522.uid.uidByte, mfrc522.uid.size); if (readid == "6a6b1f7") // Card ID here { if (x == 1) { Keyboard.press(KEY_ESC); delay(100); Keyboard.releaseAll(); delay(500); Keyboard.print("1234"); // Your Password Here Serial.print(readid); x = 2; } if (x == 2){ Keyboard.press(KEY_LEFT_GUI); Keyboard.press('l'); delay(100); Keyboard.releaseAll(); x = 1 } } successRead = 0; } } ///////////////////////////////////////// Get PICC's UID /////////////////////////////////// uint8_t getID() { // Getting ready for Reading PICCs if ( ! mfrc522.PICC_IsNewCardPresent()) { //If a new PICC placed to RFID reader continue return 0; } if ( ! mfrc522.PICC_ReadCardSerial()) { //Since a PICC placed get Serial and continue return 0; } // There are Mifare PICCs which have 4 byte or 7 byte UID care if you use 7 byte PICC // I think we should assume every PICC as they have 4 byte UID // Until we support 7 byte PICCs //Serial.println(F("Scanned PICC's UID:")); for ( uint8_t i = 0; i < 4; i++) { // readCard[i] = mfrc522.uid.uidByte[i]; Serial.print(readCard[i], HEX); } Serial.println(""); mfrc522.PICC_HaltA(); // Stop reading return 1; } Martwię się o temperaturę, więc chciałbym się was spytać: Czy mogę zastosować takie rozwiązanie?
  11. Witam, Zainspirował mnie pomysł ze strony: https://create.arduino.cc/projecthub/kksjunior/windows-pc-lock-unlock-using-rfid-5021a6?ref=tag&ref_id=rfid&offset=0 aczkolwiek zmieniłbym parę rzeczy. Części do projektu: -Arduino Pro Micro -Moduł RFID RC522 -Dioda LED zielona -Dioda LED czerwona -2 Rezystory 220Ohm -Rezystor 67Ohm -Rezystor 270Ohm -Buzzer (opcjonalne) -Przełącznik na 3 piny (opcjonalne) Najpierw zaprojektowałem sam układ, który wygląda o tak: Gdy wszystko było gotowe zabrałem się do podłączania do breadboard'a testującego, ponieważ zawsze dobrze jest sprawdzić obwód zanim się go przylutuje na stałe. Chciałem jednak wziąć ten projekt o krok dalej, i zaprojektowałem płytkę PCB, i zamówiłem ją na https://jlcpcb.com : Pojawił się jednak mały problem, ponieważ mam tylko arduino nano i uno, ale potrzeba mikroprocesora atmega32u4, który można znaleźć tylko w arduino MEGA i pro Micro. Wybrałem Pro Micro, ponieważ chcę, aby ten obwód był jak najmniejszy. Po podłączeniu wszystkiego, działało to bez problemu. Dla zainteresowanych, oto kod: pc.rar Teraz tylko czekam, aż moja PCB przyjedzie.
×
×
  • Utwórz nowe...