Termometr 4 punktowy *z podłączeniem do PC*
Re: Termometr 4 punktowy *z podłączeniem do PC*
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.
Re: Termometr 4 punktowy *z podłączeniem do PC*
Tak regulowalem
Re: Termometr 4 punktowy *z podłączeniem do PC*
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:
Teraz na początku czarnego obszaru szukamy linii komendy, coś w stylu:
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:
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'.
Gotowe - oprogramowanie wgrane!
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:
oraz informację 'Ładowanie zakończone'. Mała dioda na naszym Nano powinna zacząć migać. Druga świeci na stałe.'avrdude: verifying ...
avrdude: 930 bytes of flash verified
avrdude done. Thank you.'
Teraz na początku czarnego obszaru szukamy linii komendy, coś w stylu:
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:C:\Users\Adam\AppData\Local\Temp\arduino_build_528690/Blink.ino.hex:i
Kopiujemy całość.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
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.
Teraz w kodzie zmieniamy 2 miejsca - zamiast 'flash' wpisujemy 'eeprom', zamiast 'main_atmega328p.hex' - 'main_atmega328p_eeprom.hex'.
Kopiujemy całość do wiersza poleceń, enter - i po chwili powinniśmy mieć taki widok: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
Gotowe - oprogramowanie wgrane!
Ostatnio zmieniony 2019-02-24, 21:10 przez trutlen, łącznie zmieniany 1 raz.
Re: Termometr 4 punktowy *z podłączeniem do PC*
Jest tylko "obrazek" ale brak widoku. Dzięki wielkie za opis.
Re: Termometr 4 punktowy *z podłączeniem do PC*
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ć...
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ć...
Re: Termometr 4 punktowy *z podłączeniem do PC*
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??
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??
Re: Termometr 4 punktowy *z podłączeniem do PC*
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.
Re: Termometr 4 punktowy *z podłączeniem do PC*
Ok, dzięki. Coś takiego podejrzewałem, ale wolałem potwierdzić.
Re: Termometr 4 punktowy *z podłączeniem do PC*
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.
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.
Re: Termometr 4 punktowy *z podłączeniem do PC*
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ć
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować
Re: Termometr 4 punktowy *z podłączeniem do PC*
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?
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?
Re: Termometr 4 punktowy *z podłączeniem do PC*
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.
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ć
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować
Re: Termometr 4 punktowy *z podłączeniem do PC*
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.
Re: Termometr 4 punktowy *z podłączeniem do PC*
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?
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ć
Nienawidzę.mechaniki.Za to przemiany fazowe zaczynają mnie fascynować
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 79 gości