Termometr 4 punktowy *z podłączeniem do PC*

Teoria, praktyka, sprzęt, kolumna
robi1978g
20%
20%
Posty: 22
Rejestracja: 2019-01-05, 13:54

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: robi1978g » 2019-02-23, 23:03

Tak wgrałem na płycie krzyski tak samo chyba coś nie tak z wyświetlaczem bo atmege programowalne na podstawce a z nano trochę się pomenczylem ale powinny się wgrać wgrałem obydwa pliki hex eeprom jako drugi.

trutlen
10%
10%
Posty: 18
Rejestracja: 2008-07-31, 14:53

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: trutlen » 2019-02-23, 23:25

robi1978g pisze:
2019-02-23, 10:59
Witam Panowie potrzebuję pomocy w zaprogramowaniu nano pod win10 kto może pomóc?
wgrywam i nic niby się wgrywa a na wyświetlaczu nic tylko podświetlenie
A wyregulowałeś jasność potencjometrem? ;) Przy skrajnym położeniu nic nie widać...

robi1978g
20%
20%
Posty: 22
Rejestracja: 2019-01-05, 13:54

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: robi1978g » 2019-02-23, 23:36

Tak regulowalem

trutlen
10%
10%
Posty: 18
Rejestracja: 2008-07-31, 14:53

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: trutlen » 2019-02-24, 17:59

Ponieważ sam miałem problem z wgraniem programu do termometru, a widzę, że nie jestem osamotniony - napisałem 'poradnik', który może komuś pomoże...
Komendy oznaczałem jako cytaty, przy zaznaczeniu jako kod nie chciał kolorować fragmentów.

Pobieramy i instalujemy (jeśli jeszcze nie mamy) Arduino IDE ze strony: https://www.arduino.cc/en/main/software (w tej chwili jest to wersja 1.8.8 i na niej będę wszystko sprawdzał, przy poprzednich wersjach mogą niektóre sytuacje wyglądać inaczej).
Robię wszystko teraz na czysto, od nowa, bo w międzyczasie zmieniłem system i wszystko też instaluję od nowa.
UWAGA! W Win10 pobierzcie plik .exe, nie wybierajcie opcji Windows App, miałem problemy z wierszem poleceń i być może ta wersja instalacji (a w zasadzie miejsce zaistalowania) miało na to wpływ. Przy instalacji na wszelki wypadek wybrałem też ścieżkę c:\Arduino, a nie domyślnie proponowaną przez istalator c:\Program Files (x86)\Arduino

Z posta viewtopic.php?p=164934#p164934 pobieramy (chyba) ostatnią wersję programu 'archiwum_2017-12-08_AVR.zip', rozpakowujemy i wsadzamy do folderu z łatwą ścieżką dostępu, później tą ścieżkę trzeba będzie wpisać w wiersz poleceń ;)

Podłączamy termometr do kompa, odpalamy program.
Wchodzimy w preferencje (Plik -> Preferencje), przy pozycji 'Pokaż szczegółowe informacje podczas' zaznaczamy 'wgrywania'.
Wybieramy Plik -> Przykłady -> 01.Basics -> Blink.

W międzyczasie w Menedżerze urządzeń sprawdzamy, czy system znalazł naszą płytkę i pod jakim portem go widzi - w części 'Porty (COM i LPT)' powinno siępojawić coś w stylu 'USB-SERIAL CH340 (COM3)'. Tak mam teraz (Win10), poprzednio na starym systemie (Win7) chyba pokazywał jakąś inną nazwę.

W ArduinoIDE w 'Narzędzia -> Pytka' wybieramy Arduino Nano. W 'Narzędzia -> Port' - port, na którym jest termometr (u mnie COM3). W 'Narzędzia -> Procesor' - 'Atmega328P' albo 'Atmega328P (old bootloader)'. U mnie ta pierwsza opcja nie zadziałała, druga tak. Pewnie zależy od wersji klona, którą mamy (albo oryginalnej płytki, jeśli ktoś się na taką szarpnął ;)) Która wersja będzie właściwa - trzeba spróbować.

Mamy skonfigurowaną płytkę (dla przykładu wybrałem Atmega328P), otwarty program (Blink) - wybieramy 'Szkic -> Wgraj. Obserwujemy obszar poniżej okienka z kodem. Jeśli pojawi się informacja typu 'Problem z wgrywaniem na płytkę' - wybieramy drugą wersję procesora (w tym przypadku - ze starym bootloaderem) i ponownie próbujemy wgrać kod. Jeśli wszystko pójdzie dobrze, dostajemy dużo tekstu i na końcu coś w stylu:
'avrdude: verifying ...
avrdude: 930 bytes of flash verified

avrdude done. Thank you.'
oraz informację 'Ładowanie zakończone'. Mała dioda na naszym Nano powinna zacząć migać. Druga świeci na stałe.

Teraz na początku czarnego obszaru szukamy linii komendy, coś w stylu:
C:\Arduino\hardware\tools\avr/bin/avrdude -CC:\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b57600 -D -Uflash:w:C:\Users\Adam\AppData\Local\Temp\arduino_build_528690/Blink.ino.hex:i
I na tym pracujemy. Kopiujemy całą tą linię. Wklejamy sobie to do Notatnika, żeby łatwiej było operować. W miejscu zaznaczonego na czerwono fragmentu wpisujemy ścieżkę do pliku 'main_atmega328p.hex'. U mnie polecenie wyglądało tak:
C:\Arduino\hardware\tools\avr/bin/avrdude -CC:\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b57600 -D -Uflash:w:E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex:i
Kopiujemy całość.

Otwieramy wiersz poleceń - w lupce na pasku zadań (Win10) albo w polu wyszukiwania w menu 'Start' (Win7) wpisujemy 'cmd', otwieramy. Wklejamy komendę (w Win7 Ctrl+V nie zadziała, klikamy prawym klawiszem myszki i wybieramy 'wklej', w Win10 Ctrl+V działa, albo samo kliknięcie prawym klawiszem wkleja zawartość schowka) i potwierdzamy 'Enter'. Po kilku chwilach powinno się pojawić coś takiego:

Kod: Zaznacz cały

C:\Users\Adam>C:\Arduino\hardware\tools\avr/bin/avrdude -CC:\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b57600 -D -Uflash:w:E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex:i

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: reading input file "E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex"
avrdude: writing flash (13842 bytes):

Writing | ################################################## | 100% 4.41s

avrdude: 13842 bytes of flash written
avrdude: verifying flash memory against E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex:
avrdude: load data flash data from input file E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex:
avrdude: input file E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p.hex contains 13842 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 3.39s

avrdude: verifying ...
avrdude: 13842 bytes of flash verified

avrdude: safemode: lfuse reads as 0
avrdude: safemode: hfuse reads as 0
avrdude: safemode: efuse reads as 0
avrdude: safemode: Fuses OK (E:00, H:00, L:00)

avrdude done.  Thank you.
a na wyświetlaczu termometru pierwsze znaczki. Jeśli nie widać nic, albo widać tylko czarne prostokąty kręcimy trochę potencjometrem po lewej stronie, regulując kontrast.

Teraz w kodzie zmieniamy 2 miejsca - zamiast 'flash' wpisujemy 'eeprom', zamiast 'main_atmega328p.hex' - 'main_atmega328p_eeprom.hex'.
C:\Arduino\hardware\tools\avr/bin/avrdude -CC:\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega328p -carduino -PCOM3 -b57600 -D -Ueeprom:w:E:\Downloads\bimber\archiwum_2017-12-08_AVR\main_atmega328p_eeprom.hex:i
Kopiujemy całość do wiersza poleceń, enter - i po chwili powinniśmy mieć taki widok:

Obrazek

Gotowe - oprogramowanie wgrane!
Ostatnio zmieniony 2019-02-24, 21:10 przez trutlen, łącznie zmieniany 1 raz.

kris42
40%
40%
Posty: 85
Rejestracja: 2018-01-16, 21:09

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: kris42 » 2019-02-24, 20:36

:1st Jest tylko "obrazek" ale brak widoku. Dzięki wielkie za opis.

trutlen
10%
10%
Posty: 18
Rejestracja: 2008-07-31, 14:53

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: trutlen » 2019-02-24, 21:14

Serwisowo - 'dziwne, o mnie działa' ;)
Zmieniłem obrazek, wgrałem gdzie indziej, teraz widać?
Jakby co - tu jest obrazek, może ktoś obeznany wstawi go tak, żeby było widać...

trutlen
10%
10%
Posty: 18
Rejestracja: 2008-07-31, 14:53

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: trutlen » 2019-07-17, 09:54

Coś zamarł temat...
To żeby go odświeżyć mam pytanie. Czy to normalne, że te czujniki DS tak 'ospale' reagują na zmiany temperatury, czy to kwestia oprogramowania termometru?
Otóż ostatnio używając termometru w niepełnym zakresie (bez wszystkich czujników wpiętych do kolumny) w pewnym momencie wsadziłem czujnik do kotła, w którym był wcześniej inny termometr. Temperatura była ponad 90 stopni, ale zanim termometr wskazał tą temperaturę minęło dobrych kilka minut, w tym czasie wskazania powoli rosły co 1-2 stopnie... I teraz pytanie - czy to taka bezwładność czujnika, czy algorytm uśredniania pomiarów w programie, czy jeszcze coś innego? I czy w ogóle to normalne zachowanie??

kacper59
40%
40%
Posty: 86
Rejestracja: 2017-06-20, 09:07

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: kacper59 » 2019-07-17, 16:16

Sam czujnik, przy 12 bitowej rozdzielczości, ma czas przetwarzania ok. 750 ms (0,75s) więc kolejne wyniki pomiaru będą w takim odstępie czasowym. Jednak to, o czym piszesz to bezwładność czujnika, czyli szybkość jego rekcji na zmianę temperatury mierzonego środowiska. Bezwładność ta zależy od masy czujnika i przewodności termicznej substancji z których został wykonany. Im cięższy czujnik (gilza, pasta, przewody znajdujące się w środku) tym bezwładność większa. Nie wykonywałem charakterystyki reakcji takiego czujnika na zmiany temperatury, jednak powszechnie wiadomo, że DS18B20 reaguje powolnie. Najlepiej porównać kilka takich samych czujników, poprzez jednoczesne określenie wskazywanej temp. np. otoczenia, a następnie jednoczesne zanurzenie ich w gorącej wodzie i ponowne określenie wskazywanej temperatury, po 1, 2,.... 10, 20, 30 itd sekundach) W ten sposób można wyłapać, te najszybciej reagujące i wyeliminować te najwolniejsze.

trutlen
10%
10%
Posty: 18
Rejestracja: 2008-07-31, 14:53

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: trutlen » 2019-07-18, 21:34

Ok, dzięki. Coś takiego podejrzewałem, ale wolałem potwierdzić.

mirbek
10%
10%
Posty: 13
Rejestracja: 2018-10-27, 20:48

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: mirbek » 2019-12-05, 22:09

Witam
Potrzebuje pomocy od bardziej doświadczonych kolegów po wpisaniu pierwszych komend pojawia się komunikat :nazwa # 58 nie jest rozpoznawana jako polecenie lub zewnętrzne,program wykonywalny lub plik wsadowy, co to może być ew ktoś może świadczy usługi zaprogramowania pamięci.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-01-02, 12:53

mirbek pisze:
2019-12-05, 22:09
...ew ktoś może świadczy usługi zaprogramowania pamięci.
Dało by się załatwić. Którą wersję ("gołe" Mega / Nano) potrzebujesz zaprogramować którym wsadem?
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

mirbek
10%
10%
Posty: 13
Rejestracja: 2018-10-27, 20:48

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: mirbek » 2020-01-11, 12:30

Witam
Przepraszam za zwłokę brak czasu. Robiłem dwa termometry z wątku z 2017 -01-17 na 328 opisane wyżej problem miałem przy próbie wgrania za pomącą konsoli Windows, po przejściu na AVR Burn-O-Mat udało mi się wgrać, termometry działają tzn wszystko na wyświetlaczach pojawia się tak jak w opisie. Problem występuje przy próbie rejestracji czujników temp. jeden układ działa ok natomiast drugi nie rejestruje czujników.
Próbowałem na jeszcze jednym 328 i jest to samo. Podmiana elementów pozwoliła jednoznacznie określić, że problem tkwi w programie a bardziej w braku mojej wiedzy.Ktoś coś pomoże?

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-01-11, 15:11

A próbowałeś ten M328P z już "zarejestrowanymi" czujnikami wsadzić w tą płytkę co nie chce działać i podłączyć ("stare") czujniki?
Wszystkie wskazania "0.00" to zwarcie linii sygnałowej do masy. Ale może być gdzieś przerwa i wtedy ich siłą rzeczy nie zobaczy.
Bo nie widzę w programie (przy braku błędu sprzętowego) możliwości pojawienia się takich objawów jak opisujesz.

Może w "nowym wątku" dopiszesz jak się programuje tym "AVR..."? Byłoby dla innych, którzy też mogą mieć problemy.
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

mirbek
10%
10%
Posty: 13
Rejestracja: 2018-10-27, 20:48

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: mirbek » 2020-01-12, 20:26

Tak próbowałem i wszystko działa po podmianie procesora. Po prostu jeden procesor zaprogramował się prawidłowo a dwa kolejne po zaprogramowaniu w trybie konfiguracji nie widzą czujników. Jak zaprogramować za pomocą avr burn o mat jest opisane w nowym wątku.

laurentp
100%
100%
Posty: 1368
Rejestracja: 2013-07-08, 22:08
Lokalizacja: Mazowieckie

Re: Termometr 4 punktowy *z podłączeniem do PC*

Post autor: laurentp » 2020-01-13, 09:14

Możesz odczytać i porównać ustawienia fusebitów? Bo to ostatnie co mi do głowy przychodzi.

PS, możesz jeszcze zrobić podmiankę odwrotną? Tj procek co nie działa wsadzić (+czujniki, do konfiguracji po 1 na raz!) do płytki która działa?
https://nowyekran24.com/ prawda 24h, POLSKIE forum poza zasięgiem "głównego ścieku", taki informacyjny "DETOX"!
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować

ODPOWIEDZ

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 26 gości