<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=47&amp;t=12969&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-09-17T20:05:33+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=12969&amp;mode</id>
<entry>
<author><name><![CDATA[elav]]></name></author>
<updated>2015-09-17T20:05:33+01:00</updated>
<published>2015-09-17T20:05:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140072#p140072</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140072#p140072"/>
<title type="html"><![CDATA[Re: [MAX31855][SD] Problem z komunikacją przez SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140072#p140072"><![CDATA[
Przecież zapisuję każdy odczyt pod zmienną tempX i dopiero później go wrzucam do rekordu pliku na karcie. Z tego co wyczytałem na forum arduino być może karta SD nie zwalnia pinu CS, ale to jutro sprawdzę, spróbuję dodatkowo wykomentować wszystko co dotyczy załączania karty w setup(), bo jeżeli dobrze myślę to wtedy przynajmniej pierwszy pomiar powinien być poprawny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11084">elav</a> — 17 wrz 2015, o 20:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Wirnick]]></name></author>
<updated>2015-09-17T19:10:00+01:00</updated>
<published>2015-09-17T19:10:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140068#p140068</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140068#p140068"/>
<title type="html"><![CDATA[Re: [MAX31855][SD] Problem z komunikacją przez SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140068#p140068"><![CDATA[
<div class="quotetitle">elav napisał(a):</div><div class="quotecontent"><br />I tutaj pojawia się problem, i MAX31855, i karta SD osobno pracują idealnie, razem nie chcą się dogadywać za cholerę. Jako zwrot z przetwornika dostaję zera, żadnego błędu lub wartości, ale zera. Z tego co wyczytałem na forum arduino chodzi o zajmowanie przez kartę SD pinu CS.<br /></div><br />Muszę coś napisać - chociaż jestem na etapie multipleksowania wyświetlaczy LED z BB i poradnika o klonach. Praca mP to ciągłe multipleksowanie - nic nie dzieje się jednocześnie. Ty chciałbyś jednocześnie wysyłać informację na terminal(mieć informację bieżącą) i zapisywać na SD(tworzyć archiwum) - to się nie da. A jakbyś zapisywał pomiary tempx do tablicy lub nawet unii a w następnym kroku FCPU zapisać całość do SD(mając na uwadze ilość cykli zapisu i kasowania) lub wysłać gdziekolwiek stosując odpowiednie formatowanie informacji.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9272">Wirnick</a> — 17 wrz 2015, o 19:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elav]]></name></author>
<updated>2015-09-17T16:03:03+01:00</updated>
<published>2015-09-17T16:03:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140050#p140050</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140050#p140050"/>
<title type="html"><![CDATA[Re: [MAX31855][SD] Problem z komunikacją przez SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140050#p140050"><![CDATA[
<div class="quotetitle">icer_cmg napisał(a):</div><div class="quotecontent"><br />Po pierwsze zamieść kod i schemat. Wtedy myślę dość szybko będzie odpowiedź.<br /></div><br /><br />Wszystko dodane <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11084">elav</a> — 17 wrz 2015, o 16:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[icer_cmg]]></name></author>
<updated>2015-09-17T15:43:29+01:00</updated>
<published>2015-09-17T15:43:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140049#p140049</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140049#p140049"/>
<title type="html"><![CDATA[Re: [MAX31855][SD] Problem z komunikacją przez SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140049#p140049"><![CDATA[
Po pierwsze zamieść kod i schemat. Wtedy myślę dość szybko będzie odpowiedź.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1636">icer_cmg</a> — 17 wrz 2015, o 15:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[elav]]></name></author>
<updated>2015-09-17T16:02:16+01:00</updated>
<published>2015-09-17T15:27:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140046#p140046</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140046#p140046"/>
<title type="html"><![CDATA[[MAX31855][SD] Problem z komunikacją przez SPI]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=12969&amp;p=140046#p140046"><![CDATA[
Witajcie!<br /><br />Stworzyłem shield dla arduino, który ma działać jako 6-kanałowe urządzenie do pomiaru temperatury na maszynie do odlewania odśrodkowego. Płytka oparta jest o przetworniki MAX31855, które komunikują się z mikrokontrolerem poprzez software SPI. Wszystko zostało przetestowane w serial monitorze i hula aż miło. Jednak projekt został docelowo przygotowany, aby zbierane dane były zapisywane w pliku na karcie sd (bo w końcu to odlewanie odśrodkowe <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" />. I tutaj pojawia się problem, i MAX31855, i karta SD osobno pracują idealnie, razem nie chcą się dogadywać za cholerę. Jako zwrot z przetwornika dostaję zera, żadnego błędu lub wartości, ale zera. Z tego co wyczytałem na forum arduino chodzi o zajmowanie przez kartę SD pinu CS. <br /><br />Googlując dotarłem do tego tematu: <a href="http://forum.arduino.cc/index.php?topic=297057.msg2093668#msg2093668"  class="postlink">klik</a>, a z niego użytkownicy kierowali do postu #15 w <a href="http://forum.arduino.cc/index.php?topic=276274.15"  class="postlink">tym</a> temacie. Zainstalowałem nawet bibliotekę SdFat.h użytkownika fat16lib, jednak to nie poskutkowało, więc nie wiem co robię źle... Dlatego zwracam się do was z prośbą o jakieś rady, pomysły, cokolwiek.<br /><br />Elav<br /><br />EDIT:<br />Karta SD jest podłączona poprzez ICSP i nie jest naniesiona na schemat<br /><br />Schemat:<br /><a href="https://obrazkiforum.atnel.pl/11084/e23e298e5b1f8301f8da67ff19d14261.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/11084/e23e298e5b1f8301f8da67ff19d14261.png" alt="Obrazek" /></a><br /><br />Kod:[syntax=cpp]#include &lt;SPI.h&gt;<br />#include &lt;SD.h&gt;<br />#include &lt;Adafruit_MAX31855.h&gt;<br /><br />unsigned long czas;<br />const int LED = 2;<br />const int sdPIN = 4;<br />File datalog;<br /><br />#define SO  13<br />#define SCK 12<br />#define CS1 11<br />#define CS2 10<br />#define CS3 9<br />#define CS4 8<br />#define CS5 7<br />#define CS6 6<br /><br />Adafruit_MAX31855 termopara1(SCK, CS1, SO);<br />Adafruit_MAX31855 termopara2(SCK, CS2, SO);<br />Adafruit_MAX31855 termopara3(SCK, CS3, SO);<br />Adafruit_MAX31855 termopara4(SCK, CS4, SO);<br />Adafruit_MAX31855 termopara5(SCK, CS5, SO);<br />Adafruit_MAX31855 termopara6(SCK, CS6, SO);<br /><br />void setup() {<br />  Serial.begin(9600);<br />  pinMode (LED, OUTPUT);<br />  Serial.println(&quot;Stabilizowanie MAX31855&quot;);<br />  delay(500);<br /><br />  //wlaczenie karty sd<br />  Serial.println(&quot;Wlaczanie karty SD...&quot;);<br />  if (!SD.begin(sdPIN)){<br />    Serial.println(&quot;Blad karty lub karta nieobecna&quot;);<br />    return;<br />  }<br />  Serial.println(&quot;Karta wlaczona pomyslnie&quot;);<br /><br />  //zarzadzanie plikami<br />  if (SD.exists(&quot;datalog.txt&quot;)) {<br />    Serial.println(&quot;Plik datalog.txt istnieje. Usuwanie...&quot;);<br />    SD.remove(&quot;datalog.txt&quot;);<br />    Serial.println(&quot;Tworzenie pustego pliku datalog.txt.&quot;);<br />    datalog = SD.open(&quot;datalog.txt&quot;, FILE_WRITE);<br />    datalog.print(&quot;Czas \t t1 \t t2 \t t3 \t t4 \t t5 \t t6&quot;);<br />    datalog.println(); <br />    datalog.close();<br />  }<br />  else {<br />    Serial.println(&quot;Plik datalog.txt nie istnieje. Tworzenie pustego pliku...&quot;);<br />    datalog = SD.open(&quot;datalog.txt&quot;, FILE_WRITE);    <br />    datalog.print(&quot;Czas \t t1 \t t2 \t t3 \t t4 \t t5 \t t6&quot;);<br />    datalog.println(); <br />    datalog.close();<br />  }<br />}<br /><br />void loop() {<br />  digitalWrite (LED, HIGH);<br />  czas = millis();<br /> <br />  double temp1 = termopara1.readCelsius();<br />  double temp2 = termopara2.readCelsius();<br />  double temp3 = termopara3.readCelsius();<br />  double temp4 = termopara4.readCelsius();<br />  double temp5 = termopara5.readCelsius();<br />  double temp6 = termopara6.readCelsius();<br /><br />  datalog = SD.open(&quot;datalog.txt&quot;, FILE_WRITE);<br />  if (datalog) {<br /><br />    datalog.print(czas);<br />    datalog.print(&quot;\t&quot;);<br />      <br />    if (isnan(temp1)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp1);<br />      datalog.print(&quot;\t&quot;);<br />    }<br /><br />    if (isnan(temp2)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp2);<br />      datalog.print(&quot;\t&quot;);<br />    }<br /><br />    if (isnan(temp3)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp3);<br />      datalog.print(&quot;\t&quot;);<br />    }<br /><br />    if (isnan(temp4)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp4);<br />      datalog.print(&quot;\t&quot;);<br />    }<br /><br />    if (isnan(temp5)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp5);<br />      datalog.print(&quot;\t&quot;);<br />    }<br /><br />    if (isnan(temp6)) {<br />      datalog.print(&quot;ERR&quot;);<br />      datalog.print(&quot;\t&quot;);<br />    } else {<br />      datalog.print(temp6);<br />      datalog.print(&quot;\t&quot;);<br />    }<br />  <br />  datalog.println();<br />  }<br />  else {<br />    Serial.println(&quot;Nie mozna otworzyc datalog.txt&quot;);<br />  }<br />  datalog.close();<br />  digitalWrite (LED, LOW);<br />  delay (1000);<br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=11084">elav</a> — 17 wrz 2015, o 15:27</p><hr />
]]></content>
</entry>
</feed>