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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-21T20:51:15+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=47&amp;t=16874&amp;mode</id>
<entry>
<author><name><![CDATA[maja35]]></name></author>
<updated>2016-11-21T20:51:15+01:00</updated>
<published>2016-11-21T20:51:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16874&amp;p=175342#p175342</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16874&amp;p=175342#p175342"/>
<title type="html"><![CDATA[Problem z odtwarzaczem DF PLAYER-mini]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16874&amp;p=175342#p175342"><![CDATA[
Witam wszystkich.<br />    Mam mały problem z odtwarzaczem a raczej z kodem, ale od początku. Jakiś czas temu wymyśliłem sobie, że zrobię sobie taki mały komunikator, który będzie mnie informował mnie o pewnych zdarzeniach głosowo. Chodzi mniej więcej o to, aby dane komunikaty zostały odtworzone jak czujniki podadzą sygnały na określone piny. Wymyśliłem sobie takie założenia:<br /><br />Czujnik 1 podaje sygnał na pin 7 i ma się po 16 sekundach odtworzyć komunikat nr.1.<br />Następnie jeśli czujnik 2 nie poda sygnału na pin 9, komunikat ma zostać powtórzony po 16 sekundach. I tak aż do  załączenia czujnika 2.<br />Następnie jeśli czujnik 2, poda sygnał na pin 9, odtwarzanie komunikatu ma zostać przerwane. Do tego momentu program wykonuje się poprawnie.<br />Następnie jeśli czujnik 2 zostanie rozłączony odtwarzanie komunikatu powinno zostać wznowione ale dopiero po 16 sek.- i tutaj jest problem, nie zawsze jest to po 16 sekundach. zależy w którym monecie czujnik 2 wstrzeli się z rozłączeniem. Czasami następuje to prawie natychmiast, czasami czeka tylko parę sekund. Owszem nieraz trafi w to 16 sekund.<br /><br />Z kolei jeśli czujnik 1 przestanie podawać sygnał na pin 7, a czujnik 2 będzie nadal podawał sygnał na pin 9, to po 3 sekundach odtworzyć ma się komunikat nr.2. i tak aż do rozłączenia czujnika 2. I tutaj też nie zawsze po rozłączeniu czujnika 1, komunikat jest  po trzech sekundach zależy kiedy wstrzeli się rozłączenie, czasami natychmiast a czasami po trzech sekundach.<br />Jestem bardzo, bardzo początkujący.  Jeśli któryś z kolegów chciałby pomóc  w rozwiązaniu mojego problemu będę wdzięczny.<br />Janusz. <br /><br /><a href="https://obrazkiforum.atnel.pl/15095/6f21afd7bdb59c508089e0e6ae72952f.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/15095/6f21afd7bdb59c508089e0e6ae72952f.png" alt="Obrazek" /></a><br />[syntax=cpp]#include &lt;DFPlayer_Mini_Mp3.h&gt;<br />#include &lt;SoftwareSerial.h&gt;<br /><br />int czujnik_1 = 7;<br />int czujnik_2 = 9;<br />int play_state = 3;<br />SoftwareSerial mySerial(10, 11); // RX, TX<br /><br />void setup() {<br />  mySerial.begin (9600);<br />  Serial.begin (9600);<br />  mp3_set_serial (mySerial);<br />  delay(1);<br />  mp3_set_volume (15);<br />  pinMode(czujnik_1, INPUT);<br />  pinMode(czujnik_2, INPUT);<br />  pinMode(play_state, INPUT);<br />}<br /><br />void zapal() {<br />  delay(16000);                                                         // czekaj 16 sekund<br />  boolean play_state = digitalRead(3);<br />  if (play_state == HIGH) {<br />    if ( digitalRead(czujnik_1) == HIGH &amp;&amp; digitalRead(czujnik_2) == LOW)// sprawdź czy dalej czujnik 1 jest włączony <br />                                                                       // i jeżeli czujnik 2 się nie włączył<br />      mp3_play(1);                                                    // graj to<br />  }<br />}<br /><br />void zgas() {<br />  delay( 3000);                                             // czekaj 3 sekundy<br />  boolean play_state = digitalRead(3);<br />  if (play_state == HIGH) {<br />    if (digitalRead(czujnik_2) == HIGH &amp;&amp; digitalRead(czujnik_1) == LOW )// sprawdź czy dalej czujnik 2 jest włączony<br />                                                                        // i jeżeli czujnik 1 jest  się wyłączył                 <br />      mp3_play(2);                                                     // graj to <br />  }<br />}<br /><br />void loop() {<br />  if ( digitalRead(czujnik_1) == HIGH) {//jeśli czujnik 1 dał sygnał wysoki<br />     zapal();//wykonaj to<br />  }<br /><br />  if ( digitalRead(czujnik_2) == HIGH){// jeśli czujnik 2 dał sygnał wysoki<br />     zgas();// wykonaj to<br />  }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=15095">maja35</a> — 21 lis 2016, o 20:51</p><hr />
]]></content>
</entry>
</feed>