FAQ | Points | Add... | Recent posts | Search | Register | Log in


[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Author
Message
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#31 Post from the author of the topic 05 Feb 2012 21:43   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Postanowiłem dołożyć do mojego układu czujnik zaniku fazy aby w razie zaniku napięcia sieci sterownik mógł zadbać o awaryjne zamknięcie przepustnic itp.
Oczywiście cały system ogrzewania wspiera zasilacz awaryjny (starcza na jakieś 1.5h).

Poniżej zamieszczam schemat układu który powinien spełnić swoje zadanie. Proszę o opinię na jego temat.

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Back to top
   
SylwekK
Poziom 18
Poziom 18


Joined: 01 Oct 2007
Posts: 479
Location: Lipsko

Post#32 05 Feb 2012 21:54helpful post - solution   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


A nie było by bezpieczniej wstawić rezystor przed diodę zenera. Wiem, że prąd tam nieduży bo kondensator na większy nie pozwoli mimo to byłbym za ochroną diody zenera.
W moim rozwiązaniu badania zaniku fazy (przy awaryjnym zasilaniu mieszkania) zastosowałem podobne rozwiązanie tyle, że na przekaźniku zamiast transoptora.
Półtora roku chodzi bez problemu.

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Back to top
   
Google

Google Adsense


Post# 05 Feb 2012 21:54helpful post - solution   





Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#33 Post from the author of the topic 05 Feb 2012 22:16   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


A no bezpieczniej :) . Koniecznie chcę użyć transoptora gdyż mam "fobię" przekaźnikową .
A i tak stopnie końcowe sterowania pompami itd. muszę zrealizować na przekaźnikach.

Czyli jak miałaby wyglądać po zmianach moja wersja? Czy wystarczy że dołożę rezystor pomiędzy mostek a zenerkę? I jakiej wartości miałby być?
Back to top
   
tmf
Poziom 24
Poziom 24


Joined: 12 Aug 2009
Posts: 4766
Location: Katowice

Post#34 05 Feb 2012 22:17   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Jeśli możesz sobie pozwolić na połączenie GND z N lub L sieci to najprościej zrezygnować z optoizolacji i połączyć L do wejścia AVR przez rezystor (najlepiej dwa) rzędu 1-2MOm. Jeśli zależy ci na optoizolacji to zastosuj transoptor z dwoma antyrównoległymi diodami, żeby się wzajemnie ochraniały i w szereg rezystor. Dla prądów diody takiego LTV814 rzędu 1mA możesz sobie kondensator odpuścić i cały układ zasilić poprzez rezystor, 0,25W wystarczy. Odpadną elementy typu mostek i cała reszta drobnicy.
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#35 Post from the author of the topic 05 Feb 2012 22:22   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Ale jestem "durny". Przecież mogę wykorzystać układ jaki stosowałem w detekcji zera sieci gdzie stosowałem PC814 :) . Przepraszam za durne pytania jakie zadaję ale czasami myślenie widać opornie mi przychodzi...
A co do łączenia się z N lub L sieci to nie chcę tego robić. Zależy mi na maksymalnej optoizolacji.


Po zastosowaniu takiego rozwiązania układ "troszkę" się uprości w porównaniu do poprzedniej proponowanej wersji.
Dodatkowo mogę podłączyć to pod któryś INT procesora i w prosty sposób wykrywać w przerwaniu zanik fazy. A i dodatkowo może mi to posłużyć jako sygnał zegarowy do wykonywania jakichś funkcji. W końcu otrzymuję w ten sposób dość precyzyjne 100Hz.

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Back to top
   
tmf
Poziom 24
Poziom 24


Joined: 12 Aug 2009
Posts: 4766
Location: Katowice

Post#36 05 Feb 2012 22:58   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Jak na wyjściu dasz kondensator tworząc filtr RC to zanik fazy sprawdzisz po prostu poprzez zbadanie stanu pinu IO. Ale wykorzystanie tego jako wzorzec czasu też jest dobrym pomysłem. Podepnij to pod wejście zegarowe timera, będzie zliczał cykle, można to wykorzystać jako RTC bez dodatkowych elementów typu kwarc.
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#37 Post from the author of the topic 07 Feb 2012 20:56   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Poniżej wklejam aktualny schemat.
Nie wszystkie piny procesora są podłączone. Podyktowane jest to tym iż prawdopodobnie i tak część z nich zostanie inaczej podłączona w celu uproszczenia PCB kiedy zacznę rozmieszczać elementy.
Nie za bardzo mam pomysł na izolację pinów sterujących przepustnicą.
Problem w tym iż kabel od sterownika do przepustnicy będzie miał dobre 5m długości i będzie przebiegał przy pompach i grzałkach. Nie chcę puszczać linii bezpośrednio z procesora do przepustnicy gdyż obawiam się że jest duże prawdopodobieństwo iż zadziałają jak anteny i będą zbierać zakłócenia . Wolałbym je jakoś odizolować np. optycznie.
W sumie tak też zrobiłem ale wolę aby ocenił to ktoś bardziej zorientowany w temacie niż ja.



KOMINEK.png
 Filename:  KOMINEK.png
Download
 Contents:  
 Filesize:  1.29 MB
 Punkty:  0

Back to top
   
251mz
Poziom 16
Poziom 16


Joined: 10 Oct 2003
Posts: 336

Post#38 10 Feb 2012 11:28   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Wygląda wszystko ok.
Back to top
   
Google

Google Adsense


Post# 10 Feb 2012 11:28   





Back to top
   
tmf
Poziom 24
Poziom 24


Joined: 12 Aug 2009
Posts: 4766
Location: Katowice

Post#39 10 Feb 2012 11:51   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


To po kolei:
1. Zasilanie. Widzę, że masz prostownik jednopołówkowy, dlaczego? Dla takiego kondensator na wejściu musi być 2*większy niź dla Graetza. W dodatku 47uF to zdecydowanie za mało. Policz prąd pobierany przez układ, ale na ślepo strzelałbym, że koło 2200uF jest potrzebny i nie na 10V tylko co najmniej na 25. Rozważ też użycie prostej przetwornicy impulsowej zamiast grzejnika 7805.
2. RTC. Można zastosować baterię, można pomyśleć nad supercap doładowywanym z zasilania. To tylko sugestia.
3. Klawiatura. Wywal te kondziole. Raz, że debouncing można zrobić programowo, dwa, że zwieranie pojemności przyciskiem jest słabym pomysłem. Generuje to spore zakłócenia bo w krótkim czasie wyzwalasz sporą energię kondensatora. Jeśli chcesz je mieć to zrób filtry RC jak należy.
4. Co to jest IC1 i IC4? Jeśli to jakieś drivery to czy dla włączonych wszystkich przekaźników nie przekraczasz maksymalnego ich prądu liczonego na scalak, nie na pin? Wydaje mi się, że tak.
5. Sterowanie MAX485. W stanie nieustalonym po resecie procesora pin DR/RE jest w stanie 1, co włącza nadajnik i blokuje całą transmisję po rs485. Rezystor powinien być nie do Vcc lecz do GND, dzięki temu będziesz miał włączony odbiornik, co nie wpłynie na transmisję.
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#40 Post from the author of the topic 10 Feb 2012 19:54   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Dziekuję za uwagi.
1. Co do zasilania to rzeczywiście nie wprowadziłem zmiany z 10 na 16-25v ale i tak by tam trafiły 16V gdyż mam sporo takich kondensatorów w takich samych obudowach ale na napięcia 10V i 16V.
Dioda w zasilaniu jest montowana tylko w fazie testów i zabezpiecza przed zamianą biegunów w razie pomyłki. Zasilam układ stabilizowanym napięciem 12V/4A.

2. RTC - mam zastosowane baterię CR2032 ale chętnie wysłucham uwag na temat alternatywnej możliwości awaryjnego zasilania , gdyż osobiście nie lubię baterii na moich PCB. Czytałem że można zastosować kondensator 0.47F ale gdzie ja upchnę na PCB takiego "lapsa" ? Chyba prościej pozostawić baterię i dać ewentualnie test stanu baterii poprzez ADC. Nie wiem czy to potrzebne gdyż na takiej bateryjce PCF i tak będzie chodził wieki a samo testowanie stanu przez ADC także powolutku wypompuję mi bateryjkę. Chyba że się mylę..

3. Kondensatory wyrzucone. Debouncing rzeczywiście będę realizował programowo.

4. Drivery to ULN2803. Używałem ich wcześniej z tymi przekaźnikami i nie miałem problemów. Fakt że nie sprawdziłem jak bardzo można je obciążać. Zaraz sprawdzę.

5. Moja pomyłka . To niedopatrzenie by się w moim przypadku na 100% zemściło. Zresztą akurat o ten moduł obawiam się najbardziej.
Identyczne rozwiązanie co do RS485 mam zamiar zastosować we wszystkich innych modułach jakie będą pracować w mojej sieci więc zrobię wszystko aby były tak zrealizowane aby pracowały bez zastrzeżeń.


Jeszcze mam pytanko na temat sterowania przepustnicą.
Muszę wyprowadzić z procesora 4 linie (przepustnica odbiera jako ustawienia pozycji kod BCD 0-15 pozycji otwarcia) aby wysterować przepustnicę. Odległość na jaką będę je musiał wyprowadzić to kilka metrów( pewnie przekroczę 5) . I teraz pytanie jak je odizolować. Myślałem o optoizolacji i tak też zrobiłem ale nie do końca jest to prawdziwa optoizolacja gdyż zasilam transoptory i tak z tego samego źródła. Nie chcę ładować na PCB kolejnej przetwornicy. Chcę tylko zabezpieczyć piny procesora. Macie może koledzy jakąś alternatywę dla mojego chyba kiepskiego rozwiązania? A może nie ma potrzeby izolowania tych pinów?

Drugie pytanie to czy jednak magistralę 1wire można by izolować optycznie za pomocą szybkich transoptorów? Wiem że może przesadzam ale linia będzie dośc długa a i cały sterownik jaki wykonam ma działać porządnie gdyż to już nie będzie zabawka tylko urządzenie które będzie sterować całym systemem ogrzewania i wentylacji .
Nie może się po prostu zawieszać w przypadku zapchania przepustowości RS485 , nie może "się nic zjarać" w przypadku uszkodzenia DS-a (uszkodzenie czujnika, przewodu,zwarcie itd).
A taka optoizolacja by mi to przykładowo dla linii 1wire wyeliminowała. Wiem że chcę zrobić armatę na muchy ale lepiej strzelić raz z armaty niż dać się "obsr.. " muchom :D
Back to top
   
danthe
Poziom 20
Poziom 20


Joined: 28 Nov 2003
Posts: 932
Location: niewielka wieś k. Augustowa

Post#41 12 Feb 2012 17:17helpful post - solution   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Quote:
2. RTC - mam zastosowane baterię CR2032 ale chętnie wysłucham uwag na temat alternatywnej możliwości awaryjnego zasilania , gdyż osobiście nie lubię baterii na moich PCB. Czytałem że można zastosować kondensator 0.47F ale gdzie ja upchnę na PCB takiego "lapsa" ? Chyba prościej pozostawić baterię i dać ewentualnie test stanu baterii poprzez ADC. Nie wiem czy to potrzebne gdyż na takiej bateryjce PCF i tak będzie chodził wieki a samo testowanie stanu przez ADC także powolutku wypompuję mi bateryjkę. Chyba że się mylę..


Kondensator 3F (tu przykład) ma wymiary 20,2 mm średnica, 6,5 mm wysokość. Gniazdko na baterię CR2032 - odpowiednio 22,5 mm i 8,9 mm. Jakoś wydaje mi się że GOLD CAP jest nieco mniejszy.
Back to top
   
tmf
Poziom 24
Poziom 24


Joined: 12 Aug 2009
Posts: 4766
Location: Katowice

Post#42 13 Feb 2012 11:22   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


ad 1. Ok, jeśli masz stabilizator przed to jest w porządku.
ad 2. CuperCapy są małe, jak kolega wyżej napisał wyjdzie to mniejsze niż bateria. Potrzebujesz jeszcze diodę do doładowywania kondensatora.
ad 3. Kondensatory mogą być, tylko nie rozładowywuj ich przez switcha. Albo tak jak piszesz po prostu je wyrzuć i zrób debouncing programowy.

Co do optoizolacji - nie popadajmy w paranoję. Zwykły filtr RC + diody zabezpieczające są IMHO wystarczające. Tak samo nie ma sensu aż tak cudować z 1-wire.
Back to top
   
Google

Google Adsense


Post# 13 Feb 2012 11:22   





Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#43 Post from the author of the topic 14 Feb 2012 23:16   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


A więc tak:

-Kondensatory usunięte (jak nie są wymagane to bez sensu je dawać)
-Optoizolacja przepustnicy pozostawiona (wiem, wiem ale nic na to nie poradzę że mam paranoję)
-Optoizolacja 1wire - odpuściłem ją sobie ale źle się z tym czuję :D


Poniżej przedstawiam stan bieżący mojego układu.
Obecnie pracuję nad panelem czołowym i obudową.
Docelowo front będzie wykonany ze szkła (4mm) , sterowanie klawiaturką zrealizowane będzie za pomocą okręgu wykonanego z 6mm plexiglassu w którym zostaną do połowy nawiercone otwory od środka pod microswitche których ośki zostaną wklejone i tym samym otrzymamy coś na styl "joysticka". Srodkowy klawisz także zrealizuję w postaci małego kółka zamocowanego analogicznie jak reszta switchy.
Boki i tył obudowy wykonam w całości z plexiglassu (nie cierpię tego materiału ale łatwo się go obrabia. Jedynie front będzie dość kosztowny ale mój szklarz już się do moich dziwnych pomysłów przyzwyczaił. A z kolei ja lubię wszystko co szklane i czego nie idzie tak szybko zarysować jak plexi.

Cały czas jeszcze myślę czy nie zastosować większego LCD , ale wydaje mi się że tej powinien starczyć. Co prawda w poprzednim sterowniku używałem dwóch takich LCD które sterowałem dwoma liniami "E" , ale i tak całe ustawienia realizowałem na jednym wyświetlaczu a parametry ważniejsze wrzucałem na drugi. Troszkę także żałuję że nie wrzuciłem w układ także fotorezystora który by mi umożliwił automatyczne ściemnianie podświetlenia przy ciemności w pomieszczeniu. Ale trudno.
Także troszkę mi się nie podoba rozdzielenie sterowania LCD na różne piny z różnych portów , ale spowodowane to jest tym iż na PCB bardziej mi pasowało takie poprowadzenie ścieżek.

Zastanawiam się tylko nad portem G procesora. Czy te piny mogę sobie używać jak mi się podoba ? Z tego co pamiętam używałem już tych pinów jako I/O ale nie pamiętam na 100%.Może ktoś z kolegów mógłby się przyjrzeć jeszcze raz schematowi zanim popełnię wytrawienie PCB .

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).



ELEKTRONIKA.ZIP
 Filename:  ELEKTRONIKA.ZIP
Download
 Contents:  
 Filesize:  157.17 KB
 Punkty:  0

Back to top
   
RomanFilipecki
Poziom 3
Poziom 3


Joined: 22 Jun 2007
Posts: 7
Location: Kielce

Post#44 19 Feb 2012 09:12helpful post - solution   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Głupia sprawa ale złącza śrubowe ARK doprowadzające zasilanie 230VAC powinny mieć raster 7,5 mm a nie 5,08, spójrz na odległości ścieżek po stronie sieciowej i DC oraz odległość N i L koło bezpiecznika

Roman
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#45 Post from the author of the topic 19 Feb 2012 11:34   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Co do złącz ARK to rzeczywiście odległości są małe ale spowodowane jest to tym iż mam cały karton tych złącz na stanie które zostały mi po modułach jakie kiedyś robiłem.
Płytki już wytrawione i czekają na wiercenie. Proszę mi wierzyć ale na "żywo" odległości nie wyglądają na taki minimalne.
Bardziej bałem się o ścieżki przy M128.
Miałem też dylemat czy zastosować warystor ale wydał mi się przesadą.

Na fotkach są także trzy małe płytki , jak zapewne zauważycie odpowiadają pinologią przekaźnikom .
I rzeczywiście zostaną zastosowane jako "przekaźniki" , tyle że elementem wykonawczym będzie triak. Chciałem dla testu sprawdzić jak będzie działać sterowanie pompami poprzez optotriak-triak. Jak nie będzie działać poprawnie to wyciągnę taką płyteczkę i wlutuję przekaźnik. A jak będzie działać to zastosuję takie płytki zamiast większości przekaźników.
Po prostu musiałem to sprawdzić a nie chciałem projektować na płytce głównej sterowania opartego na triakach gdyż w przypadku jakichś problemów całe PCB poszło by do kosza , a tak wlutuję przekaźnik i po sprawie. A nawet jak kiedyś uszkodził by się triak w takiej płytce to mogę najzwyczajniej w świecie wyciągnąć uszkodzony modulik i włożyć nowy. :D


edit:

Wytrawiłem płytki. Poniżej zamieszczam fotki :D .
Mam spore problemy z tonerem drukarki. Poprzednio płytki jakie robiłem wychodziły (prawie idealnie) ale robiłem je na oryginalnym tonerze Samsung-a . Teraz zakupiłem toner w (nie będę ukrywał , niech będzie to przestrogą dla innych) w Olinex -ie za 170PLN i toner jest po prostu "gówniany". Mam spore problemy z przenoszeniem tonera na płytki. Jak już prawie go wtopię w miedź to po wytrawieniu okazuje się że poligony i ścieżki są podtrawione. Próbowałem już na różnym stopniu zaciemnienia ale to samo. Jak zużyję ten pseudo toner to już nigdy nie zakupię nieoryginalnego. Ale to tak na marginesie. Zresztą zobaczcie sami jak "pożarło" mi znowu poligony.

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Kolejne fotki z postępami przy tworzeniu frontu i klawiatury .Miało zostać użyte szkło lakierowane na czarno ale szklarz zwalił mnie z nóg ceną jaką podał za wycinanie otworów wiec użyłem 2mm aluminium :D

[AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie). [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#46 Post from the author of the topic 11 Mar 2012 21:10   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Witam
Właśnie zaczynam pisanie programu do sterownika. Jako że jest to jeden z moich pierwszych programów w C to już potrzebuję pomocy..

Dodam że oczywiście nie chcę żadnych gotowców bo się w ten sposób niczego nie nauczę ale.


Pierwszy problem związany jest z wykrywaniem zewnętrznych przerwań.
Otóż pod piny obsługujące wykrywanie zewnętrznych przerwań INT4-INT7 mam podłączone transoptory które podają na piny procesora stan niski w momencie wykrycia zdarzenia. Oczywiście piny są zewnętrznie podciągnięte do VCC.
Przerwanie ma zostać wykryte w momencie pojawienia się stanu niskiego na pinie , ale.. No właśnie jest "ale" jak tego dokonać. PRzekopywałem elektrodę i net w poszukiwaniu prostych przykładów ale albo przykłady te są pisane w sposób niezrozumiały dla mnie albo są to przerwania głównie od USART. A ja potrzebuję maksymalnie proste wykrycie przerwania. Po wykryciu ma wykonać się jakaś procedurka.
Przekopywałem datasheet od atmega 128 i owszem widzę bity kontrolne i całą resztę ale jestem jeszcze zbyt ciemny.
Mógłby mi ktoś z kolegów przybliżyć jak skonfigurować i wykrywać przerwanie np. dla INT7 ? W Bascomie to wszystko było proste jak "drut" a w C trzeba się nagimnastykować jak... :D

Znalazłem taki fragmencik kodu (fakt że obsługujący impulsator) :
Code C - [expand]
DDRD = 0;
PORTD = (1<<PD2)|(1<<PD3);
 
MCUCR = 10; // przerwanie INT0 i INT1 reagujące na opadające zbocze
GICR = (1<<INT0)|(1<<INT1); // aktywacja przerwań INT0 i INT1
 
sei();
 
SIGNAL(SIG_INTERRUPT0)
{
++dystans;
}
 
SIGNAL(SIG_INTERRUPT1)
{
if(dystans > 0) --dystans;
}


I takie rozwiązanie było by dla mnie proste i idealne ale.. nie wiem jak skonfigurować rejestr MCUCR i GICR w M128. Notę katalogową od procesora mam prawie rozszarpane.. i nic...
Back to top
   
tmf
Poziom 24
Poziom 24


Joined: 12 Aug 2009
Posts: 4766
Location: Katowice

Post#47 11 Mar 2012 22:50   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Zobacz opis rejestrów EICRA i EICRB oraz EIMSK - są związane z przerwaniami zewnętrznymi INT0-7. Miejmy nadzieję, że do nich masz podłączone te transoptory, bo jak nie to... kaplica.
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#48 Post from the author of the topic 11 Mar 2012 23:00   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


A więc tak. Wyskrobałem taki kodzik. Przedstawiam go w tej formie gdyż nie chcę wklejać całego kodu.
Piny pod które mam podpięte transoptory to E4-E7 więc tak jak trzeba.

Oto kodzik. Czy to powinno zadziałać? Chyba tak..

Code C - [expand]
#define PRZERW4 (1<<PE4) //ustawienie pinu do którego podłączona jest TRANSOPTOR
#define PRZERW5 (1<<PE5) //ustawienie pinu do którego podłączona jest TRANSOPTOR
#define PRZERW6 (1<<PE6) //ustawienie pinu do którego podłączona jest TRANSOPTOR
#define PRZERW7 (1<<PE7) //ustawienie pinu do którego podłączona jest TRANSOPTOR
 
DDRE &= ~(PRZERW4); //PIN E4 - WEJŚCIE (NIE KONIECZNE ALE DLA CZYTELNOŚCI KODU)
DDRE &= ~(PRZERW5); //PIN E5 - WEJŚCIE
DDRE &= ~(PRZERW6); //PIN E6 - WEJŚCIE
DDRE &= ~(PRZERW7); //PIN E7 - WEJŚCIE
 
PORTE |=PRZERW4; //PODCIĄGNIĘCIE PINU DO VCC
PORTE |=PRZERW5; //PODCIĄGNIĘCIE PINU DO VCC
PORTE |=PRZERW6; //PODCIĄGNIĘCIE PINU DO VCC
PORTE |=PRZERW7; //PODCIĄGNIĘCIE PINU DO VCC
 
EICRB = (1<<ISC41)|(1<<ISC51)|(1<<ISC61)|(1<<ISC71); //PRZERWANIE USTAWIONE NA ZBOCZE OPADAJĄCE
EIMSK = (1<<INT4)|(1<<INT5)|(1<<INT6)|(1<<INT7);
 
 
ISR(INT4_vect) //Funkcja wywołana podczas przerwania
{
//COŚ TAM ZRÓB
}
 
ISR(INT5_vect) //Funkcja wywołana podczas przerwania
{
//COŚ TAM ZRÓB
}
 
ISR(INT6_vect) //Funkcja wywołana podczas przerwania
{
//COŚ TAM ZRÓB
}
 
ISR(INT7_vect) //Funkcja wywołana podczas przerwania
{
//COŚ TAM ZRÓB
}

Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#49 Post from the author of the topic 15 Mar 2012 20:31   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Poza poprzednim pytaniem (które już sprawdziłem jesli chodzi o INT4- i działa) mam kolejne odnośnie PCF 8583p. Chodzi mi o to czy posiada może ktoś jakiś prosty fragment kodu odpowiedzialny za odczyt i dekodowanie daty z PCF-a? Odczytać godziny ,minuty i sekundy potrafię ale mi zależy głównie na dniach tygodnia a nie potrafię przeprowadzić tego okropnego przesuwania i mieszania bitami. Nawet nie jest mi potrzebny miesiąc i dzień miesiąca.Zależy mi tylko na tym abym wiedział jaki jest dzień tygodnia.

edit: OK, obsługa PCF-a opanowana już ze zrozumieniem.
Pomógł mi temat w którym kolega Villen dokładnie opisuje odczyt i przesunięcia bitowe potrzebne do wyciągnięcia wszystkich danych.
Back to top
   
adambehnke
Poziom 19
Poziom 19


Joined: 06 Jun 2008
Posts: 651
Location: Gdańsk

Post#50 Post from the author of the topic 09 Apr 2012 22:48   

Re: [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).


Tak wygląda mój sposób na odczyt PCF-a:

Code C - [expand]
//odczyt 6 bajtów do bufora od adresu 0x01 z pamięci RAM naszego RTC
I2C_read_buf( PCF8583_ADDR, 0x01, 6, bufor ); //4
sekundy = bcd2dec( bufor[ss] );
minuty = bcd2dec( bufor[mm] );
godziny = bcd2dec( bufor[hh] );
dzien=( bufor[dz] );
miesiac=( bufor[msc] );
//zerujemy 6 ostatnich bitów w których pamiętany jest dzien miesiaca aby odczytac rok
rok= ( dzien >> 6 );
rok = bcd2dec( rok );
//zerujemy dwa najstarsze bity w których pamiętany jest rok
dzien=(dzien <<2);
dzien=(dzien>>2);
dzien=bcd2dec(dzien);
dzient=( miesiac >> 5 );
dzient=bcd2dec(dzient);
miesiac=(miesiac<<3);
miesiac=(miesiac>>3);
miesiac=bcd2dec(miesiac);
f_pcf=0;


Trochę się męczę jeszcze z przesunięciami bitowymi i zerowaniem poszczególnych bitów ale ważne że kod działa poprawnie .



Prace nad moim urządzeniem posuwają się powoli do przodu.
Obecnie "walczę" z RS485.
Otóż, jest tak:
Na żądanie mastera (w tej chwili PC) mój moduł wysyła odpowiedź (raport) w postaci string-a :

<001_@_/A1/B23/C23/D25/E21/F23/G40/H23/I38/J0/K25/L80/M25/N37/O2/P1/R255/S8/T5/U255/V255/W255/X0/Y0/Z0/Q21/*17/#0/$0/&0/?0/%214>

Pytanie jest takie , jak obliczyć CRC ? Szukałem już chyba wszędzie i czytałem o CRC16 i 32 ale nie mam bladego pojęcia jak to wyliczyć z tak dużego string-a.
Finalnie CRC będzie obliczane i porównywane w każdym module jaki będzie pracował w mojej sieci. Mógłbym sobie stworzyć jakiś własny sposób na sumę kontrolną ale aplikację na PC piszę w Visual Studio i tam mam kontrolki do obliczania CRC16 i CRC32 i tego się muszę trzymać.
Może ktoś z kolegów mógłby podpowiedzieć jak ugryźć ten problem. Czy wyliczać CRC dla całego stringa czy tylko dla części (dla mnie to by było trochę nie tak).
Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> Microcontrollers Generally -> AVR Microcontrollers -> [AVR][C] Projekt sterownika C.O. (koncepcja i wykonanie).
Page 2 of 2 Go to page Previous  1, 2
Similar topics
Falownik 1-fazowy projekt i wykonanie - problemy projektowe (7)
Projekt sterownika domowego (2)
BASCOM a wyswietlacz 3310 raz jeszcze. Wykonanie sterownika (1)
projekt i wykonanie urządzenia elektronicznego POMOCY!!! (1)
Projekt - wykonanie obwodów płytki (2)
Koncepcja budowy woltomierza na AVR (20)
koncepcja sterownika silnika DC (4A) (15)
Pad USB z AVR. Projekt i Wykonanie? (17)
Projekt i wykonanie lamp biurowych-jakie dyrektywy? (16)
Projekt sterownika silnika krokowego. (5)

Page generation time: 0.228 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed