Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 21 maja 2025, o 12:54


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 
    Autor Wiadomość
    PostNapisane: 19 gru 2013, o 09:05 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Próbuje sterować arduino poprzez ethernet. Wczytałem kod z przykładów zawartych w programie i zaczął wyświetlac wartości poprzez www(działa). Dodatkowo chciałe do projektu dodać obsługę RTC. Po dodaniu samych bibliotek od RTC i wire serwer www juz przestał działać. Czy te biblioteki lub moduły mogą razem współpracować? Czy bardziej prawdopodobny jest błąd ludzki czyli mój:).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 gru 2013, o 10:51 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Możliwe. Niekiedy biblioteki się gryzą. Ale nie powiem ci czy to jest akurat ten przypadek bo nie znam tych bibliotek. To już musisz sobie sprawdzić sam. A zachodzi to gdy dwie biblioteki próbują przejąć kontrolę nad tymi samymi zasobami sprzętowymi. Typowy przypadek: w Arduino są trzy timery (w podstawowym modelu - Arduino UNO), z których jeden jest wykorzystywany przez biblioteki systemowe, więc twórcy bibliotek z niego z reguły nie korzystają. Pozostają dwa: 16 bitowy i 8 bitowy. Twórcy obu użytych bibliotek mogą stwierdzić, że skorzystają akurat z tego samego timera i jest zonk. Można spróbować przerobić którąś bibliotekę przenosząc na drugi timer.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 gru 2013, o 11:11 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Oczywiście jako użytkownik arduino jestem żółtodziobem. Jak mogę sprawdzić gdzie leży problem? Może ktoś może podać sprawdzone biblioteki?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 gru 2013, o 11:34 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Trzeba w opisie albo w kodzie sobie zobaczyć z czego biblioteka korzysta. Daj linki do tych biblio to rzucę okiem.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 gru 2013, o 12:56 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Interesuje mnie webserwer oraz RTC jednocześnie. Z góry dziękuję.


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 19 gru 2013, o 13:55 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Te biblioteki same z siebie się nie gryzą, ethernet używa SPI a rtclib I2C (przez biblio Wire) czyli całkiem inne moduły i całkiem inne piny. Ale jest jedno podejrzane miejsce, mianowicie w kodzie webserwera (domyślam się, że używasz przykładowego kodu) program odpytuje wszystkie wejścia analogowe. To jest ten fragment:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Magistrala I2C działa używa dwóch pinów wspódzielonych z pinami analogowymi (np. w Arduino UNO są to A4 i A5). Być może tu jest przyczyna.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 00:42 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Miałeś rację twoje rozwiązanie pomogło. Proszę jeszcze raz o spojrzenie na projekt bo efekt ten sam gdy dodaje rtc, znika serwer.


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 03:08 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 17 sie 2013
    Posty: 3797
    Lokalizacja: Grudziądz
    Pomógł: 143

    To pomogło czy nie?

    Wysłane z telefonu

    _________________
    Usługi druku przestrzennego - www.drumik.pl



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 09:40 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Pomogło na poprzedni projekt ten w załączniku jest inny. Nowy projekt jest wzbogacony o bibliotekę do obsługi kart SD.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 15:26 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Czytam od wczoraj i dochodzę do wniosku że RTC i karta sd używają tego samego interfejsu? I2c oraz cc od karty sd to pin 4.
    Kod:
      SD card test
       
     This example shows how use the utility libraries on which the'
     SD library is based in order to get info about your SD card.
     Very useful for testing a card when you're not sure whether its working or not.
       
     The circuit:
      * SD card attached to SPI bus as follows:
     ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
     ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
     ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
     ** CS - depends on your SD card shield or module.
            Pin 4 used here for consistency with other Arduino examples

    Czy moje przypuszczenia są poprawne, jeżeli tak to jak z tym się uporać?

    Znalazłem jeszcze informacje o podobnym problemie. Proszę o wyjaśnienie poniższego kodu:
    Kod:
    // disable RTC SPI
      pinMode(7,OUTPUT);
      digitalWrite(7,HIGH);

      // disable w5100 SPI
      pinMode(10,OUTPUT);
      digitalWrite(10,HIGH);

      Serial.print(F("Starting SD.."));
      if(!SD.begin(4)) Serial.println(F("failed"));
      else Serial.println(F("ok"));

      Serial.print(F("Starting ethernet..."));
      if(!Ethernet.begin(mac)) Serial.println(F("dhcp failed"));
      else Serial.println(Ethernet.localIP());

      SPI.setDataMode(SPI_MODE3);
      if ( RTC.begin())
      { 
        RTC.adjust(DateTime(__DATE__, __TIME__));
        Serial.println("RTC Initialised.");
      }
      else
      {
        Serial.println("RTC failed to Initialise.");
      }
      SPI.setDataMode(SPI_MODE0);
    }

    void loop() {
    }



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 15:28 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Przerobiłeś przynajmniej ten tutorial od początku czy od razu skoczyłeś do części 16 http://startingelectronics.com/tutorial ... -tutorial/ ? ;-)
    Słuchaj, nikt ci nie będzie debugował kodu, to twoje własne zadanie. Wychodząc od oryginalnego kodu rób małe zmiany w interesujących cię miejscach i sprawdzaj czy działa. Jak wrzucasz wszytko na raz to debugować jest bardzo trudno bo nawet nie wiesz gdzie szukać błędu.
    A co do tego co przyslałeś to wygląda że jest to ten sam bląd:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 15:44 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Dziękuję za odzew. O ile twoja poprzednią sugestię co do błędu zrozumiałem to ostatniej nie.
    Kod:
    for (count = 2; count <= 3; count++) { // A2 to A5 było for (count = 2; count <= 3; count++)
            analog_val = analogRead(count);

    Ta cześć odpytuje wejścia A2 i A3 i nie powinna wpływać na A4 i A5 na której jest i2c?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 15:52 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    maglo18 napisał(a):
    Czytam od wczoraj i dochodzę do wniosku że RTC i karta sd używają tego samego interfejsu? I2c oraz cc od karty sd to pin 4.
    Kod:
      SD card test
       
     This example shows how use the utility libraries on which the'
     SD library is based in order to get info about your SD card.
     Very useful for testing a card when you're not sure whether its working or not.
       
     The circuit:
      * SD card attached to SPI bus as follows:
     ** MOSI - pin 11 on Arduino Uno/Duemilanove/Diecimila
     ** MISO - pin 12 on Arduino Uno/Duemilanove/Diecimila
     ** CLK - pin 13 on Arduino Uno/Duemilanove/Diecimila
     ** CS - depends on your SD card shield or module.
            Pin 4 used here for consistency with other Arduino examples

    Czy moje przypuszczenia są poprawne, jeżeli tak to jak z tym się uporać?



    Nie są poprawne. Karta jest podłączona do magistrali SPI, co jest zresztą napisane: "SD card attached to SPI bus...". Na pinie 4 jest CS (Cable Select) czyli wybór aktywnego urządzenia. Chodzi tu o 4 pin CYFROWY. Magistrala I2C jest na 4 pinie ANALOGOWYM. Obejrzyj sobie swoje Arduino.

    ------------------------ [ Dodano po: 2 minutach ]

    maglo18 napisał(a):
    Dziękuję za odzew. O ile twoja poprzednią sugestię co do błędu zrozumiałem to ostatniej nie.
    Kod:
    for (count = 2; count <= 3; count++) { // A2 to A5 było for (count = 2; count <= 3; count++)
            analog_val = analogRead(count);

    Ta cześć odpytuje wejścia A2 i A3 i nie powinna wpływać na A4 i A5 na której jest i2c?


    No tak, rzeczywiście.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 20 gru 2013, o 16:41 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Czyli żadne z moich przypuszczeń.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 gru 2013, o 21:18 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Czytam, testuje i tak w kółko. Może ktoś podrzuci mi inny sposób na osiągniecie tego co potrzebuję.
    1. Warunek sprawdzający stan pin 1 oraz godzinę pomiędzy 6-8 a 15 -22 (z tym sobie poradzę, daje radę z RTC)
    2. Wyniki stanu wyjść wizualizowane na serwerze www.
    3. Możliwość załączenia wybranego pinu z www.

    Potrafię z tutoriali uruchomić serwer www oraz sterować pinem. Jak dodaję bibliotekę RTC pojawia się problem. Mianowicie po dodaniu czasu mam wrażenie że serwer www nie może odczytać pliku index.htm z kary sd. W domowej sieci mam jeszcze serwer www na apachu i może on mógłby komunikować się z z arduino ?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2013, o 12:03 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    W tym programie co przysłałeś wcześniej, w funkcji setup() na wyjście serial są wyprowadzone komunikaty diagnostyczne. Pojawiają się przy starcie? Wszystko się inicjalizuje jak trzeba? Inicjalizację rtc.begin przenieś przed inicjalizację karty i zobacz co się wyświetli. Nie zaszkodzi też wstawić swoje printy w podejrzanych miejscach programu np. warunek w linii 135 zamienić na coś takiego:
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 gru 2013, o 13:43 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Poprawiony plik w załączniku. W serialu tylko:
    Kod:
    RTC is NOT running!
    Initializing SD card...
    SUCCESS - SD card initialized.


    PS. Dziękuję za zainteresowanie.
    Jak wklejać tak ładnie kolorowany kod?


    Załączniki:

    Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 gru 2013, o 11:51 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Czy moje problemy mogą być spowodowane tym że Arduino Uno R3 jest za słabe do tego projektu?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 gru 2013, o 12:46 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    W kodzie jest trochę tych Serial.printlnów a tyś z łaski sypnął trzema. Klawiaturę oszczędzasz czy jak? Zapodaj co tam więcej jest. Zwłaszcza przy wołaniu serwera.
    Z tego coś podał widać, że karta się inicjuje za to zegar nie działa. A nie działa boś nie zainicjował biblio Wire. Zapoznałeś się w ogóle z przykładami do biblio RTClib? A wiesz w ogóle jak podłącza się urządzenia przez magistralę I2C (pull-ups!)?
    Myślę, że to nie Arduino jest za słabe tylko twoja wiedza.

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 gru 2013, o 14:54 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Wkleiłem cały serial jaki wypluło w konsoli. Mam wrażenie że dalej wszytko zawisło. Wiem że wszystko jest ważne i nie wycinam sobie tego co mi się podoba.
    Jak powinno wyglądać inicjowanie biblioteki bo mi wydało się że tak:
    Kod:
    #include <Wire.h>
    #include "RTClib.h"

    RTC_DS1307 rtc;


    Czy potrafię podłączyć ocen sam ale ustawiłem czas na module RTC oraz napisałem prosty szkic który włącza i wyłącza diodę zależnie od sekund.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 gru 2013, o 15:57 
    Offline
    Użytkownik

    Dołączył(a): 20 wrz 2013
    Posty: 647
    Zbananowany użytkownik

    Pomógł: 101

    Ok, więc skoro wiesz tyle ile trzeba to skorzystaj z informacji które daje serial. Coś się sypie na odczycie z karty. Może trzeba sformatować kartę? Wstawić inną kartę? Wrzucić maly program, który będzie tylko czytał/zapisywał kartę, bez tego całego ethernetowego i zegarowego bagażu? Zainicjować pin CS jawnie? Spróbować z inną biblio? Próbowałeś tego wszystkiego?

    _________________
    +++++[>++++<-]>[>++++++<-]>.---------.+++.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 gru 2013, o 16:07 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Na pewno nie wiem tyle ile bym chciałalem staram się najpierw czytać a potem pytać. Jestem w trakcie przerabiania nocami tych podpowiedzi tylko myślałem że robię błąd na jakiejś oczywistości. Dzięki za uwagi jak będę miał nowe spostrzeżenia to będę pytał.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 mar 2014, o 21:58 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Odpowiem sobie sam. Zdecydowałem na zakup wersji MEGA. Na zakupionym arduino kod bez przeróbek działa bez problemu. Wg mnie czegoś brakowało w UNO co jest w MEGA.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 mar 2014, o 22:52 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 12 paź 2011
    Posty: 780
    Pomógł: 20

    RAM-u :) wiem jak chodzi ethernet na arduino czasami nie wyrabia :)

    Popatrz tu nie trzeba shielda :)

    http://www.blue17.elektroda.eu/mikrokontrolery-avr/1618

    Pozdrawiam

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 maja 2014, o 21:29 
    Offline
    Użytkownik

    Dołączył(a): 06 lis 2013
    Posty: 44
    Pomógł: 0

    Skleciłem kod który działa na Arduino Mega oraz w5100 ethernet. Po dodaniu dodatkowego urządzenia pomiędzy je kod przestaje działać całkowicie. Kończy się w setup na obsłudze karty a właściwie brakiem jej wykrycia. Pomierzyłem wszystkie złącza są przejścia oraz brak zwarć. Rozszerzenie oprócz wlutowanych kabli nic więcej nie ma. Jedyne co mnie dziwi to brak złącza ICSP. Czy to może być przyczyna? W kilku miejscach doczytałem że to złącze nie jest potrzebne do działania w5100 ale czy to przypadkiem nie w tym tkwi problem?

    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 25 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO