Ten projekt jest oparty na heurystycznym podejściu AEIOU do projektowania inżynierskiego.
Projekt dla wydajności, bezpieczeństwa i niezawodności jest zapewniony w odniesieniu do modułu przełączającego.
Projekt dla Ergonomii i Estetyki jest zapewniony pod względem Priorytetów ustalonych przez użytkownika w odniesieniu do dostępności źródła zasilania.
Projekt dla Produkcyjności i Montażu jest zapewniony w zakresie Generatora, Inwertera i Tarcz Słonecznych. Ponadto, w zależności od wyboru i dostępności, można pracować nad różnymi układami wykorzystującymi Eagle.
Projekt pod kątem kosztów i środowiska jest uwzględniony, gdy koszty poniesione na wytwarzanie energii z nieodnawialnego źródła mogą być ograniczone, a opcja czystego środowiska jest zapewniona przez źródło słoneczne, które jest odnawialnym źródłem energii.
System ten może być dalej połączony z obecnie istniejącą siecią zasilającą.
Transformator step-down/12 V adapter
Użyto adaptera, który jest transformatorem step down połączonym z układem prostowniczym. Dostarcza on 12 V DC na drugim końcu.
Wykaz elementów elportal
LCD (wyświetlacz ciekłokrystaliczny)
Użyto 16×2 znakowych wyświetlaczy LCD.
Rozmiar: 84 mm × 44 mm × 12,1 mm
Liczba znaków w liniach: 16×2
Kolor: Ciemny na żółto-zielonym
Typ: LCD znakowy
ULN2003 Sterownik przekaźnika
ULN2003 jest monolitycznym, wysokonapięciowym i wysokoprądowym układem tranzystorów Darlingtona. Składa się z siedmiu par NPN Darlington, które posiadają wyjścia wysokiego napięcia z diodą Clamp ze wspólną katodą do przełączania obciążeń indukcyjnych. Prąd znamionowy kolektora pojedynczej pary Darlingtona wynosi 500 mA. Pary Darlingtona mogą być połączone równolegle w celu zwiększenia wydajności prądowej. Zastosowania obejmują sterowniki przekaźników, sterowniki młotków, sterowniki lamp, sterowniki wyświetlaczy (wyładowania gazowe LED), sterowniki linii i bufory logiczne. ULN2003 ma rezystor bazowy serii 2,7 kW dla każdej pary Darlingtona do pracy bezpośrednio z urządzeniami TTL lub 5 V CMOS.
Funkcje sterownika
- Siedem Darlingtonów w opakowaniu
- Prądy wyjściowe 500 mA na sterownik (600 mA w punkcie szczytowym)
- Zintegrowane diody przeciwzakłóceniowe dla obciążeń indukcyjnych
- Wyjścia mogą być używane równolegle dla wysokich prądów.
- Wejścia kompatybilne z TTL/CMOS/PMOS/DTL.
- Wejścia przypięte przeciwnie do wyjść
- Uproszczony układ
Przekaźniki
Przekaźniki to urządzenia elektromechaniczne lub urządzenia półprzewodnikowe, które działają w odpowiedzi na sygnał, którym może być napięcie, prąd, temperatura itp. Przekaźniki elektromagnetyczne działają w wyniku działania pól magnetycznych. Składają się z dwóch części: (1) cewki roboczej i (2) przełącznika magnetycznego. Gdy impuls wejściowy zostanie wprowadzony do cewki, w rdzeniu elektromagnesu wytwarzane jest pole magnetyczne. Ta czynność powoduje przesunięcie przełącznika. Przekaźniki są normalnie otwarte lub normalnie zamknięte. Dostępne są przekaźniki do wzbudzania DC lub AC, a napięcie cewek wynosi od 5 V do 230 V.
Regulator napięcia 7805
Prąd wyjściowy do 1 A.
Napięcia wyjściowe 5 V.
Ochrona przed przeciążeniem termicznym.
Zabezpieczenie przed zwarciem.
Ochrona bezpiecznego obszaru pracy tranzystora wyjściowego
Mikrokontroler AT89S52
AT89S52 to energooszczędny, wysokowydajny 8-bitowy mikrokontroler CMOS z 8K bajtów programowalnej pamięci Flash w systemie. Urządzenie jest produkowane przy użyciu technologii pamięci nieulotnej o wysokiej gęstości ATMEL i jest kompatybilne ze standardowym zestawem instrukcji i wyprowadzeń 80C51.
Wbudowana pamięć Flash umożliwia przeprogramowanie pamięci programu w systemie lub za pomocą konwencjonalnego programatora pamięci nieulotnej. Dzięki połączeniu uniwersalnego 8-bitowego procesora z programowalną pamięcią Flash w systemie na monolitycznym chipie, ATMEL AT89S52 jest potężnym mikrokontrolerem, który zapewnia wysoce elastyczne i ekonomiczne rozwiązanie dla wielu wbudowanych aplikacji sterujących.
AT89S52 zapewnia następujące standardowe funkcje: 8 KB pamięci Flash, 256 bajtów pamięci RAM, 32 linie we/wy, zegar Watchdog, dwa wskaźniki danych, trzy 16-bitowe zegary/liczniki, sześciowektorowa, dwupoziomowa architektura przerwań, pełny dupleksowy port szeregowy, wbudowany oscylator i obwody zegara.
Ponadto AT89S52 został zaprojektowany ze statyczną logiką do pracy przy zerowej częstotliwości i obsługuje dwa tryby oszczędzania energii wybierane przez oprogramowanie. Tryb bezczynności zatrzymuje procesor, jednocześnie umożliwiając dalsze działanie pamięci RAM, zegarów/liczników, portu szeregowego i systemu przerwań.
Tryb wyłączania oszczędza zawartość pamięci RAM, ale wstrzymuje oscylator, wyłączając wszystkie inne funkcje układu do następnego przerwania lub resetu sprzętowego.
Cechy:
- Kompatybilny z produktami MCS-51
- 8 KB pamięci flash programowalnej w systemie (ISP)
- Wytrzymałość: 10 000 cykli zapisu/kasowania
- Zakres roboczy 4,0 V do 5,5 V
- Praca w pełni statyczna: od 0 Hz do 33 MHz
- Trzypoziomowa blokada pamięci programu
- 256 × 8-bitowa wewnętrzna pamięć RAM
- 32 programowalne linie we/wy
- Trzy 16-bitowe zegary/liczniki
- Osiem źródeł przerwań
- Kanał szeregowy UART z pełnym dupleksem
- Tryby bezczynności i wyłączania o niskim poborze mocy
- Odzyskiwanie przerwania z trybu wyłączania
- Zegar Watchdog
- Podwójny wskaźnik danych
- Flaga wyłączenia zasilania
- Szybki czas programowania
- Elastyczne programowanie ISP (tryb bajtów i stron)
- Ekologiczne opakowanie (bez ołowiu/halogenków)
Diagram blokowy
Praca modelu - działa on w następujący sposób:
Ten projekt wykorzystuje układ czterech różnych źródeł zasilania, które są kierowane do obciążenia, aby zapewnić nieprzerwaną pracę obciążenia. Po uruchomieniu system pokazuje obecne dostępne zapasy na ekranie LCD. Następnie, zgodnie z Priorytetem Predefiniowanym w Programie, następuje przełączenie Źródeł. Ten system działa na wstępnie ustalonych priorytetach, takich jak zasilanie główne, zasilanie słoneczne, zasilanie falownika i zasilanie generatora. Cztery przełączniki dwustabilne reprezentują odpowiednio cztery różne źródła i są połączone ze sterownikiem. Decyzja systemowa odbywa się na podstawie poleceń wydawanych sterownikowi przekaźnika tj. ULN2003 przez zaprogramowany mikrokontroler AT89S52. Odpowiednio sterownik przekaźnika wybiera, który przekaźnik ma być zasilany.
Początkowo podano mikrokontrolerowi wysoki sygnał wejściowy, w wyniku czego sterownik generuje niski sygnał wyjściowy do aktywacji pierwszego sterownika przekaźnika, co spowoduje zasilenie przekaźnika i zaświecenie diody LED.
Przełączanie odbywa się w następujący sposób:
- Początkowo zasilanie główne jest włączone, więc wszystkie inne źródła zasilania będą wyłączone, ponieważ zasilanie główne ma najwyższy priorytet.
- Po wyłączeniu zasilania lub odcięciu zasilania, zasilanie słoneczne zostanie automatycznie wybrane, a system będzie działał na zasilaniu słonecznym.
- Następnie, jeśli główne i zasilanie słoneczne nie są dostępne, falownik jest automatycznie wybierany, a system działa na zasilaniu falownika.
- Wreszcie, jeśli zasilanie główne, zasilanie słoneczne i zasilanie falownika nie są dostępne, system automatycznie przełączy się na generator i będzie działał na tym samym.
- Teraz spośród wszystkich wyżej wymienionych źródeł, jeśli któreś ze źródeł o wyższym priorytecie powróci, system automatycznie przełączy się na to konkretne źródło o wyższym priorytecie.
Wyświetlacz LCD sprzęgnięty z modułem wyświetla aktualne Źródło Energii.
Schemat układu
Montaż i testowanie
Diagram przepływu
Użyte oprogramowanie
- Autodesk Eagle – projektowanie PCB
- Keil µvision – programowanie AT89S52
Szkielet programu:
#include
#define lcd P2
sbit m=P3^4;
sbit s=P3^5;
sbit in=P3^6;
sbit g=P3^7;
sbit O1=P0^1;
sbit O2=P0^2;
sbit O3=P0^3;
sbit O4=P0^4;
sbit RS=P0^5;
sbit RW=P0^6;
sbit EN=P0^7;
void delay (unsigned int ms) // funkcja opóźnienia
{
unsigned int i, j;
for (i=0; i<=ms; i++)
for (j=0; j<500; j++);
}
void lcd_cmd(unsigned char x) //Funkcja komend wyświetlacza LCD
{
lcd = x;
RS = 0;
RW = 0;
EN = 1;
delay(10);
EN = 0;
}
void lcd_data(unsigned char t) // Funkcja danych Lcd
{
lcd = t;
RS = 1;
RW = 0;
EN = 1;
delay(10);
EN = 0;
}
void lcd_initial() //Funkcja inicjalizacji wyświetlacza LCD
{
lcd_cmd(0x80);
lcd_cmd(0x38); //Zestaw funkcji: 8-bitowa, 2-wierszowa 5×7 kropek
lcd_cmd(0x0c); //Wyświetlacz włączony, kursor wyłączony
// lcd_cmd(0x0E); / /Wyświetlacz włączony, kursor włączony
}
void disp_str(unsigned char *p) // Funkcja wyświetlania ciągu znaków
//*p jest zmienną wskaźnikową
{
for(*p=0;*p!=’\0′;*p++)
{
lcd_data(*p);
}
}
void main()
{
unsigned char z;
// Ta inicjalizacja ma na celu dodanie różnych warunków w zależności od priorytetu//.
while(1)
{
if(m==1)
{
O1=1;
O2=0;
O3=0;
O4=0;
z=1;
}
if(m==…...)
{
//Dodaj tutaj inny warunek
}
// Zatem zgodnie z warunkiem poniżej wymienione zadanie zostanie zakończone.
if(z=1)
{
lcd_initial();
//lcd_cmd(0x01); //wyczyść wyświetlacz
disp_str(„MAIN POWERSUPPLY”);
lcd_initial();
}
if(z==…...)
{
//Dodaj tutaj swoje zadanie wyświetlacza lcd zgodnie z powyższym formatem
}