Spis treści: ZałoŜenia projektowe Temat projektu Wymagania projektowe Realizacja projektu - hardware

Podobne dokumenty
UNO R3 Starter Kit do nauki programowania mikroprocesorów AVR

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Edukacyjny sterownik silnika krokowego z mikrokontrolerem AT90S1200 na płycie E100. Zestaw do samodzielnego montażu.

ZL16AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega8/48/88/168

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

E-TRONIX Sterownik Uniwersalny SU 1.2

ZL2AVR. Zestaw uruchomieniowy z mikrokontrolerem ATmega8

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

Płytka ewaluacyjna z ATmega16/ATmega32 ARE0021/ARE0024

LABORATORIUM - ELEKTRONIKA Układy mikroprocesorowe cz.2

Politechnika Białostocka

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Politechnika Wrocławska

Instrukcja obsługi programatora AVR Prog USB v2

Programator procesorów rodziny AVR AVR-T910

ZL27ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

ZL5PIC. Zestaw uruchomieniowy dla mikrokontrolerów PIC16F887

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Szkolenia specjalistyczne

Płytka uruchomieniowa AVR oparta o układ ATMega16/ATMega32. Instrukcja Obsługi. SKN Chip Kacper Cyrocki Page 1

Wstęp Architektura... 13

Instrukcja obsługi programatora AVR Prog USB v2

Miernik poziomu cieczy MPC-1

2. Architektura mikrokontrolerów PIC16F8x... 13

STM32 Butterfly. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Miernik Poziomu Cieczy MPC-1

ZL30ARM. Zestaw uruchomieniowy dla mikrokontrolerów STM32F103

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

ZL8AVR. Płyta bazowa dla modułów dipavr

DOKUMENTACJA PROJEKTU

Murasaki Zou むらさきぞう v1.1 Opis programowania modułu LPC2368/LPC1768 z wykorzystaniem ISP

INSTRUKACJA UŻYTKOWANIA

Moduł uruchomieniowy AVR ATMEGA-16 wersja 2

Moduł nagrzewnicy elektrycznej EL-HE

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

Interfejs analogowy LDN-...-AN

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

Instrukcja obsługi programatora AVR Prog USB v2

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Język C. Wykład 9: Mikrokontrolery cz.2. Łukasz Gaweł Chemia C pokój 307

MSA-1 Mikroprocesorowy sterownik do przełącznika antenowego

AP Automatyka: Sonda do pomiaru wilgotności i temperatury HygroClip2-S

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

MultiTool instrukcja użytkownika 2010 SFAR

CONVERT SP. Z O.O. MK-30-DC M30300 LICZNIK ENERGII PRĄDU STAŁEGO INSTRUKCJA UŻYTKOWNIKA. CIRCUTOR S.A. CONVERT Sp. z o.o.

Spis treści. Projekt współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Parametryzacja przetworników analogowocyfrowych

Instrukcja obsługi programatora AVR Prog USB v2

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

INSTRUKCJA OBSŁUGI MONITORA LINII PRĄDOWEJ

ZL1MSP430 Zestaw startowy dla mikrokontrolerów MSP430F11xx/11xxA ZL1MSP430

WIZUALIZACJA DANYCH SENSORYCZNYCH MINISTACJA METEOROLOGICZNA

I. DANE TECHNICZNE II. INSTRUKCJA UśYTKOWANIA... 4

UWAGA! ELEKTRYCZNE POD NAPIĘCIEM!

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Zestaw Startowy EvB. Więcej informacji na stronie:

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

Immobilizer samochodowy otwierający dostęp poprzez kod czteroznakowy.

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

ZL28ARM. Zestaw uruchomieniowy dla mikrokontrolerów AT91SAM7XC

Uniwersalny adapter dla układów MSP430

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

DOKUMENTACJA TECHNICZNA WSKAŹNIKA ŁADOWANIA BATERII WSK-2 / 24V

Projektowanie Systemów Wbudowanych

Elektronika samochodowa (Kod: TS1C )

Płytka uruchomieniowa XM64

Instrukcja obsługi sterownika Novitek Triton

Rafał Staszewski Maciej Trzebiński, Dominik Derendarz

2.1 Porównanie procesorów

Rejestrator danych Log 10, TFA, zakres -30 do +60 C

MJOY ENCODERS v1 ZASADA DZIAŁANIA

SPECYFIKACJA HTC-K-VR. Kanałowy przetwornik CO2 z wyjściem analogowym V i progiem przekaźnikowym

Dokumentacja Licznika PLI-2

Sterownik RO WS-01E opis działania, obsługa

Jednym z najlepszych sposobów poznawania nowego typu mikrokontrolera

MOD Xmega explore z ATXmega256A3BU. sklep.modulowo.pl akademia.modulowo.pl zestawy.modulowo.pl app.modulowo.pl blog.modulowo.

Płytka laboratoryjna do współpracy z mikrokontrolerem MC68332

Wbudowane układy peryferyjne cz. 3 Wykład 9

Projekt sterowania turbiną i gondolą elektrowni wiatrowej na farmie wiatrowej

ZL9AVR. Płyta bazowa dla modułów ZL7AVR (ATmega128) i ZL1ETH (RTL8019)

Touch button module. Moduł przycisku dotykowy z podświetleniem LED

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Moduł prototypowy X3-DIL64 z procesorem ATxmega128A3U-AU

Systemy wbudowane. Paweł Pełczyński

Sterownik nagrzewnic elektrycznych HE module

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów AVR

Aoi Ryuu. v2.0 moduł z mikroprocesorem Atmega169 dla makiety dydaktycznej Akai Kaba

Tester samochodowych sond lambda

INSTRUKCJA PANEL STERUJĄCY MT-5

Programowanie mikrokontrolerów. 8 listopada 2007

LICZNIK IMPULSÓW Z WYŚWIETLACZEM LED NA SZYNĘ DIN LIMP-1 ZASILANY 230VAC

Instytut Teleinformatyki

ZL9ARM płytka bazowa dla modułów diparm z mikrokontrolerami LPC213x/214x

Transkrypt:

Spis treści:... 2 1. ZałoŜenia projektowe... 3 1.1. Temat projektu... 3 1.2. Wymagania projektowe... 3 2. Realizacja projektu - hardware... 4 2.1. Wybór mikroprocesora oraz urządzeń peryferyjnych... 4 2.2. Schemat ideowy... 5 2.3. Płytka PCB... 6 2.4. Wizualizacja płytki 3D... 7 2.5. Wykonana płytka PCB... 8 2.6. Wykaz elementów oraz kosztorys... 9 3. Algorytm sterownika, kod źródłowy C... 10 3.1. Schemat blokowy algorytmu sterownika... 10 3.2. Opis ważniejszych fragmentów kodu... 11 4. Możliwe zmiany... 13 4.1. Rozbudowa sterownika... 13 4.2. Optymalizacja kodu... 13 5. Załącznik... 14 5.1. Zawartość... 14 6. Wnioski... 14 2

1. ZAŁOŻENIA PROJEKTOWE Celem projektu jest wykonanie urządzenia sterowanego mikroprocesorem. Cel projektu obejmuje takŝe wykonanie prototypu oraz jego zaprogramowanie. 1.1. Temat projektu Tematem projektu jest: system kontroli temperatury. Sterownik ma za zadanie kontrolować temperaturę urządzeń peryferyjnych róŝnych układów elektronicznych, np. komputera PC. Sterownik dedykowany jest dla tzw. overclocker-ów czyli osób, które zajmują się zmianą ustawień fabrycznych podzespołów w celu uzyskania lepszej wydajności sprzęttowej. Efektem ubocznym takich działań jest nadmierne wydzielanie się ciepła oraz problem z jego odprowadzeniem. 1.2. Wymagania projektowe Pomiar temperatury w 3-ech miejscach Płynna regulacja obrotów 3 wentylatorów modulacja PWM Wyświetlenie temperatur oraz wartości PWM (procentowo) Tryb pracy automatycznej obroty wentylatora zaleŝne od temperatury Tryb pracy ręcznej sterowanie niezaleŝne od temperatury Uniwersalność praca z róŝnymi urządzeniami, nie tylko PC MoŜliwość podłączenia róŝnych wentylatorów MoŜliwość szybkiego przeprogramowania układu Praca w zakresie temperatur Ograniczenie maksymalnych i minimalnych obrotów wentylatorów 3

2. Realizacja projektu hardware: Realizacja projektu od strony fizycznej. 2.1. Wybór mikroprocesora oraz urządzeń peryferyjnych Zgodnie z wymaganiami w pkt. 1.2. po przejrzeniu ofert róŝnych firm elektronicznych wybrane zostały następujące elementy: Mikrokontroler: ATmega8 16-PU w obudowie dip28: 3 kanały PWM Przetwornik analogowo-cyfrowy 6 wejść Programowanie w układzie ISP Czujnik temperatury: LM 35 DZ Zakres 2 150 C Wyjście analogowe 10 mv/ C Pozostałe elementy: Tranzystory sterujące MOSFET-N BUZ 10 Rezystory 0,25 W Wyświetlacz LED 7 segmentów Przyciski switch-e Kondensatory ceramiczne Złącza molex oraz złącza taśmowe 4

2.2. Schemat ideowy Schemat ideowy przedstawia połączenia peryferii do mikrokontrolera, sekcja zasilania jest w tym układzie tylko opcją, sam układ wymaga zasilania 12V oraz 5V. 5

2.3. Płytka PCB Układ został zaprojektowany na dwóch płytkach PCB połączonych złączem taśmowym. Zdecydowałem się na takie rozwiązanie gdyŝ układ jest podzielony na panel z wyświetlaczem i przyciskami oraz na układ wykonawczy. Płytki są jednostronne wykonane metodą termo transferu we własnym zakresie. Brak wylanej masy to ułatwienie przy lutowania w celu uniknięcie przypadkowego zwarcia. Zworki prowadzone na płytce są wynikiem braku moŝliwości wykonania płytki dwustronnej. Jest to układ prototypowy, w przyszłości rozwijany, więc płytki jednostronne są tu wystarczające. Kolor niebieski warstwa BOTTOM Kolor czerwony warstwa TOP zworki 6

2.4.Wizualizacja płytki 3D Wizualizacje wykonane za pomocą wtyczki do programu Eagle. Wtyczka dysponuję ograniczoną baza elementów jednak pozwala w pełni zobrazować naszą płytkę przed wykonaniem. Taka wizualizacja pozwala przemyśleć projekt oraz zauwaŝyć błędy projektowe. 7

2.5. Wykonana płytka PCB 8

2.6.Wykaz elementów i kosztorys Nazwa Ilość Cena jednostkowa Cena Uwagi Atmega 8 16-PU 1 5,50 zł 5,50 zł Rezystor 1k 7 0,10 zł 0,70 zł Rezystor 10k 3 0,10 zł 0,30 zł Kondensator 100n 4 0,10 zł 0,40 zł Kondensator 22pf 2 0,10 zł 0,20 zł niezamontowany Rezonator 1 1,00 zł 1,00 zł niezamontowany BUZ 10 3 1,50 zł 4,50 zł Złącza Molex 2 pin 3 0,25 zł 0,75 zł Złącza Molex 3 pin 3 0,25 zł 0,75 zł Switch 6mm 6 0,15 zł 0,90 zł LED 7 segment. 2 1,00 zł 2,00 zł Złącze taśmowe ML10 1 0,50 zł 0,50 zł Złącze taśmowe ML16 2 0,50 zł 1,00 zł Taśma 16 Ŝył 1 0,50 zł 0,50 zł Wtyk 16 pin 2 0,50 zł 1,00 zł BC 557B 2 0,20 zł 0,40 zł Goldpin 4 0,05 zł 0,20 zł Płytka PCB 2 2,50 zł 5,00 zł Razem: 25,60 zł 9

3. Algorytm sterownika, kod źródłowy C Algorytm zakłada dwa tryby sterowania, ręczny i automatyczny. Program został napisany w języku C w programie AVR Studio z wykorzystaniem środowiska Win AVR. 3.1. Schemat blokowy algorytmu START Sterowanie w trybie ręcznym zrealizowane wg MENU krzyżowego widocznego powyżej powszechnie stosowanego np. w pilotach do TV Tryb automatyczny Wybór trybu ręcznego Pomiar temperatury Wysterowanie PWM Wyświetlanie wartości PWM Wyświetlanie wartości temperatur Wybór trybu ręcznego Wejście do MENU Przycisk OK Przycisk _ Wejdź w podmenu x x++ Przycisk OK Przycisk _ Przycisk _ x-- Zmień odpowiednią wartość Wybór tryby automatycznego 10

3.2. Opis waŝniejszych fragmentów kodu Program został napisany w języku C. Kod źródłowy w całości znajduje się w załączniku. Pomiar ADC z trzech wejść: 2 funkcje: do inicjalizacji przetwornika oraz to rozpoczęcia pomiaru Zrealizowany w przerwaniu generowanym po zakończeniu konwersji Zmienna pomocnicza flaga informuje o przypisaniu wartości ADC do zmiennej W trybie auto po zakończeniu pomiaru z jednego czujnika zostaje wywołany pomiar z drugiego Przetwornik pracuje w trybie Free running z częstotliwością próbkowania 125 khz Ograniczenie rozdzielczości do 8 bitów, wyrównanie do lewej oraz zapis najbardziej znaczących bitów if((flaga & _BV(0))&&(we==0x04)) { temp2 = pomiar; we=0x05; flaga &= ~_BV(0); //wyzerowanie flagi ADC_start(we); } PowyŜszy warunek sprawdza czy został wybrany czujnik na wejściu ADC 4 oraz stan flagi która informuje o końcu przerwania. Spełnienie tych warunków powoduje przypisanie wartości ADC pod zmienna pomiar do zmiennej temp2, która odpowiada czujnikowi nr 2. Dalej zostaje wybrane następne wejście ADC 5, wyzerowanie flagi, oraz uruchomienie następnego pomiaru. ISR(ADC_vect) //przerwanie od ADC { pomiar = ADCH; cbi(adcsra,adsc); // zatrzymanie konwersji flaga = _BV(0); } PowyŜszy fragment to przerwanie od przetwornika ADC, następuje zapis wartości rejestru ADCH 8 najstarszych bitów do zmiennej pomiar. Następnie zatrzymujemy konwersję i ustawiamy flagę w stan wysoki, która jest informacją o zakończeniu przerwania. Multipleksowanie wyświetlaczy LED: Zrealizowane w przerwaniu z wykorzystanie TIMER-a. MoŜliwość zmiany częstotliwości multipleksowania w programie Łatwa rozbudowa dla multipleksowania większej ilości Fragment kodu źródłowego przedstawia przerwanie od przepełnienia licznika. Multipleksowanie zrealizowane jest na prostej instrukcji switch(), która co przerwanie zapala inny wyświetlacz. Dla dwóch segmentów wystarczą dwa warunki case łatwo więc zauwaŝyć, Ŝe aby zwiększyć ilość multipleksowanych wyświetlaczy wystarczy dodać następny warunek. Funkcja led7() odpowiada za zapalenie odpowiednich segmentów wyświetlacza. Najpierw zapalony jest wyświetlacz nr 1 z odpowiednią dla niego wartością, a w kolejnym przerwaniu zapalony jest wyświetlacz nr 2 z następną wartością. 11

ISR(TIMER0_OVF_vect) { TCNT0=timer; switch (w) { case 0: break; PORTD =0xFF; // wyzerowanie portu D - zgaszenie wszystkich lini sbi(portb,0); //zgaszenie segmentu 2 led7(x); cbi(portd,7); // zapalenie segment 1 w++; } } case 1: break; PORTD =0xFF; sbi(portd,7); ///zgaszenie segmentu 1 led7(y); cbi(portb,0); // zapalenie segment 2 w=0; Praca sterownika w zakresie temperatur oraz przy dolnej i górnej granicy obrotów: MoŜliwość zmiany zakresu Dostosowanie do róŝnego rodzaju wentylatorów (róŝne napięcia pracy) Przykład: Chcemy aby nasz sterownik kontrolował obroty wentylatora w zakresie 20 30 C, oraz wiemy, Ŝe wentylator pracuje w zakresie napięć 7-12 V. PoniŜej 20 C wentylator jest wyłączony, a powyŝej 30 C pracuje na maksymalnych obrotach, w zakresie 20 30 stopni następuje zmiana obrotów proporcjonalnie do temperatury. pwmax wartość odpowiadająca maksymalnym obrotom przy danym napięciu (12V) pwmmin - wartość odpowiadająca minimalnym obrotom przy danym napięciu (7V) tempmin - wartość odpowiadająca dolnej granicy pracy (20 C) tempmax - wartość odpowiadająca górnej granicy pracy (30 C) temp zmierzona wartość temperatury Wartość wypełnienia PWM określona jest wzorem: Np. pwmax = 255; pwmmin = 200; zmierzona temperatura 25 C Dla temp 26 C PWM będzie juŝ równe 233. 255 200 30 20 25 20 200 227,5 12

Kod źródłowy odpowiadający zapisowi powyŝszego równania. temp3 zmierzona wartość z czujnika if(temp3<20){pwm3=0;} else if((temp3>=20)&&(temp3<=30)) { pwmobl=0; pwmobl2=0; pwmobl=pwmmax2-pwmmin2; pwmobl=pwmobl/10; pwmobl2=temp3-20; pwmobl=pwmobl*pwmobl2; pwmobl=pwmobl+pwmmin2; pwm3=pwmobl; } else if(temp3>30){pwm3=255;} // wyłączenie wentylatora // zmienne pomocnicze // maksymalne obroty 4. Możliwe zmiany Sterownik został wykonany z zamiarem jego dalszego udoskonalania. Spełniane funkcję są dalekie od rozwiązań jakie proponują firmowe sterowniki, dlatego układ został wykonany na płytce prototypowej z moŝliwością programowania w układzie. Pozwala to na szybką zmianę kodu i przeprogramowanie urządzenia. 4.1.Rozbudowa sterownika W następnych wersjach sterownik moŝe zostać rozbudowany w celu usprawnienia jego funkcjonalności oraz zwiększenia moŝliwości sprzętowych. ZałoŜenia rozbudowy: Zwiększenie liczby czujników pomiarowych Zwiększenie liczby sterowanych wentylatorów Zmiana mikroprocesora na posiadający interfejs JTAG Zmiana wyświetlacza LED na LCD Dodanie systemu alarmowego, buzzer, diody sygnalizacyjne MoŜliwość pomiaru obrotów poszczególnych wentylatorów sprzęŝenie zwrotne Minimalizacja ilości połączeń Układ wykonany na jednej dwustronnej płytce UŜycie interfejsu 1-wire dla czujników pomiarowych MoŜliwość programowania przyciskami i zapisu danych do pamięci EEprom 4.2.Optymalizacja kodu ZałoŜenia: Skrócenie kodu źródłowego Stworzenie własnych bibliotek Stworzenie funkcji dla powtarzających się elementów programowych Lepsze wykorzystanie moŝliwości programowych języka C 13