Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   793 / 845
(#) SzilCsong válasza Bakman hozzászólására (») Máj 3, 2023 /
 
Igen így kötöttem be, az MFRC522 ss portja a 7-re, az SD kártyáé 10-re.
A setup részbe beállítottam ezt a két portot kimenetnek, majd amelyiket épp inicalizálja annak Lowra állítottam a másikat Highra, gondolom így értetted, de inkább bemásolom a kódot.
  1. begin() failed
  2. Do not reformat the SD.
  3. No card, wrong chip  pin, or wiring error?
  4. SdError: 0X1,0X0

ezt a hibát dobja amikor inicializálná az SD-t.
Van jelentősége a sorrendnek? Először az MFRC-t, majd az SD-t inicializálja.

  1. #include <SPI.h>
  2. #include "SdFat.h"
  3. #include <MFRC522.h>
  4.  
  5. #define SS_PIN  7  //  sda  Mfrc522
  6. #define RST_PIN 6  //  reset
  7. #define SS_SD 10  
  8.  
  9. #ifndef SDCARD_SS_PIN
  10. const uint8_t SD_CS_PIN = SS;
  11. #else  // SDCARD_SS_PIN
  12. // Assume built-in SD is used.
  13. const uint8_t SD_CS_PIN = SDCARD_SS_PIN;
  14. #endif  // SDCARD_SS_PIN
  15.  
  16. // Try max SPI clock for an SD. Reduce SPI_CLOCK if errors occur.
  17. #define SPI_CLOCK SD_SCK_MHZ(50)
  18.  
  19. // Try to  the best SD card configuration.
  20. #if HAS_SDIO_CLASS
  21. #define SD_CONFIG SdioConfig(FIFO_SDIO)
  22. #elif  ENABLE_DEDICATED_SPI
  23. #define SD_CONFIG SdSpiConfig(SD_CS_PIN, DEDICATED_SPI, SPI_CLOCK)
  24. #else  // HAS_SDIO_CLASS
  25. #define SD_CONFIG SdSpiConfig(SD_CS_PIN, SHARED_SPI, SPI_CLOCK)
  26. #endif  // HAS_SDIO_CLASS
  27.  
  28.  
  29.  
  30. #if SD_FAT_TYPE == 0
  31. SdFat sd;
  32. File file;
  33. #elif SD_FAT_TYPE == 1
  34. SdFat32 sd;
  35. File32 file;
  36. #elif SD_FAT_TYPE == 2
  37. SdExFat sd;
  38. ExFile file;
  39. #elif SD_FAT_TYPE == 3
  40. SdFs sd;
  41. FsFile file;
  42. #else  // SD_FAT_TYPE
  43. #error Invalid SD_FAT_TYPE
  44. #endif  // SD_FAT_TYPE
  45.  
  46.  line[20];//40
  47. boolean van = 0;
  48.  
  49.  
  50.  
  51.  
  52. MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
  53.  
  54.  
  55. void setup()
  56. {
  57.    pinMode(SS_PIN, OUTPUT);
  58.    pinMode(SS_SD, OUTPUT);
  59.    SPI.begin();      // Initiate  SPI bus
  60.    Serial.begin(9600);   // Initiate a serial communication
  61.    digitalWrite(SS_SD, HIGH);
  62.    digitalWrite(SS_PIN, LOW);
  63.  
  64.   mfrc522.PCD_Init();   // Initiate MFRC522
  65.   Serial.println("Approximate your card to the reader...");
  66.   Serial.println();
  67.  
  68.   digitalWrite(SS_SD, LOW);
  69.   digitalWrite(SS_PIN, HIGH);
  70.  
  71.  if (!sd.begin(SD_CONFIG)) {
  72.   sd.initErrorHalt(&Serial);
  73.   return;  }
  74.  
  75. }
  76. void loop()
  77. {
  78.   String str2;
  79.   // Look for new cards
  80.   if ( ! mfrc522.PICC_IsNewCardPresent())
  81.  {
  82.     return;
  83.   }                                                                 //***************************** itt történik a kiolvasás, itt vár, amíg nem olvas********************************
  84.  //   one of the cards
  85.   if ( ! mfrc522.PICC_ReadCardSerial())
  86.   {
  87.     return;
  88.   }
  89.   //Show UID on serial monitor
  90.   Serial.print("UID tag :");
  91.                                                                                                         // String content= "";
  92.                                                                                                         //  byte letter;
  93.   for (byte i = 0; i <  4; i++)                                                                         // mfrc522.uid.size; i++)       //***** 4 byte, 4* fut le
  94.   {
  95.    // Serial.print (mfrc522.uid.uidByte[i],HEX);  
  96.      Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0":" ");         // : " " ez azért kell, hogy ne egybe írja ki az azonosító számot
  97.      Serial.print(mfrc522.uid.uidByte[i],HEX);                                                             //, HEX);
  98.                                                                                                        //  content.(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  99.                                                                                                  //  content.(String(mfrc522.uid.uidByte[i], HEX));
  100.                                                                                        
  101.    byte Bajt;
  102.    String  str1;
  103.    String _2;
  104.    Bajt= (mfrc522.uid.uidByte[i]);                     //< 0x10 ? " 0" : " ");
  105.    str1 = String(Bajt,HEX);
  106.  
  107.    if (str1.length() < 2){               //  megnézi, hogy 2 karakternél kevesebb (0-val kezdődik) ezért hozzá kell írni egy 0-át, hogy ott is legyen
  108.        _2 = str1;
  109.         str1= "0" + _2;
  110.        }
  111.    str1.toUpperCase();                // átalakítja nagybetűssé
  112.    str2= str2 + str1 ;
  113.    str2= str2 + " ";                   // hozzátesz egy " "-t minden byte után
  114.   }
  115.   Serial.println();
  116.  
  117.   delay(1000);
  118.   Serial.println(str2);
  119.  
  120. }
A hozzászólás módosítva: Máj 3, 2023
(#) benjami válasza SzilCsong hozzászólására (») Máj 3, 2023 /
 
Nem szerencsés dolog egyszerre mindkét eszközt aktívvá tenni, mert a MISO vonalon szkanderbajnokságot fognak vívni egymással. Ezt megteszed a setup részen, még ha csak nagyon rövid időre is. Érdemes lenne az mrfc MISO vonalát leválasztani egy próba erejéig. Ha úgy működik az SD kártya, akkor nem megy lebegő állapotba az mrfc kimenete akkor sem, ha az engedélyező lába magas szinten van (tehát nem aktív). A rendes diagnosztikához meg tegyél rá a vonalakra egy logikai analizátort, és azzal minden ki fog derülni.
(#) robis01 válasza SzilCsong hozzászólására (») Máj 3, 2023 /
 
Általánosságban elmondható hogy inicializáláskor érdemes szüneteket betenni, időt hagyni az eszközöknek, mivel nem mind egyformán indul, van ami gyorsabb van ami lassabb.

Nem ismerem SdFat.h használatát ezért én is csak a netre hagyatkoztam, de itt hibakódok azt írják hogy a
  1. SdError: 0X1,0X0
hibakód csak a régi verzióra vonatkozik, de írnak néhány hibaokot is.

Minták között minták QuickStart-ot néztem meg.

Itt az írják
Be kell állítani a FAT típusát:
  1. // SD_FAT_TYPE = 0 for SdFat/File as defined in SdFatConfig.h,
  2. // 1 for FAT16/FAT32, 2 for exFAT, 3 for FAT16/FAT32 and exFAT.
  3. #define SD_FAT_TYPE 3


Le kell tiltani azt az eszközt ami épp nincs használva:
  1. // Set DISABLE_CHIP_SELECT to disable a second SPI device.
  2. // For example, with the Ethernet shield, set DISABLE_CHIP_SELECT
  3. // to 10 to disable the Ethernet controller.
  4. const int8_t DISABLE_CHIP_SELECT = -1;


Be kell állítani a sebességet a használt Aruino paneltól függően:
  1. // Test with reduced SPI speed for breadboards. SD_SCK_MHZ(4) will select
  2. // the highest speed supported by the board that is not over 4 MHz.
  3. // Change SPI_SPEED to SD_SCK_MHZ(50) for best performance.
  4. #define SPI_SPEED SD_SCK_MHZ(4)


De behozok még egy hibafaktort. Azt mondtad UNO-t használsz, azon pedig ATMEGA328 van. Specifikációja alapján MEG328 specifikáció a mikrokontroller 2kB SRAM-ot tartalmaz. Viszont az SdFat.h ebből 875-928 Byte felhasznál, vagyis közel a felét teljes SRAM mennyiségének, de erre fel is hívják a figyelmet SdFat. Ezért ha sok mindent akarsz használni az UNO-val, és anomáliákat tapasztalsz, azt az SRAM helyekért összeverekedő byte-ok is okozhatják SRAM hiba

És még egy kis bújtatott reklám Ha valami nem úgy megy a digitális világban ahogy elvárnánk, akkor érdemes megnézni egy logikai analizátorral. Erre sokféle megoldás van, amit jó szívvel tudok ajánlani az SIGROK terméke. Ingyenesen letölthető mindenféle platformra, sokféle eszközt támogat, még ARDUINO-t is, de érdemes venni valami céleszközt hozzá. Én ezt használom: data_analisator
(#) SzilCsong válasza robis01 hozzászólására (») Máj 5, 2023 /
 
Köszi, hogy foglalkoztál ezzel a kérdéssel.
Találtam közbe ezt a videot: Bővebben: Link
mindenféle trükk nélkül simán megy a kettő egyszerre (ki fogom próbálni)
Mi a külömbség az SdFat.h és a SD.h között?
(#) pipi válasza SzilCsong hozzászólására (») Máj 5, 2023 /
 
Más készítette
(#) hadhazik válasza SzilCsong hozzászólására (») Máj 5, 2023 /
 
SD.h
SD - a slightly more friendly wrapper for sdfatlib

This library aims to expose a subset of SD card functionality
in the form of a higher level "wrapper" object.

License: GNU General Public License V3
(Because sdfatlib is licensed with this.)

(C) Copyright 2010 SparkFun Electronics
vs.
Sdfat.h
* Copyright (c) 2011-2022 Bill Greiman
* This file is part of the SdFat library for SD memory cards.
*
* MIT License
*
A hozzászólás módosítva: Máj 5, 2023
(#) andyka hozzászólása Máj 6, 2023 /
 
Sziasztok
Szerintetek EZ - 1 müködne arduinoval ?, vagy inkább EZ -2 ?
A hozzászólás módosítva: Máj 6, 2023
(#) Jonni válasza andyka hozzászólására (») Máj 6, 2023 /
 
Nekem nem megy a kinai, de az ábra alapján nem.
(#) andyka válasza Jonni hozzászólására (») Máj 6, 2023 /
 
Nekem szoktak menni a kinai cuccok, de most ?, mielött reszkirozok hát gondoltam rákérdek
(#) Jonni válasza andyka hozzászólására (») Máj 6, 2023 /
 
Nem úgy értettem!!! Nem értem a kinai nyelvet....
(#) andyka válasza Jonni hozzászólására (») Máj 6, 2023 /
 
Kellene csináljak egy bazi nagy szervot
Nálam is nagy gond
A hozzászólás módosítva: Máj 6, 2023
(#) Jonni válasza andyka hozzászólására (») Máj 6, 2023 /
 
Ha valahol lehet 5V-os négyszögjellel vezérelni akkor jó lehet arduino-hoz.
(#) andyka válasza Jonni hozzászólására (») Máj 6, 2023 /
 
Na EZ mintha hasonlítana a kékre
(#) robis01 válasza SzilCsong hozzászólására (») Máj 6, 2023 /
 
Mivel az SdFat.h nem használtam erre a kérdésre nem tudok válaszolni. Sd.h használtam már, és azért ezt mert ez alapból benne volt az Arduino-ban.
A videó nagyon jó, főleg hogy adja hozzá a programot dokumentációt is. Arra figyelj hogy már 3 éves a videó, azóta már jöttek ki újabb Arduino verziók, de nagy valószínűséggel menni fog a dolog.
(#) robis01 válasza andyka hozzászólására (») Máj 6, 2023 /
 
Ha jól látom EZ1-n van egy STM8S003F3P6 vezérlő és egy A4950 motormeghajtó.
Az STM8S*** programozható Arduino-val STM ARDUINO

De kapható külön megjató modul is A4950T

EZ-2 is valószínűleg STM8*** lesz, de utána kellene járni, a motormeghajtó viszont nem látható, de tuti abból is kapható külön panel.
(#) andyka válasza robis01 hozzászólására (») Máj 7, 2023 /
 
Köszi hogy utánanéztél
Hát akkor ezeknek befellegzett, nem ok.
De, mégis kellene
Esetleg ezekből valamejik megtenné ?
TLE 4206G, M51660L, AA51880, TLE42062GXUMA2, ZXBM5409Q
A hozzászólás módosítva: Máj 7, 2023
(#) robis01 válasza andyka hozzászólására (») Máj 7, 2023 / 1
 
Szívesen. Van az a mondás hogy azt kapod vissza az élettől amit adsz neki.
Én is sokszor kaptam tanácsot itt, így most rajtam a sor hogy tovább adjak abból amit kaptam

Viszont abban nem tudok tanácsot adni hogy milyen motormeghajtó kell neked, egyrészt mert csak nyomtató motorokat használtam eddig, másrészt ahhoz hogy tanácsot kapj, kellenek a technikai adatok is a motorról (fesz. áram, nyomaték, stb.), és írd meg a célt is. Továbbá szerintem a kérdésed ne ide tedd fel, hanem valamelyik motorvezérlős topik-ba.
(#) andyka válasza robis01 hozzászólására (») Máj 8, 2023 /
 
Hát elöszőr az kellen hogy ezek müködnének-e arduinoval, a szokásos servo könyvtárakkal ?
A tényleges motor meghajtás az lenne a következő, lényegébe nem is nagy a motrom, normál DC motor, az áttétel lenne nagy
(#) Massawa válasza andyka hozzászólására (») Máj 8, 2023 /
 
Az EZ1-s biztosan müködne, ott van rajta a szervo port (GND, 5V, S)

A mechanizmusat viszont neked kell kifejlesztened .
(#) Massawa válasza Massawa hozzászólására (») Máj 8, 2023 /
 
Egyre kell vigyázni, hogy a motor meghajto rész GNDje a plusz polus! (0-24V) azaz külön táp kell a motorhoz meg külön az Arduinohoz.
(#) tonyoka hozzászólása Máj 8, 2023 /
 
Üdv!
Segítségre lenne szükségem. Egy excel munkafüzet 5 cellájának értékeivel kellene vezérelnem 5 arduinora kötött ledet. A celák értéke egy nagy adatmennyiség analízise alapján 0, 1, vagy 2 lehet (na eddig vannak kézbentartva a dolgok) az arduino mindig a COM3 portra csatlakozik a ledek a 8,9,10,11 és 12 kimeneteken. Azt kellene megoldani hogy pl. ha A1 cella értéke 1 akkor led8 nem világít, ha az érték 1 akkor led8 1Hz frekivel villogjon és ha az érték 2 akkor folyamatosan világítson. Ugyanígy A2 led9, A3 led10 stb stb. Probáltam mindenféle kódokat vba és arduino oldalról is datastreamert és firmatat de csak egy két össze-vissza villódzás meg vba hibák sikeráltak. Arduinoval még nem foglalkoztam. Ha valki kisegít, akkor a ledek helyet végül agy andon lámpatorony lesz a kijelzés egyszilárdtest relékártyán keresztül, de most teljesen belezavarodtam. Ha tudnátok arduino és vba kódokat javasolni, azt megköszönném. Minden tiszteletem a segítő szándékú szakiké. Köszönöm!
Tónyó
A hozzászólás módosítva: Máj 8, 2023
(#) GPeti1977 válasza tonyoka hozzászólására (») Máj 8, 2023 / 1
 
Szerintem adatbázis használata, raspberry pi segítségével megvalósítható amit szeretnél.
(#) pipi válasza tonyoka hozzászólására (») Máj 8, 2023 /
 
Hogy áll elő/mikor hogy módosul az az excel fájl? Ha lehet akkor az excelből csv-ben kéne menteni, az sima text fájl, a fájl akár direktbe küldhető a soros portra, nem lenne egy nagy cucc arduinóval, bármivel levenni a soros portról, feldolgozni... Holnap MS-ék gondolnak egyet, itt ott módosítanak az xlsx formátumon, és a feldolgozás dől... Én kerülném
(#) tonyoka válasza GPeti1977 hozzászólására (») Máj 8, 2023 /
 
Hát köszi de az excelben már kezelve vannak az adatok és oda mennek be folyamatosan. A vba kód rendezi, analizálja őket,ez is rendben van. Vizuális riasztáshoz kell 5 ledet meghajtani. Szerintem a raspberry pi túl sok ehhez. Főleg hogy az excelt nyúlhatom és csak egy usb porton keresztül. Ennél jobban nem mászhatok bele a rendszerbe.
(#) tonyoka válasza pipi hozzászólására (») Máj 8, 2023 /
 
Csak valami 0,1,1,2,2, adatsort kellene kiküldeni soros portra ahol a karakter sorszáma a led sorszáma lenne értéke pedig ha 0 akkor az a led off ha 1 akkor 1hz villog ha 2 akko folyamatosan világít. A küldés folyamatos lenne és az arduino is folymatosan figyelné a bejövő adatokat ha változik akkor a megfelelő kimenet állapota is változna. De köszönöm hogy ötleteltek!
(#) tonyoka válasza tonyoka hozzászólására (») Máj 8, 2023 /
 
Arduino így kezelné a ledeket csak nem sikerül megfelelő formában küldenem vba ból az utasításokat:
  1. int outputPins[] = {13, 12, 11, 10};  // The pin numbers of the outputs to control
  2. int inputByte;                        // The input byte from the Data Streamer
  3.  
  4. void setup() {
  5.   Serial.begin(9600);                // Start serial communication
  6.   for (int i = 0; i < 4; i++) {       // Set all output pins to output mode
  7.     pinMode(outputPins[i], OUTPUT);
  8.   }
  9. }
  10.  
  11. void loop() {
  12.   while (Serial.available() > 0) {   // Check if there is any input from the serial port
  13.     inputByte = Serial.read();       // Read the input byte
  14.     if (inputByte >= '0' && inputByte <= '3') {  // If the input byte is between 0 and 3, activate the corresponding output
  15.       int outputIndex = inputByte - '0';
  16.       digitalWrite(outputPins[outputIndex], HIGH);
  17.     } else if (inputByte == '4') {   // If the input byte is 4, deactivate all outputs
  18.       for (int i = 0; i < 4; i++) {
  19.         digitalWrite(outputPins[i], LOW);
  20.       }
  21.     }
  22.   }
  23. }


Mondjuk itt csak négy leddel és más kimeneteken próbáltam, de ez mellékes...
A hozzászólás módosítva: Máj 8, 2023
(#) GPeti1977 válasza tonyoka hozzászólására (») Máj 8, 2023 / 1
 
VBA elérhető a soros port, szerintem megvalósítható arduinóval is.
Bővebben: VBA Serial
(#) robis01 válasza andyka hozzászólására (») Máj 8, 2023 /
 
Ahogy Massawa is írta:
1. mennie kell, csak be kell állítani előtte miként akarod használni ASMZ01 bekötése.
2 a potencióméteres visszacsatolás mechanizmusát el kell készíteni.
3 figyelj oda a bekötésre, és a motornak sem szabad túllépnie a feltüntet határértéket különben csak egyszer és rövid ideig fogod használni a panelt.

De ha megírod a célt,amire a motort fogod használni, lehet kiderül hogy már valaki más épített olyan eszközt mint amit te is építeni szándékozol. De akár az is kiderülhet hogy nem is kell servo, hanem elég csak visszajelzés az állapotáról pl. lyukak egy tárcsán amit optokapu(k) figyel(nek).
(#) robis01 válasza tonyoka hozzászólására (») Máj 8, 2023 / 1
 
Régebben összekötöttem a libreoffice calc-ot Arduinoval, de ehhez makrót kellett használnom.
De itt azt írják excel-Arduino hogy a datastreamer bővítmény lehetővé teszi a kapcsolódást. Azért kíváncsi vagyok hogy ez tényleg ennyire egyszerű lenne?
A hozzászólás módosítva: Máj 8, 2023
(#) GPeti1977 válasza tonyoka hozzászólására (») Máj 9, 2023 / 1
 
Meg az adatfolyamnak lehetne eleje vége, pédául:
$01200*
Vagy a * helyett sortörés, esetleg pluszban a végére checsum, lehet csak ezért villog minden össze-vissza.
Következő: »»   793 / 845
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem