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? 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 12 cze 2025, o 22:50


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 4 ] 
    Autor Wiadomość
    PostNapisane: 23 wrz 2015, o 17:04 
    Offline
    Nowy

    Dołączył(a): 13 lip 2015
    Posty: 13
    Pomógł: 0

    Witam szanownych forumowiczów!

    Mam pewien poważny problem, z którym nie mogę sobie poradzić. Chciałem wykorzystać serią filmów "Przetwornik ADC" to wykonania termostatu. Miał on pobierać zmienną wartość z potencjometru i porównywać ją z temperaturą z termometru DS18B20. Jednak są to zupełnie inne zmienne i nie da się ich niestety porównać (w filmach wartość w której przechowywane są dane o z przetwornika ADC to char[], a dane z termometru to uint32_t). próbowałem zastosować pewien cwaniacki myk, ale niestety nie wyszedł.
    Będę wdzięczny za każdą pomoc.

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język cpp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 23 wrz 2015, o 18:49 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27409
    Lokalizacja: Szczecin
    Pomógł: 1043

    skiero napisał(a):
    próbowałem zastosować pewien cwaniacki myk,

    Panie, panie - na litość boską - to pokaże że ten myk a nie wrzucasz HEKTOLITR kodu i urządzasz zawody, na spostrzegawczość kto znajdzie? ... Zastanów się czy przy tak zadanym pytaniu komuś się będzie chciało w ogóle szukać .... Naprawdę czy tak ciężko zadać poprawnie pytanie ? jeśli się oczekuje dobrej szybkiej i celnej odpowiedzi na forum ?

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 25 wrz 2015, o 16:28 
    Offline
    Nowy

    Dołączył(a): 13 lip 2015
    Posty: 13
    Pomógł: 0

    Przepraszam, rzeczywiście mój post był mało precyzyjny, już zmierzam do meritum.
    Dostosowałem kod z odcinka "Przetwornik ADC w mikrokontrolerach AVR - CZĘŚĆ 04b" w następujący sposób. Chciałem, aby na pomocą potencjometru można było nastawić temperaturę z zakresu 0 -120 st. C, więc zmieniłem zakres wyświetlania wartości z 0 - 12V ( jak w filmie) na rzeczone 1 - 120 st. C. Jeśli chodzi o typ zmiennej nic nie zmieniałem, dalej pozostało to "char", a wyświetlanie jaj na monitorze portu szeregowego za pomocą zmiennej (przed przecinkiem i po przecinku) "accu1_vol.v1","accu1_vol.v2".
    Drugą częścią, polegała na dołożeniu do w.w. kodu programu wyświetlania wartości temperatury z termometru DS18B20 (czyli biblioteka i zagadnienie z "1Wire"). Wyświetlana z niego temperatura jest przedstawiona w następujący sposób: wartość sprzed przecinka i po przecinku "cel","cel_fract_bits". Typy obu tych zmiennych to "uint32_t".
    Porównałem za sobą te dwie wartości w następujący sposób:

    if ( accu1_vol.v1 > cel ) 1<<PB0;

    wyskakuje błąd: "incompatible types when assigning to type 'char[4]' from type 'uint32_t'"
    Wiem, że porównywanie tych wartości nie jest możliwe, ale nie wiem w jaki sposób możne to rozwiązać.
    Chciałbym zaznaczyć, że interesują mnie odpowiedzi typu: "Poszukaj w książce takiej i takiej...". Temat bardzo mnie interesuje, więc chętnie się w niego zagłębie. Po prostu nie znam literatury.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 26 wrz 2015, o 10:25 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27409
    Lokalizacja: Szczecin
    Pomógł: 1043

    skiero napisał(a):
    wartość sprzed przecinka i po przecinku "cel","cel_fract_bits". Typy obu tych zmiennych to "uint32_t".

    a od kiedy te typy to uint32_t ???

    skiero napisał(a):
    if ( accu1_vol.v1 > cel ) 1<<PB0;

    ale co ty chcesz porównywać ? wartość napięcia przed przecinkiem z wartością temperatury przed przecinkiem ? ..... Już pomijając nawet że chcesz robić takie porównanie - to co dalej oznacza w tym warunku ten zapis 1<<PB0 ???

    ------------------------ [ Dodano po: 6 minutach ]

    skiero napisał(a):
    Chciałbym zaznaczyć, że interesują mnie odpowiedzi typu: "Poszukaj w książce takiej i takiej...".

    A ja chciałbym zaznaczyć - że mnie nie interesują takie (przepraszam bezsensowne dopiski na forum) i ZDECYDOWANIE polecam ci jednak sięgnąć do książki:
    http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

    bo to TYLKO może ci się przydać - skoro ty łączysz gdzieś znalezione w sieci kawałki kodów tzn próbujesz łączyć a KOMPLETNIE nie znasz podstaw języka C .... to jak myślisz że można ci wyjaśnić pewne rzeczy ?

    Toż ten twój warunek if() który wyżej pokazałem wydaje się być kompletnie ale to kompletnie bez sensu - przy czym nie mówię tu, że twój jakiś tam pomysł jest bez sensu na urządzenie - bo pomysł zwykle jest dobry - tylko jak się nie zna języka to się nie umie zapisać tego pomysłu w tym języku.

    skiero napisał(a):
    Wiem, że porównywanie tych wartości nie jest możliwe, ale nie wiem w jaki sposób możne to rozwiązać.

    No widzisz w odcinku poradnika video dla uproszczenia wrzucam wartości napięcia w tablice typu char aby łatwo można to było sobie wyświetlać. Rozumiesz ? Wyświetlać ..... Więc to już nie są liczby a stringi ... A wygląda na to, że ty nawet nie wiesz co to są Stringi w C jak mi się wydaje ? Tablice znaków ....

    Jak więc chcesz porównywać jakąś tablicę znaków (tzw C-String) z jakąś liczbą ?

    Jak to zrobić ? prosto w kodzie z poradnika wprowadzić sobie wartości napięcia w postaci liczbowej - żeby można było później porównywać

    I mówię - poczytać najpierw książkę

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    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: 4 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

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


    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