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



Teraz jest 29 mar 2024, o 10:50


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ] 
Autor Wiadomość
PostNapisane: 18 cze 2017, o 23:48 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Mam problem z kodem, program ma służyć do obsługi automatycznej dolewki do akwarium to znaczy SONDA1 zbiornik z wodą do dolewki poziom wody wystarczający dioda led LED1_OFF i pompa gotowa do pracy brak wody w komorze dolewki wyłącza pompę i dioda LED1 mruga SONDA2 poziom wody w akwarium pełny dioda LED2_ON brak wody załącza pompę i LED2 mruga program ma zabezpieczyć pompę przed pracą na sucho a diody sygnalizują prace pompy i stan wody.
Myślałem że napiszę sobie kod bez trudu a wyszło jak zawsze proszę o pomoc i wytknięcie błędów .
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2017, o 17:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Poniżej masz kod z małą poprawką.

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: 19 cze 2017, o 22:58 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Nic z tego dalej nie jest tak sobie założyłem kod działa poprawnie if z sondą2 po dołożeniu if i flagi z sondą1 wszystko się sypie i nie rozumiem dlaczego led1 , led2 i pompa reagują tak samo niezależnie która sondę aktywuję diody i pompa działają w ten sam sposób .
Poprawnie działający kod z sondą2.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Teraz muszę dodać warunek który w wypadku braku wody w zbiorniku dolewki włączy pompę i diodę LED2 a dioda LED1 zasygnalizuje mruganiem na brak wody w zbiorniku na dolewkę
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 cze 2017, o 19:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Poprawiony kod poniżej, przy założeniu że sondy wystawiają stan niski gdy poziom wody jest wystarczający, a poziom wysoki gdy brak lub za mało wody.

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: 21 cze 2017, o 21:27 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Przetestowałem kod na zestawie ATB z przystawką do attiny zamiast sond używam klawiszy program wgrałem ale efekt jest niewłaściwy , po aktywacji sondy pierwszej czy drugiej ( naciśnięciu klawisza ) efekt jest taki jakby były podłączone do tego samego pinu , diody zapalają się i gasną w ten sam sposób , spróbowałem zmienić trochę kod teraz po aktywacji sondy2 dioda1 i dioda2 zapalają się na przemiennie i pompa zaczyna działać a w założeniu miała mrugać tylko dioda2 i działć pompa , znów ten sam problem z sondami jakby były podłączone do tego samego pinu .
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Za pomoc dziękuję .
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 cze 2017, o 21:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Nie wiem jak Ty to podłączasz, ale ostatni kod jaki Ci wrzuciłem działa zgodnie z Twoimi założeniami (pod warunkiem że sondy wystawiają 0 gdy są zalane). Co prawda testowałem na atmedze 32 (nawet do testu wykorzystałem piny te same co ty na attiny czyli PB0 - PB4) ale przy tak prostym programie nie ma to najmniejszego znaczenia jeśli właściwie przypisane są piny.
Jedyny mało elegancki problem to taki że w momencie gdy np w zbiorniku głównym obniży się poziom wody, załączy się pompa i w trakcie uzupełniania wody w zbiorniku głównym, w zbiorniku rezerwowym skończy się woda to wyłączenie pompy następuje z pewnym opóźnieniem (które wynika z zastosowanych delay-ów na potrzeby mrugania diod świecących.
Na pewno masz podpięte wszystko zgodnie z definicjami w programie?

Daro68 napisał(a):
zamiast sond używam klawiszy
Ale jeśli używasz klawiszy które zwierają do masy to masz odwrócone stany sond bo wciskając przycisk wymuszasz 0 (tak jak pisałem stan sondy=0 oznacza zbiornik pełny - tak wywnioskowałem z Twojego pierwszego posta i kodu jaki tam przedstawiłeś), tak więc by zasymulować stan pełnych obu zbiorników musiałbyś trzymać oba przyciski wciśnięte, wówczas pompa będzie wyłączona (czyli na pinie PB2 będzie stan wysoki) led1 będzie zgaszony(czyli PB3 stan wysoki), a led2 będzie świecił (czyli PB4 stan niski).


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2017, o 20:20 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Dzięki za pomoc wszystko się wyjaśniło zmieniłem attiny45 na atmega32 i kod zaczął działać poprawnie więc z powrotem założyłem na ATB przejściówkę pod attiny45 i znów program zaczął źle działać tym razem przełożyłem attiny45 do stykówki i wszystko zaczęło dobrze działać i dlatego mam jeszcze jedno pytanie co może być przyczyną źle działającej przejściówki pod attiny.
Sposób podłączania do ATB
Obrazek
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2017, o 20:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Myślę że odpowiedź może się kryć na stronie producenta przejściówki http://www.atnel.pl/konwertery-procesorow-atb.html
A konkretnie chodzi o tę fotkę:
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2017, o 21:15 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Znam to zdjęcie byłem na tej stronie podpoiłem wszystko tak jak zaleca producent i nie zadziało więc ponownie podłączyłem tak jak oznaczenia na przejściówce i do tego sprawdziłem podłączenia multimetrem i wszystko się zgadzało oprócz tego że kod nie działa poprawnie , przetestowałem procka na mkAVR i wykrył attiny45 , na stykówce i atmedze zadziałało za pierwszym razem :idea: .

Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 22 cze 2017, o 23:22 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Chym, chyba jednak to zdjęcie dotyczy jakiejś starszej wersji konwertera, bo faktycznie na moim (również fioletowe PCB) opis jest właściwy.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2017, o 12:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 paź 2014
Posty: 1020
Lokalizacja: Trójmiasto
Pomógł: 188

Daro68 napisał(a):
co może być przyczyną źle działającej przejściówki pod attiny.

Jako że nie lubię zostawiać pytań bez odpowiedzi zgłębiłem temat u samego źródła, i jest to problem nie samej przejściówki (na tej praktycznie nie ma żadnej elektroniki poza kondkami).
W nowych zestawach 1.05a sprzedanych niedawno pomiędzy liniami MOSI, MISO wlutowany jest rezystor 1k na potrzeby obsługi przez wbudowany programator USBASP magistrali programującej TPI (dla procków np. attiny10 i innych posiadających tę magistralę, jak również dla obsługi modułu MedKit firmy Atnel), jako że moduł MedKit i sama idea korzystania z maluszków na zestawie pojawiły się po wprowadzeniu na rynek owych zestawów, to siłą rzeczy zostało to zrobione kompromisem. Zapewne w przyszłości w nowych wersjach jeśli się pojawią, zostanie to zrobione bezkolizyjnie.
Procesor Attiny45 na liniach PB0 i PB1 (do których w Twoim projekcie są podpięte sondy) ma również sygnały MOSI i MISO więc po umieszczeniu tego procka w adapterze attiny, a następnie w zestawie między PB0 i PB1 mamy owy rezystor 1k, który jest stosunkowo niską rezystancją w porównaniu z wbudowanymi w procesor rezystorami PullUp. Tak więc zwierając jeden pin do masy, drugi również jest ściągany do masy poprzez rezystor 1k, nietrudno policzyć jakie napięcie wypadkowe będzie na pinie drugim gdy procek wystawia 5V poprzez wbudowany rezystor PullUp rzędu kilkudziesięciu K, a następnie poprzez 1K jest ściągany do masy (5V*1k/(1k+PullUp); gdzie według noty rezystory PullUp mogą zawierać się w zakresie od min 20k do 50k Ohm).
Reasumując jeśli nie planujesz korzystać z magistrali TPI na zestawie możesz sobie ów rezystor wylutować (co ja dla sprawdzenia zrobiłem u siebie) wtedy procek attiny45 chodzi bez problemów na wyżej przetoczonym programie. Instrukcje odnośnie zlokalizowania rezystora znajdziesz na końcu instrukcji od modułu MedKit dostępnej na stronie producenta czyli firmy Atnel pod adresem http://www.atnel.pl/medkit.html, jednak z drugiej strony MedKit wraz z rodziną obsługiwanych malutkich AVR-ów to fajna zabawka więc trzeba przemyśleć czy chcemy pozbywać się tej funkcjonalności. Ja owy rezystor wylutowałem, następnie w to miejsce wlutowałem niedługie odcinki Kynaru (na jednym wlutowałem szeregowo wcześniej wylutowany rezystor smd 1k) a na końcach Kynaru wlutowałem sobie dwupinowy Goldpin, na całość nałożyłem koszulkę termokurczliwą i zgrzałem pozostawiając końcówkę nie obkurczoną, a konkretnie owinąłem zworkę raz taśmą klejącą, założyłem na goldpiny obkurczyłem koszulkę, dzięki temu zworka po usunięciu taśmy izolacyjnej daje się zdjąć i założyć bez przeszkód.
Całość podkleiłem pod spodem zestawu w wygodnym miejscu klejem na gorąco. W ten sposób nie tracąc funkcjonalności magistrali TPI mogę, jeśli jest taka konieczność rozpiąć rezystor 1k który zwiera piny z sygnałami MOSI i MISO 8-) - jak to mówią wilk syty i owca cała.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 cze 2017, o 21:34 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Dzięki za wyczerpującą odpowiedz zanim poprosiłem o pomoc przez tydzień siedziałem nad tym prostym kodem i byłem już trochę załamany ponieważ siedziałem już nad podobnym kodem wcześniej i nie powinno mi to sprawiać takiej trudności ale wszystko się wyjaśniło jeszcze raz dziękuje za pomoc.
Poz.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2017, o 22:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 233
Lokalizacja: Rzeszów
Pomógł: 11

Tak odbiegnę od tematu - kolega akwarysta?

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 lip 2017, o 22:07 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Tak morskie 320l



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2017, o 12:12 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 paź 2014
Posty: 233
Lokalizacja: Rzeszów
Pomógł: 11

http://podforak.rzeszow.pl/viewtopic.php?t=28491

Jeśli chcesz, to podeślę Ci kod - może coś Ci się coś przyda. U mnie działa to już ponad rok.

_________________
Mr. Nobody



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 lip 2017, o 22:06 
Offline
Użytkownik

Dołączył(a): 08 cze 2016
Posty: 204
Lokalizacja: Katowice
Pomógł: 0

Każda pomoc mile widziana zawsze można się czegoś nauczyć.
Poz.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 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