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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-07-27T07:54:35+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=15855&amp;mode</id>
<entry>
<author><name><![CDATA[motorolac116]]></name></author>
<updated>2016-07-27T07:54:35+01:00</updated>
<published>2016-07-27T07:54:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164800#p164800</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164800#p164800"/>
<title type="html"><![CDATA[Re: Problem z Arduino MEGA 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164800#p164800"><![CDATA[
Wgrałem program który zajmuje o wiele więcej pamięci i wgrał się bez problemu, a więc problem leży po stronie napisanego programu. Czy ktoś może sprawdzić napisany kod, bo ani ja ani &quot;kompilator&quot; nie znalazł błędu?<br /><br /><br />Właśnie wykasowałem całą pętle &quot;alarm();&quot; i program się wgrał bez problemu. Czy ktoś widzi w tej pętli błąd, jestem naprawdę ciekawy co w niej powoduje takie zachowanie<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 58 minutach ]</span></strong><br /><br />Niewiarygodne ale prawdziwe!!! Udało mi się rozwiązać problem. Okazało się iż problem sprawiała linijka:<br />[syntax=cpp]Serial.println(&quot;ALARM!!!&quot;);[/syntax]<br /><br />Wystarczyło wykasować wykrzykniki i problem znikł. Czy może ktoś wytłumaczyć dlaczego tak się dzieje? Może ta wiadomość komuś  się przyda.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14544">motorolac116</a> — 27 lip 2016, o 07:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[motorolac116]]></name></author>
<updated>2016-07-26T13:31:33+01:00</updated>
<published>2016-07-26T13:31:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164755#p164755</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164755#p164755"/>
<title type="html"><![CDATA[Re: Problem z Arduino MEGA 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164755#p164755"><![CDATA[
<div class="quotetitle">nemo napisał(a):</div><div class="quotecontent"><br />Prawdopodobnie błąd jest w linii 60:<br />   odebraneDane = Serial1.readStringUntil('13'); <br />a konkretnie funkcja Serial1.readStringUntil(), jako parametru oczekuje danej typu char a otrzymuje '13'.<br /><br />Podanie parametru w postaci:<br />  odebraneDane = Serial1.readStringUntil(13);<br />nie zgłasza ostrzeżeń.<br /><br />Pytanie do bardziej zaawansowanych:<br />jak kompilator zinterpretuje przypisanie danej typu char w postaci  '13'?<br /></div><br /><br />Sprawdziłem i niestety to nie jest przyczyną. Wcześniej już używałem &quot; odebraneDane = Serial1.readStringUntil(13);&quot; tej linijki kodu i wgrywało normalnie. Ale dziękuje za odpowiedź i czekam na kolejne, bo już naprawdę nie wiem co z tym zrobić<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14544">motorolac116</a> — 26 lip 2016, o 13:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[nemo]]></name></author>
<updated>2016-07-26T12:43:09+01:00</updated>
<published>2016-07-26T12:43:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164751#p164751</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164751#p164751"/>
<title type="html"><![CDATA[Re: Problem z Arduino MEGA 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164751#p164751"><![CDATA[
Prawdopodobnie błąd jest w linii 60:<br />   odebraneDane = Serial1.readStringUntil('13'); <br />a konkretnie funkcja Serial1.readStringUntil(), jako parametru oczekuje danej typu char a otrzymuje '13'.<br /><br />Podanie parametru w postaci:<br />  odebraneDane = Serial1.readStringUntil(13);<br />nie zgłasza ostrzeżeń.<br /><br />Pytanie do bardziej zaawansowanych:<br />jak kompilator zinterpretuje przypisanie danej typu char w postaci  '13'?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13966">nemo</a> — 26 lip 2016, o 12:43</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[motorolac116]]></name></author>
<updated>2016-07-25T20:43:15+01:00</updated>
<published>2016-07-25T20:43:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164718#p164718</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164718#p164718"/>
<title type="html"><![CDATA[Problem z Arduino MEGA 2560]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15855&amp;p=164718#p164718"><![CDATA[
Witam. Jestem pierwszy raz na tym forum. Szukam kogoś kto odpowie mi na pytanie dlaczego nie mogę wgrać mojego programu do Arduino Mega 2560. Dodam że przykładowe programy jak Blink itp. można wrzucić na mikrokontroler i wszystko fajnie działa, także inne mniejsze programy przezemnie pliki działają bez zarzutu, tylko z tym jednym jest problem. Kombinowałem już na wszystkie sposoby i nic. Niby wgrywa, diody na arduino zaczną migać(Tx i Rx) skończą migać, a na Adruino IDE ciągle widnieje napis &quot;wgrywanie&quot; no i po resecie na Arduino Mega pozostaje stary program. Dodam ze jest to klon Arduino Mega z programatorem CH340G. Mam drugą płytkę identyczną i na niej dzieje się to samo, wiec nie wiem czy wina leży po stronie napisanego programu czy może samej płytki Arduino. Bardzo proszę o odpowiedź jeśli ktoś wie co robię źle.<br />Pozdrawiam<br /><br />PS. Poniżej  przesyłam program który usiłuję wgrać na płytkę Arduino.<br /><br />[syntax=C++]String odebraneDane = &quot;&quot;;<br /><br /><br />bool SalonSwiatlo = 0; // wylacz wszystkie zarowki<br />bool KuchniaSwiatlo = 0;<br />bool KorytarzSwiatlo = 0;<br />bool LazienkaSwiatlo = 0;<br />bool GarazSwiatlo = 0;<br /><br />bool ZarowkaSalonSwiatlo = 0; //znaczniki zarowek<br />bool ZarowkaKuchniaSwiatlo = 0;<br />bool ZarowkaKorytarzSwiatlo = 0;<br />bool ZarowkaLazienkaSwiatlo = 0;<br />bool ZarowkaGarazSwiatlo = 0;<br /><br />//WYJSCIA<br />#define pr1 12<br />#define pr2 3<br />#define pr3 4<br />#define pr4 11<br />#define pr5 10<br />//KONIEC WYJSC<br /><br />//WEJSCIA<br />#define PrzyciskSabotazu 7<br />//KONIEC WEJSC<br /><br /><br />void setup() {<br />  <br /><br /><br />  Serial.begin(9600); //Uruchomienie komunikacji<br />  Serial1.begin(9600);<br />  pinMode(pr1, OUTPUT); //Konfiguracja wyjĹ›Ä‡<br />  pinMode(pr2, OUTPUT);<br />  pinMode(pr3, OUTPUT);<br />  pinMode(pr4, OUTPUT);<br />  pinMode(pr5, OUTPUT);<br /><br />  digitalWrite(pr1, HIGH); //WyĹ‚Ä…czamy przekazniki<br />  digitalWrite(pr2, HIGH);<br />  digitalWrite(pr3, HIGH);<br />  digitalWrite(pr4, HIGH);<br />  digitalWrite(pr4, HIGH);<br /><br />  Serial1.write(&quot;korz&quot;); //podczas startu programu wyĹ‚Ä…cz wszystkie &quot;zarowki&quot; w programie .apk<br />  Serial1.write(&quot;lz&quot;);<br />  Serial1.write(&quot;kz&quot;);<br />  Serial1.write(&quot;sz&quot;);<br />  Serial1.write(&quot;gz&quot;);<br /><br />}<br /><br />void loop() {<br /><br /><br />  if (Serial1.available() &gt; 0) { //Czy Arduino odebrano dane<br />    //JeĹ›li tak, to odczytujemy je do znaku koĹ„ca linii i zapisz w zmiennej odebraneDane<br />    odebraneDane = Serial1.readStringUntil('13');<br />    Serial.println(odebraneDane);//jesli odebrano dane z Serial1 to wyĹ›lij je do Serial<br />  }<br /><br />  if (odebraneDane == &quot;SWWL&quot;) { //jesli odebrano &quot;SWWL&quot; to idz do petli &quot;WlaczWszystkieSwiatla&quot;<br />    WlaczWszystkieSwiatla();<br />  }<br />  if (odebraneDane == &quot;SWWYL&quot;) { //jesli odebrano &quot;SWWYL&quot; to idz do petli &quot;WylaczWszystkieSwiatla&quot;<br />    WylaczWszystkieSwiatla();<br />  }<br />  if (odebraneDane == &quot;alarm&quot;) { //jesli odebrano &quot;alarm&quot; to idz do petli &quot;alarm&quot;<br />    alarm();<br />  }<br />  if (odebraneDane == &quot;SalonSwiatlo&quot;) { //JeĹ›li odebrano sĹ‚owo &quot;SalonSwiatlo&quot; lub nacisnieto wlacznik<br />    SalonSwiatlo = !SalonSwiatlo; //to zmien zmienna na przeciwnÄ…<br />  }<br />  if (odebraneDane == &quot;KuchniaSwiatlo&quot;) { //JeĹ›li odebrano sĹ‚owo &quot;KuchniaSwiatlo&quot; lub nacisnieto wlacznik<br />    KuchniaSwiatlo = !KuchniaSwiatlo; //to zmien zmienna na przeciwnÄ…<br />  }<br />  if (odebraneDane == &quot;KorytarzSwiatlo&quot;) { //JeĹ›li odebrano sĹ‚owo &quot;KorytarzSwiatlo&quot; lub nacisnieto wlacznik<br />    KorytarzSwiatlo = !KorytarzSwiatlo; //to zmien zmienna na przeciwnÄ…<br />  }<br />  if (odebraneDane == &quot;LazienkaSwiatlo&quot;) { //JeĹ›li odebrano sĹ‚owo &quot;LazienkaSwiatlo&quot; lub nacisnieto wlacznik<br />    LazienkaSwiatlo = !LazienkaSwiatlo; //to zmien zmienna na przeciwnÄ…<br />  }<br />  if (odebraneDane == &quot;GarazSwiatlo&quot;) { //JeĹ›li odebrano sĹ‚owo &quot;GarazSwiatlo&quot; lub nacisnieto wlacznik<br />    GarazSwiatlo = !GarazSwiatlo; //to zmien zmienna na przeciwnÄ…<br />  }<br /><br />  wykonaj();//Idz do petli wykonaj gdzie zostana wykonane wszystkie zadania, zaswiecen itp.<br /><br />}// koniec &quot;loop&quot;<br /><br />void WlaczWszystkieSwiatla() {<br /><br />  SalonSwiatlo = 1;<br />  KuchniaSwiatlo = 1;<br />  KorytarzSwiatlo = 1;<br />  LazienkaSwiatlo = 1;<br />  GarazSwiatlo = 1;<br /><br />}// koniec &quot;WlaczWszystkieSwiatla&quot;<br /><br />void WylaczWszystkieSwiatla() {<br /><br /><br />  SalonSwiatlo = 0;<br />  KuchniaSwiatlo = 0;<br />  KorytarzSwiatlo = 0;<br />  LazienkaSwiatlo = 0;<br />  GarazSwiatlo = 0;<br /><br />}// koniec &quot;WylaczWszystkieSwiatla&quot;<br /><br />void alarm() {<br /><br />  int StanAlarmu = 1;<br />  bool wlamanie = 0;<br />  Serial1.println(&quot;AlarmAktywny&quot;);<br />  Serial.println(&quot;funkcja alarm aktywowana&quot;);<br />  while (StanAlarmu = 1) {<br />    Serial.println(&quot;ALARM!!!&quot;);<br /><br />    ////tutaj KOD do wykonania alarmu////<br />    if (wlamanie == 0) { //jesli alarm jest w trybie czuwania to tutaj instrukcje<br /><br />      if (digitalRead(PrzyciskSabotazu) == LOW) { //jesli sabotaz to wĹ‚Ä…cz pÄ™tle wĹ‚amanie<br />        wlamanie = 1;<br />      }<br /><br />    }//koniec instrukcji czuwanie<br />    while (wlamanie == 1) { //jesli WĹ�AMANIE to tutaj wykonujemy instrukcje<br /><br />      Serial1.write(&quot;WLAMANIE&quot;);<br />      SalonSwiatlo = 1;<br />      wykonaj();<br />      KuchniaSwiatlo = 1;<br />      wykonaj();<br />      KorytarzSwiatlo = 1;<br />      wykonaj();<br />      LazienkaSwiatlo = 1;<br />      wykonaj();<br />      GarazSwiatlo = 1;<br />      wykonaj();<br /><br />      SalonSwiatlo = 0;<br />      wykonaj();<br />      KuchniaSwiatlo = 0;<br />      wykonaj();<br />      KorytarzSwiatlo = 0;<br />      wykonaj();<br />      LazienkaSwiatlo = 0;<br />      wykonaj();<br />      GarazSwiatlo = 0;<br />      wykonaj();<br /><br />      if (odebraneDane == &quot;alarm&quot;) {<br />        StanAlarmu = 0; //Tutaj koniec alarmu jesli wpiszemy poprawny kod<br />        wlamanie = 0;<br />        Serial.println(&quot;Alarm WyĹ‚Ä…czony&quot;);<br />        Serial1.println(&quot;AlarmNieAktywny&quot;);<br />      }<br />    }//koniec instrukcji gdy WĹ�AMANIE<br /><br />    if (odebraneDane == &quot;alarm&quot;) {<br />      StanAlarmu = 0; //Tutaj koniec alarmu jesli wpiszemy poprawny kod<br />      Serial.println(&quot;Alarm WyĹ‚Ä…czony&quot;);<br />      Serial1.println(&quot;AlarmNieAktywny&quot;);<br />    }<br />  }<br />}//koniec &quot;alarm&quot;<br /><br /><br />void wykonaj() {<br /><br />  //////NAJPIERW ZASWIEC ZAROWKI LUB ZGAS i PRZYPISZ WARTOSC ZNACZNIKA ZAROWEK//////<br />  if (SalonSwiatlo == 1) {<br />    digitalWrite(pr1, LOW); //To wĹ‚Ä…czamy swiatlo<br />    ZarowkaSalonSwiatlo = 1;<br />  }<br />  else {<br />    digitalWrite(pr1, HIGH);<br />    ZarowkaSalonSwiatlo = 0;<br />  }<br /><br />  if (KuchniaSwiatlo == 1) {<br />    digitalWrite(pr2, LOW); //To wĹ‚Ä…czamy swiatlo<br />    ZarowkaKuchniaSwiatlo = 1;<br />  }<br />  else {<br />    digitalWrite(pr2, HIGH);<br />    ZarowkaKuchniaSwiatlo = 0;<br />  }<br />  if (KorytarzSwiatlo == 1) {<br />    digitalWrite(pr3, LOW); //To wĹ‚Ä…czamy swiatlo<br />    ZarowkaKorytarzSwiatlo = 1;<br />  }<br />  else {<br />    digitalWrite(pr3, HIGH);<br />    ZarowkaKorytarzSwiatlo = 0;<br />  }<br />  if (LazienkaSwiatlo == 1) {<br />    digitalWrite(pr4, LOW); //To wĹ‚Ä…czamy swiatlo<br />    ZarowkaLazienkaSwiatlo = 1;<br />  }<br />  else {<br />    digitalWrite(pr4, HIGH);<br />    ZarowkaLazienkaSwiatlo = 0;<br />  }<br />  if (GarazSwiatlo == 1) {<br />    digitalWrite(pr5, LOW); //To wĹ‚Ä…czamy swiatlo<br />    ZarowkaGarazSwiatlo = 1;<br />  }<br />  else {<br />    digitalWrite(pr5, HIGH);<br />    ZarowkaGarazSwiatlo = 0;<br />  }<br />  ////NASTEPNIE W ZALEZNOSNI OD ZNACZNIKA ZAROWEK ZMIEN STAN &quot;ZAROWEK&quot;/////<br />  if (ZarowkaSalonSwiatlo == 1) {<br />    Serial1.write(&quot;SZ&quot;);<br />  }<br />  else {<br />    Serial1.write(&quot;sz&quot;);<br />  }<br />  if (ZarowkaKuchniaSwiatlo == 1) {<br />    Serial1.write(&quot;KZ&quot;);<br />  }<br />  else {<br />    Serial1.write(&quot;kz&quot;);<br />  }<br />  if (ZarowkaKorytarzSwiatlo == 1) {<br />    Serial1.write(&quot;KORZ&quot;);<br />  }<br />  else {<br />    Serial1.write(&quot;korz&quot;);<br />  }<br />  if (ZarowkaLazienkaSwiatlo == 1) {<br />    Serial1.write(&quot;LZ&quot;);<br />  }<br />  else {<br />    Serial1.write(&quot;lz&quot;);<br />  }<br />  if (ZarowkaGarazSwiatlo == 1) {<br />    Serial1.write(&quot;GZ&quot;);<br />  }<br />  else {<br />    Serial1.write(&quot;gz&quot;);<br />  }<br />}// koniec &quot;wykonaj&quot;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14544">motorolac116</a> — 25 lip 2016, o 20:43</p><hr />
]]></content>
</entry>
</feed>