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   118 / 850
(#) kapu48 válasza ALI hozzászólására (») Jún 4, 2015 /
 
Villogás késleltetése változtatható!

  1. // Blink LED
  2. // ...
  3. boolean blinkl = 0
  4. unsigned long blinktime = 6000; // Villogás késleltetése változtatható!
  5. unsigned long time = millis() + blinktime;
  6. digitalWrite(rele, HIGH);
  7.  
  8. void loop() {
  9.  
  10.  // ...
  11.  if (millis() > time) {
  12.    switch (blinkl)              
  13.    {
  14.      case 0:
  15.      {
  16.            digitalWrite(rele, LOW);        
  17.            time=millis() + blinktime;  
  18.            blinkl = 1;
  19.        break;
  20.      }
  21.      case 1:
  22.      {
  23.            digitalWrite(rele, HIGH);
  24.            time=millis() + blinktime;  
  25.            blinkl = 0;  
  26.         break;
  27.      }
  28.     }
  29.  }
  30.  // ...  
  31. }

Szóval ha megvan az alap ötlet, lehet javítgatni!
A hozzászólás módosítva: Jún 4, 2015
(#) saua válasza minimodel hozzászólására (») Jún 4, 2015 /
 
Szia

Nézegetem a kapcsolásodat, a testet (-) nem véletlenül az AREF pin-ről veszed?
(#) teglascs válasza saua hozzászólására (») Jún 4, 2015 /
 
Húúú, de alaposan megnézted. Tényleg úgy tűnik!

Az LCD háttérvilágító LED-jének nem kell védőellenállást sorba kötni?
(#) saua válasza teglascs hozzászólására (») Jún 4, 2015 /
 
az is kellene, de itt most nem az a gond.

itt egy leírás a bekötésről (ott az ellenállás is amit említettél).
A hozzászólás módosítva: Jún 4, 2015
(#) saua hozzászólása Jún 4, 2015 /
 
Sziasztok,

Teszteltem az alábbi kódot, jól működik, a teljes leírás itt található.


  1. /*--------------------------------------------------------------
  2.   Program:      web_server_hw_button_pg_button
  3.  
  4.   Description:  Arduino web server that allows two LEDs to be
  5.                 controlled by a checkbox, HTML button and two
  6.                 hardware push buttons.
  7.                 The web page is stored on the micro SD card.
  8.  
  9.   Hardware:     Arduino Uno and official Arduino Ethernet
  10.                 shield. Should work with other Arduinos and
  11.                 compatible Ethernet shields.
  12.                 2Gb micro SD card formatted FAT16.
  13.                 LEDs on pins 6 and 7.
  14.                 Switches on pins 2 and 3.
  15.                
  16.   Software:     Developed using Arduino 1.6.1 software
  17.                 Should be compatible with Arduino 1.0 +
  18.                 SD card contains web page called index.htm
  19.  
  20.   References:   - Based on Ajax I/O example from Starting
  21.                   Electronics:
  22.                  
  23.                 - Switch debouncing from Arduino IDE example code
  24.                   File --> Examples --> 02.Digital --> Debounce
  25.  
  26.   Date:         13 April 2015
  27.  
  28.   Author:       W.A. Smith, http://startingelectronics.org
  29. --------------------------------------------------------------*/
  30.  
  31. #include <SPI.h>
  32. #include <Ethernet.h>
  33. #include <SD.h>
  34. // size of buffer used to capture HTTP requests
  35. #define REQ_BUF_SZ   60
  36.  
  37. // MAC address from Ethernet shield sticker under board
  38. byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
  39. IPAddress ip(192, 168, 0, 20); // IP address, may need to change depending on network
  40. EthernetServer server(80);  // create a server at port 80
  41. File webFile;               // the web page file on the SD card
  42. char HTTP_req[REQ_BUF_SZ] = {0}; // buffered HTTP request stored as null terminated string
  43. char req_index = 0;              // index into HTTP_req buffer
  44. boolean LED_state[2] = {0}; // stores the states of the LEDs
  45.  
  46. void setup()
  47. {
  48.     // disable Ethernet chip
  49.     pinMode(10, OUTPUT);
  50.     digitalWrite(10, HIGH);
  51.    
  52.     Serial.begin(9600);       // for debugging
  53.    
  54.     // initialize SD card
  55.     Serial.println("Initializing SD card...");
  56.     if (!SD.begin(4)) {
  57.         Serial.println("ERROR - SD card initialization failed!");
  58.         return;    // init failed
  59.     }
  60.     Serial.println("SUCCESS - SD card initialized.");
  61.     // check for index.htm file
  62.     if (!SD.exists("index.htm")) {
  63.         Serial.println("ERROR - Can't find index.htm file!");
  64.         return;  // can't find index file
  65.     }
  66.     Serial.println("SUCCESS - Found index.htm file.");
  67.     // switches
  68.     pinMode(2, INPUT);
  69.     pinMode(3, INPUT);
  70.     // LEDs
  71.     pinMode(6, OUTPUT);
  72.     pinMode(7, OUTPUT);
  73.    
  74.     Ethernet.begin(mac, ip);  // initialize Ethernet device
  75.     server.begin();           // start to listen for clients
  76. }
  77.  
  78. void loop()
  79. {
  80.     EthernetClient client = server.available();  // try to get client
  81.  
  82.     if (client) {  // got client?
  83.         boolean currentLineIsBlank = true;
  84.         while (client.connected()) {
  85.             if (client.available()) {   // client data available to read
  86.                 char c = client.read(); // read 1 byte (character) from client
  87.                 // limit the size of the stored received HTTP request
  88.                 // buffer first part of HTTP request in HTTP_req array (string)
  89.                 // leave last element in array as 0 to null terminate string (REQ_BUF_SZ - 1)
  90.                 if (req_index < (REQ_BUF_SZ - 1)) {
  91.                     HTTP_req[req_index] = c;          // save HTTP request character
  92.                     req_index++;
  93.                 }
  94.                 // last line of client request is blank and ends with \n
  95.                 // respond to client only after last line received
  96.                 if (c == '\n' && currentLineIsBlank) {
  97.                     // send a standard http response header
  98.                     client.println("HTTP/1.1 200 OK");
  99.                     // remainder of header follows below, depending on if
  100.                     // web page or XML page is requested
  101.                     // Ajax request - send XML file
  102.                     if (StrContains(HTTP_req, "ajax_inputs")) {
  103.                         // send rest of HTTP header
  104.                         client.println("Content-Type: text/xml");
  105.                         client.println("Connection: keep-alive");
  106.                         client.println();
  107.                         SetLEDs();
  108.                         // send XML file containing input states
  109.                         XML_response(client);
  110.                     }
  111.                     else {  // web page request
  112.                         // send rest of HTTP header
  113.                         client.println("Content-Type: text/html");
  114.                         client.println("Connection: keep-alive");
  115.                         client.println();
  116.                         // send web page
  117.                         webFile = SD.open("index.htm");        // open web page file
  118.                         if (webFile) {
  119.                             while(webFile.available()) {
  120.                                 client.write(webFile.read()); // send web page to client
  121.                             }
  122.                             webFile.close();
  123.                         }
  124.                     }
  125.                     // display received HTTP request on serial port
  126.                     Serial.print(HTTP_req);
  127.                     // reset buffer index and all buffer elements to 0
  128.                     req_index = 0;
  129.                     StrClear(HTTP_req, REQ_BUF_SZ);
  130.                     break;
  131.                 }
  132.                 // every line of text received from the client ends with \r\n
  133.                 if (c == '\n') {
  134.                     // last character on line of received text
  135.                     // starting new line with next character read
  136.                     currentLineIsBlank = true;
  137.                 }
  138.                 else if (c != '\r') {
  139.                     // a text character was received from client
  140.                     currentLineIsBlank = false;
  141.                 }
  142.             } // end if (client.available())
  143.         } // end while (client.connected())
  144.         delay(1);      // give the web browser time to receive the data
  145.         client.stop(); // close the connection
  146.     } // end if (client)
  147.    
  148.     // read buttons and debounce
  149.     ButtonDebounce();
  150. }
  151.  
  152. // function reads the push button switch states, debounces and latches the LED states
  153. // toggles the LED states on each push - release cycle
  154. // hard coded to debounce two switches on pins 2 and 3; and two LEDs on pins 6 and 7
  155. // function adapted from Arduino IDE built-in example:
  156. // File --> Examples --> 02.Digital --> Debounce
  157. void ButtonDebounce(void)
  158. {
  159.     static byte buttonState[2]     = {LOW, LOW};   // the current reading from the input pin
  160.     static byte lastButtonState[2] = {LOW, LOW};   // the previous reading from the input pin
  161.    
  162.     // the following variables are long's because the time, measured in miliseconds,
  163.     // will quickly become a bigger number than can be stored in an int.
  164.     static long lastDebounceTime[2] = {0};  // the last time the output pin was toggled
  165.     long debounceDelay = 50;         // the debounce time; increase if the output flickers
  166.  
  167.     byte reading[2];
  168.    
  169.     reading[0] = digitalRead(2);
  170.     reading[1] = digitalRead(3);
  171.    
  172.     for (int i = 0; i < 2; i++) {
  173.         if (reading[i] != lastButtonState[i]) {
  174.             // reset the debouncing timer
  175.             lastDebounceTime[i] = millis();
  176.         }
  177.      
  178.         if ((millis() - lastDebounceTime[i]) > debounceDelay) {
  179.             // whatever the reading is at, it's been there for longer
  180.             // than the debounce delay, so take it as the actual current state:
  181.        
  182.             // if the button state has changed:
  183.             if (reading[i] != buttonState[i]) {
  184.                 buttonState[i] = reading[i];
  185.          
  186.                 // only toggle the LED if the new button state is HIGH
  187.                 if (buttonState[i] == HIGH) {
  188.                     LED_state[i] = !LED_state[i];
  189.                 }
  190.             }
  191.         }
  192.     } // end for() loop
  193.    
  194.     // set the LEDs
  195.     digitalWrite(6, LED_state[0]);
  196.     digitalWrite(7, LED_state[1]);
  197.      
  198.     // save the reading.  Next time through the loop,
  199.     // it'll be the lastButtonState:
  200.     lastButtonState[0] = reading[0];
  201.     lastButtonState[1] = reading[1];
  202. }
  203.  
  204. // checks if received HTTP request is switching on/off LEDs
  205. // also saves the state of the LEDs
  206. void SetLEDs(void)
  207. {
  208.     // LED 1 (pin 6)
  209.     if (StrContains(HTTP_req, "LED1=1")) {
  210.         LED_state[0] = 1;  // save LED state
  211.         digitalWrite(6, HIGH);
  212.     }
  213.     else if (StrContains(HTTP_req, "LED1=0")) {
  214.         LED_state[0] = 0;  // save LED state
  215.         digitalWrite(6, LOW);
  216.     }
  217.     // LED 2 (pin 7)
  218.     if (StrContains(HTTP_req, "LED2=1")) {
  219.         LED_state[1] = 1;  // save LED state
  220.         digitalWrite(7, HIGH);
  221.     }
  222.     else if (StrContains(HTTP_req, "LED2=0")) {
  223.         LED_state[1] = 0;  // save LED state
  224.         digitalWrite(7, LOW);
  225.     }
  226. }
  227.  
  228. // send the XML file with analog values, switch status
  229. //  and LED status
  230. void XML_response(EthernetClient cl)
  231. {
  232.     int analog_val;            // stores value read from analog inputs
  233.     int count;                 // used by 'for' loops
  234.     int sw_arr[] = {2, 3};  // pins interfaced to switches
  235.    
  236.     cl.print("<?xml version = \"1.0\" ?>");
  237.     cl.print("<inputs>");
  238.     // checkbox LED states
  239.     // LED1
  240.     cl.print("<LED>");
  241.     if (LED_state[0]) {
  242.         cl.print("checked");
  243.     }
  244.     else {
  245.         cl.print("unchecked");
  246.     }
  247.     cl.println("</LED>");
  248.     // button LED states
  249.     // LED3
  250.     cl.print("<LED>");
  251.     if (LED_state[1]) {
  252.         cl.print("on");
  253.     }
  254.     else {
  255.         cl.print("off");
  256.     }
  257.     cl.println("</LED>");
  258.     cl.print("</inputs>");
  259. }
  260.  
  261. // sets every element of str to 0 (clears array)
  262. void StrClear(char *str, char length)
  263. {
  264.     for (int i = 0; i < length; i++) {
  265.         str[i] = 0;
  266.     }
  267. }
  268.  
  269. // searches for the string sfind in the string str
  270. // returns 1 if string found
  271. // returns 0 if string not found
  272. char StrContains(char *str, char *sfind)
  273. {
  274.     char found = 0;
  275.     char index = 0;
  276.     char len;
  277.  
  278.     len = strlen(str);
  279.    
  280.     if (strlen(sfind) > len) {
  281.         return 0;
  282.     }
  283.     while (index < len) {
  284.         if (str[index] == sfind[found]) {
  285.             found++;
  286.             if (strlen(sfind) == found) {
  287.                 return 1;
  288.             }
  289.         }
  290.         else {
  291.             found = 0;
  292.         }
  293.         index++;
  294.     }
  295.  
  296.     return 0;
  297. }


Azt szeretném kérdezni hogy lehetne a két gomb mellett megjeleníteni egy DS18B20 által mért hőmérsékletet is, tehát például a hozzászólásban leírt kóddal kombinálni, a lényeg, hogy ne frissüljön az egész oldal, hanem csak az értékek.
(#) ALI válasza kapu48 hozzászólására (») Jún 4, 2015 /
 
Szia. Köszi. Eléggé amatőr vagyok az eddigi kódot is példákból raktam össze. Ezt hogy tudom be illeszteni az időzítésem helyett akár hogy próbálom mindig valami hibát ír fordításkor.
(#) Bell válasza saua hozzászólására (») Jún 4, 2015 /
 
Rég nem próbáltam, de talán tudsz belőle valamit használni:
A megjelenítéshez a javascript GetArduinoIO() részbe kellene egy ilyen:
  1. document.getElementById("hofok").innerHTML=this.responseXML.getElementsByTagName('LED')[2].childNodes[0].nodeValue;
A body részbe egy ilyen:
  1. <P id="hofok">Ide jön a hőfok</P>
A szerver XML részébe a:
  1. cl.println("</LED>");
  2. cl.print("</inputs>");
sorok közé pedig egy ilyen:
  1. cl.print("<LED>");
  2.  cl.print("12,3 C");
  3.  cl.println("</LED>");
A szöveg helyett persze a változó értékét adod meg.
(#) saua válasza Bell hozzászólására (») Jún 4, 2015 /
 
Köszi a választ, sajnos ilyen szinten nem értek hozzá. Egyenlőre el sem tudom képzelni, hogy a float temp = sensors.getTempCByIndex(0); hogyan kapcsolódik például a cl.print("<LED>"); hez.

Még keresgélek a neten, hátha találok egy AJAX-os példaprogramot DS18B20 -al.
(#) Bell válasza saua hozzászólására (») Jún 4, 2015 /
 
Kipróbáltad? Persze hogy nem.
A LED-hez nem kapcsolódik sehogy.
Ha jobban tetszik írd így:
  1. ... ('HOFOK')[0].childNodes[0].nodeValue; -t
  2. cl.print("<HOFOK>");
  3.  cl.print(temp);
  4.  cl.println("</HOFOK>")
(#) kapu48 válasza ALI hozzászólására (») Jún 5, 2015 /
 
Kérted:"mivel lehetne helyettesíteni ezt az időzítést?"

A kódod 78.-87. sorai helyébe beszúrod a fenti program részt.

Én nem fordítottam le!

Ha nem boldogulsz? Ide másolod az új kódodat.
És majd megnézzük!

Gyakorlás teszi a mestert!

Próbáld a hibákat javítani!
A hozzászólás módosítva: Jún 5, 2015
(#) atus1981 válasza teglascs hozzászólására (») Jún 5, 2015 /
 
A védőellenállás rajta van az LCD-panelján. 100 Ohm szokott lenni, de én kicserélem mindig 470-680 Ohmra.
(#) teglascs válasza atus1981 hozzászólására (») Jún 5, 2015 /
 
Nem tudtam, hogy gyárilag van ott ellenállás (én is mindig kötök be külön, a betáp felől).
(#) ALI válasza kapu48 hozzászólására (») Jún 6, 2015 /
 
Köszi a segítséget. Sikerült össze hoznom.
(#) minimodel válasza teglascs hozzászólására (») Jún 6, 2015 /
 
Nos kipróbáltam külső ellenállással is, minden jó helyre van kötve csak a képen furán látszott, szóval a helyzet változatlan volt. Tegnap szereztem egy nem világítós, zöld LCD-t. Azzal meg se nyikkan semmi, lehet, a nem világítósokra nem is kellene potit kötnöm. Mindegy, most majd bekötöm az összes lábát és ha ki tudok íratni vele valamit, akkor nyertem, ha nem....akkor tovább töröm a fejem.
(#) teglascs válasza minimodel hozzászólására (») Jún 6, 2015 / 1
 
Igazándiból a háttérvilágító LED védőellenállásának nincs köze a fényképen látható problémához (nyilván ezzel nem mondok újdonságot). A kontraszt beállítása (azaz egy potméter alkalmazása) szerintem háttérvilágítás nélkül is szükséges, bár én ilyen LCD-vel még nem dolgoztam.
Olyasmi furcsaságot, amit lefotóztál, nálam kontaktusprobléma okozott: negyed/fél kijelző működött csak normálisan, de a kábelek ill. az LCD panel megigazításával megoldódott.
(#) minimodel válasza teglascs hozzászólására (») Jún 7, 2015 /
 
Köszönöm a tippet, most már én is ezen a véleményen vagyok. Ugyanis a kék kijelzőt már eleve ráforrasztott tüskesorral vettem a boltban. Viszont a zöldre magam forrasztottam rá a sort.

A háttérvilágítás nélkülire is jó a poti. Először le is teszteltem, ezúttal nemhogy teljes sorok változtak egyszerre, de még a második sor is változott szépen rendben. Aztán rendesen rákötöttem a többi kivezetést is az Arduino-ra és tessék, szépen megy rajta a Hello World.

Annyi volt még a trükkje a kijelzőmnek, hogy a lábkiosztás máshogy van, balról jobbra: 14,13,12,.....1,16,15. Ez utóbbi két láb nálam irreleváns.

A lényeg, hogy működik végre. Ezután ki fogom forrasztani a kék LCD-ről a tüskesort és én magam fogom újra beforrasztani.
(#) sanya26 hozzászólása Jún 7, 2015 /
 
Sziasztok!

Egy olyan kérdésem lenne, hogy az analóg pineket digitális bemenetként is lehet definiálni? Azt tudom, hogy kimenetként használható.
Ha igen, akkor mekkora fesz. szint felett tekinti magasnak a bemenetet?
Külső felhúzó ellenállást használok, mert nyomógombok lennének a kérdéses lábakon.
Ha az A3 analóg pint digitálisként akarom használni, akkor 17-es pintként kell hivatkoznom rá?
Azt olvastam, hogy amennyiben az analóg lábat digitális lábként használom, akkor a számozásuk folytatódik pl.: A0 a 14, A1 a 15, stb., jól olvastam?

A segítségetek előre is köszönöm.
Sanyi
(#) erdeidominik1999 válasza sanya26 hozzászólására (») Jún 7, 2015 /
 
Szia! Használhatóak bemenetként is, de én szerintem felesleges a külső ellenállás csak plussz macera, ha INPUT_PULLUP-nak definiálod, akkor alapból van felhúzó ellenállás. A számozásokat meg csak simán A0, A1... Ha gnd-os a vezérlésed, akkor nincs szint vagy rá van kapcsolva vagy nincs.
(#) sanya26 válasza erdeidominik1999 hozzászólására (») Jún 7, 2015 /
 
Köszi.
A szintet csak azért kérdeztem, mert 3 analóg bemenetnél kipróbáltam a digitalRead utasítást. Írtam egy külön progit ennek a kikísérletezéséhez. Mindhárom bemenetet megnéztem mind analóg mind, digitálisan beolvasva is, majd az eredményt serialprintel kiírattam a soros monitorra. Az analóg beolvasás mindháromnál nem nyomva 1023, nyomva 0, mégis digitális olvasásnál csak az egyik váltott 1-ről nullára. Ellenállást máshoz is használok és ellenállássort vettem, így szerencsére nem foglal sok helyet. Működik egyáltalán a digitalread az analóg lábaknál, vagy a 0-1023 közötti eredménnyel kell számolni? Digitális kimenetként használhatók? Hogy, milyen utasítással tudok róla ledet működtetni?
(#) erdeidominik1999 válasza sanya26 hozzászólására (») Jún 7, 2015 /
 
Elvileg mennie kéne a digitalRead-nek is, ledet meg csak simán output-nak definiálod, és digitalWrite.
(#) andykaaa hozzászólása Jún 7, 2015 /
 
Sziasztok
Oromomre elsore sikerult ket DS18B20 -at leolvasni, de akadt egy kis gond. A ketto (gondolom ez a tobbivel is elofordul) 0.5 Cfok elteressel mer, ezt hogy lehetne kompenzalni ?
(#) saua válasza andykaaa hozzászólására (») Jún 8, 2015 /
 
Szia,

Véletlenül nem DS1820 -hoz készült kódot használsz? Mert annak +/-0,5 fok az eltérése.
DS18B20 -nál már +/- 0,2 ºC kellene legyen az eltérés. olyan kódot kellene keress amiben nem 9 bittes a kódkiolvasás, hanem 12 bittes, ezzel a legpontosabb a mérés.

itt foglalkoznak a témával
A hozzászólás módosítva: Jún 8, 2015
(#) andykaaa válasza TavIR-AVR hozzászólására (») Jún 8, 2015 /
 
Idézet:
„(Zavarvédelemere gondolj ill használd az Arduino/iWire library CRC-jét!)”

Nem igazan ertem hogy ez mi is akar lenni, de
Ha megnevezem kulon kulon az erzekeloket valahogy igy
  1. DeviceAddress Probe01 = { 0x28, 0xFF, 0x09, 0x29, 0x3C, 0x04, 0x00, 0x06 };
  2. DeviceAddress Probe02 = { 0x28, 0xFF, 0x75, 0x26, 0x3C, 0x04, 0x00, 0xD0 };

az nem teszi meg az azonositast, illetve nem kuszoboli ki a hibakat ?

A masik, mit akar jelenteni az a tavtaplalt mod ?
(1) kulon tapegysegrol taplalomn, nem az Arduino 5V-jarol, vagy (2) ???
(#) andykaaa válasza saua hozzászólására (») Jún 8, 2015 /
 
Nincsenek nalam az erzekelok, de ugy emlekszem DS18B20 -asok. 12 bites beolvasassal probaltam - „sensors.setResolution(Probe01, 12);” - igy.
A ket erzekelot fizikailag osszekotottem, illetve a labai ossze vannak forrasztva, igy a tenyleges homerseklet elteres szerintem kizart.
Megis egy majdnem fel oran at kovetve pontosan 0,5 Cfok elteres volt a ketto kozott.
Vagy csak pekhes vagyok es kifogtam egy hetfoi napon gyartottat ?
(#) saua válasza andykaaa hozzászólására (») Jún 8, 2015 /
 
Úgy néz ki, hogy mindent jól csináltál, de azért nem ártana egy másik kódot is kipróbálni. Például az itt levőt, a szenzorok normál módba vannak kötve, öt vonalon mér, lehet állítani a mérési pontosságot, a példában 10 bites pontosság van beállítva.
(#) andykaaa válasza saua hozzászólására (») Jún 8, 2015 /
 
Pont innen inspiraltam, a masodik koddal.
Ha itt tartunk, mit jelentsen
Idézet:
„if (tempC == -127.00)”
ez ?
Amikor nem kap jelet ?, nem olvas ?
A hozzászólás módosítva: Jún 8, 2015
(#) saua válasza andykaaa hozzászólására (») Jún 8, 2015 /
 
szerintem itt egy változót (tempC) hasonlít össze egy konstanssal (-127.00), ha egyenlő akkor történik valami...
(#) andykaaa válasza saua hozzászólására (») Jún 8, 2015 /
 
Azt irja hogy akkor „"Error getting temperature "” es ha nem - „else”, akkor megy tovabb.
Szoval az a -127.00 az a hibas beolvasast, vagy estleg a beolvasas hianyat jelentene ?
A hozzászólás módosítva: Jún 8, 2015
(#) saua válasza andykaaa hozzászólására (») Jún 8, 2015 /
 
az biztos, hogy -50 … +125 ºC tartományban mér, szerintem hibás beolvasást jelent....de, hogy miért van ott a mínusz jel ?
(#) fkx hozzászólása Jún 8, 2015 /
 
SD kártyát szeretnék kezelni arduino-val. Arduino MEGA2560-at és egy Ethernet+SD panelt használok.
Lényegében működik is a dolog, de akadt egy probléma: Ha ujratöltöm a programot az arduino-ba, vagy csak simán nyomok egy reset-et, akkor utána nem lehet elérni az SD kártyát. Ha kiveszem az SD-t és visszateszem, vagy ha a tápot megszakítom egy pillanatra, akkor ujra rendben működik.
Nem lehet valahogyan szoftverből resetelni az SD kártyát? Az lenne a lényeg, hogy ne kelljen a tápot elvenni, vagy kivenni a kártyát a foglalatból! Találkozott már más is ilyen problémával?
Következő: »»   118 / 850
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