<?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=24009&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-10-31T12:34:00+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=24009&amp;mode</id>
<entry>
<author><name><![CDATA[Draxter32]]></name></author>
<updated>2021-10-31T12:34:00+01:00</updated>
<published>2021-10-31T12:34:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234161#p234161</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234161#p234161"/>
<title type="html"><![CDATA[Re: Arduino UNO/MEGA + modbus rtu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234161#p234161"><![CDATA[
W jaki sposób podłączyłeś czujniki do MCU? Czy wykorzystujesz zasilanie pasożytnicze na magistrali 1-wire czy może zewnętrzne?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8185">Draxter32</a> — 31 paź 2021, o 12:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2021-10-30T16:21:22+01:00</updated>
<published>2021-10-30T16:21:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234146#p234146</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234146#p234146"/>
<title type="html"><![CDATA[Re: Arduino UNO/MEGA + modbus rtu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234146#p234146"><![CDATA[
Arduino to klon a co do ds- to mnie zaskoczyłeś bo nie wiedziałem że też są podruby<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 30 paź 2021, o 16:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[endurasek]]></name></author>
<updated>2021-10-30T07:02:34+01:00</updated>
<published>2021-10-30T07:02:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234142#p234142</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234142#p234142"/>
<title type="html"><![CDATA[Arduino UNO/MEGA + modbus rtu]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24009&amp;p=234142#p234142"><![CDATA[
Witam<br />Mam problem z programem na arduino. Po wgraniu programu do arduino widać że działa przez jakiś czas. Bardzo często się zawieszał i przestawał wysyłać dane do sterownika PLC. W celu sprawdzenia czy program dalej pracuje dodałem migającą diodę na wyjściu 13 i zmieniłem płytkę na mega w celu monitorowania w terminalu czy temperatura nadal jest odczytywana. Po tym zabiegu widzę że przez jakiś czas dioda miga na płytce ale już przestaje wysyłać temp. po modbasie ale w terminalu dalej widać że odczytuje ( mega dla tego bo ma więcej portów rx tx) I co może być tego przyczyną? błędna biblioteka? może ktoś ma jakiś pomysł by to sprawdzić?<br />[syntax=cpp]#include &lt;modbus.h&gt;<br />#include &lt;modbusDevice.h&gt;<br />#include &lt;modbusRegBank.h&gt;<br />#include &lt;modbusSlave.h&gt;<br />#include &lt;avr/wdt.h&gt;  //to jest potrzebne do obslugi whatdoga<br />modbusDevice regBank;<br />modbusSlave slave;<br /><br />#include &lt;OneWire.h&gt;<br />#include &lt;DS18B20.h&gt;<br /><br />#define ONE_WIRE_BUS3   3<br />#define ONE_WIRE_BUS4   4<br />#define ONE_WIRE_BUS5   5<br />#define ONE_WIRE_BUS6   6<br />#define ONE_WIRE_BUS7   7<br /><br />#define LED 13                                               <br />unsigned long previousMillis;   // variable for comparing millis counter<br />bool ledState = false;       // will determine current led state <br /><br />OneWire oneWire3(ONE_WIRE_BUS3);<br />OneWire oneWire4(ONE_WIRE_BUS4);<br />OneWire oneWire5(ONE_WIRE_BUS5);<br />OneWire oneWire6(ONE_WIRE_BUS6);<br />OneWire oneWire7(ONE_WIRE_BUS7);<br /><br />DS18B20 czujnik_1(&amp;oneWire3);<br />DS18B20 czujnik_2(&amp;oneWire4);<br />DS18B20 czujnik_3(&amp;oneWire5);<br />DS18B20 czujnik_4(&amp;oneWire6);<br />DS18B20 czujnik_5(&amp;oneWire7);<br /><br />#define RS485TxEnablePin 2<br />#define RS485Baud 57600<br />#define RS485Format SERIAL_8N1<br /><br />//wyjscia<br />#define OUT1 8<br />#define OUT2 9<br />#define OUT3 10<br />#define OUT4 11<br />#define OUT5 12<br /><br />float temp_1;<br />float temp_2;<br />float temp_3;<br />float temp_4;<br />float temp_5;<br /><br />void setup()<br />{   <br /> wdt_enable(WDTO_500MS);    // URUCHOMIENIE WHATCHDOGA<br /> wdt_reset();<br /><br /> Serial.begin(57600);<br /> <br />  pinMode(OUT1, OUTPUT);  //8<br />  pinMode(OUT2, OUTPUT);  //9<br />  pinMode(OUT3, OUTPUT);  //10<br />  pinMode(OUT4, OUTPUT);   //11<br />  pinMode(OUT5, OUTPUT);  //12<br />  pinMode(LED, OUTPUT);  //13<br />                  <br /><br />  digitalWrite(OUT1, LOW);<br />  digitalWrite(OUT2, LOW);<br />  digitalWrite(OUT3, LOW);<br />  digitalWrite(OUT4, LOW);<br />  digitalWrite(OUT5, LOW);<br />  <br />  <br />//Assign the modbus device ID.  <br />  regBank.setId(1);<br /><br />/*<br />modbus registers follow the following format<br />00001-09999  Digital Outputs, A master device can read and write to these registers<br />10001-19999  Digital Inputs, A master device can only read the values from these registers<br />30001-39999  Analog Inputs, A master device can only read the values from these registers<br />40001-49999  Analog Outputs, A master device can read and write to these registers <br /><br />Analog values are 16 bit unsigned words stored with a range of 0-32767<br />Digital values are stored as bytes, a zero value is OFF and any nonzer value is ON<br /><br />*/<br />czujnik_1.begin();<br />czujnik_1.setResolution(10);<br />czujnik_1.requestTemperatures();<br /><br />czujnik_2.begin();<br />czujnik_2.setResolution(10);<br />czujnik_2.requestTemperatures();<br /><br />czujnik_3.begin();<br />czujnik_3.setResolution(10);<br />czujnik_3.requestTemperatures();<br /><br />czujnik_4.begin();<br />czujnik_4.setResolution(10);<br />czujnik_4.requestTemperatures();<br /><br />czujnik_5.begin();<br />czujnik_5.setResolution(10);<br />czujnik_5.requestTemperatures();<br /><br />//Add Analog Input registers to the register bank<br />  regBank.add(30001);  <br />  regBank.add(30002);  <br /> <br /><br />//Add Analog Output registers to the register bank<br />  regBank.add(40001);  <br />  regBank.add(40002);<br />  regBank.add(40003);<br />  regBank.add(40004);<br />  regBank.add(40005);<br /><br /><br />  slave._device = &amp;regBank;  <br /><br />  slave.setBaud(&amp;Serial3,RS485Baud,RS485Format,RS485TxEnablePin);   //Serial3 jest dla mega<br /><br /><br />}<br /><br />void loop(){<br />  <br /> <br />  if (millis() - previousMillis &gt;= 1000)  // check that 1000ms is pass<br />  {<br />    if (ledState == false) {              // check the leddState and toggle it. <br />      ledState = true;<br />    }<br />    else {<br />      ledState = false;<br />    }<br />    digitalWrite(LED, ledState);          // Set LED state to ledState <br />    previousMillis = millis();            // set previousMillis to current millis<br />    <br />  }<br />  wdt_reset();  <br />//------------<br />  if (czujnik_1.isConversionComplete())<br />  {<br />    temp_1 = (czujnik_1.getTempC()*10);<br />    czujnik_1.requestTemperatures();<br />  }<br /> Serial.print(&quot;czujnik_1-&quot;);<br /> Serial.println(temp_1, 0);   <br /> <br /> wdt_reset(); <br /> <br />  if (czujnik_2.isConversionComplete())<br />  {<br />    temp_2 = (czujnik_2.getTempC()*10);<br />    czujnik_2.requestTemperatures();<br />  }<br /><br />  wdt_reset(); <br />  <br />  if (czujnik_3.isConversionComplete())<br />  {<br />    temp_3 =  (czujnik_3.getTempC()*10);<br />    czujnik_3.requestTemperatures();<br />  }<br />  else<br />  temp_3 = -4370;<br />  wdt_reset(); <br />  <br />  if (czujnik_4.isConversionComplete())<br />  {<br />    temp_4 = (czujnik_4.getTempC()*10);<br />    czujnik_4.requestTemperatures();<br />  }<br />  else <br />  temp_4 = -4370;<br />  <br />  wdt_reset(); <br />  <br />  if (czujnik_5.isConversionComplete())<br />  {<br />    temp_5 = (czujnik_5.getTempC()*10);<br />    czujnik_5.requestTemperatures();<br />  }<br />   else <br />   temp_5 = -4370;<br /> <br />  regBank.set(40001, (float) temp_1 );<br />  wdt_reset();<br />  regBank.set(40002, (float) temp_2 );<br />  wdt_reset();<br />  regBank.set(40003, (float) temp_3 );<br />  wdt_reset();<br />  regBank.set(40004, (float) temp_4 );<br />  wdt_reset();<br />  regBank.set(40005, (float) temp_5 );<br />  wdt_reset();<br />  slave.run();  <br />  <br />  wdt_reset();<br />Serial.print(&quot;wdt- &quot;);<br /> Serial.println(previousMillis); <br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1442">endurasek</a> — 30 paź 2021, o 07:02</p><hr />
]]></content>
</entry>
</feed>