Skocz do zawartości

qbas0600

Użytkownicy
  • Zawartość

    51
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

qbas0600 wygrał w ostatnim dniu 29 maja 2013

qbas0600 ma najbardziej lubianą zawartość!

Reputacja

33 Bardzo dobra

O qbas0600

  • Ranga
    4/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. @Tom277 da się zrobić ładnie, szybko i tanio dwustronnie PCB w domu. Warstwy zgrywam na szybie podświetlonej od dołu i wszystko ładnie się schodzi. Termotransfer robie laminatorem i wszystko się przykleja. Papieru nie odrywam tylko czekam aż sam się odmoczy. Całość wykonania od termotransferu do mycia po trawieniu to około godzina. Robiłem tak ścieżki pomiędzy nogami układu ne555 w obudowie SO8, ale wymagało to wprawy. Co do lutowania elementów mniejszych od 0805 to robie to lutownicą oporową z bardzo cienkim grotem i brak soldermaski nie stanowi problemu. Wiadomo, w przypadku fabryczej PCB z soldermaską jest to znacznie łatwiejsze, jednak odrobina wprawy i wszystko ładnie wychodzi. Odrobina wprawy i da się osiągnąć wszystkie cechy.
  2. Dostałem laser 500mW i długości fali 405nm. Mam zamiar podczepić go pod drukarke 3d zgodnie z tym projektem https://www.elektroda.pl/rtvforum/topic3550978.html . Sklejke graweruje i tnie gruby papier więc myślę że z farbą sobie poradzi. Da się o wiele taniej niż 2000zl LASER 10W
  3. Co do kartonu to nie można się zgodzić, że się nie nadaje, bo jak mawiała pewna postać z filmu "moim zdaniem to nie ma tak, że dobrze albo że nie dobrze". Bardziej bym się przyczepił wykonania obudowy byle jak. Kilka razy już tak miałem, że przez brak styku w prowizorce szukałem błedu w kodzie. Po za wartością merytoryczną warto też ocenić staranność wykonania.
  4. @Treker niech pierwszy rzuci kamieniem ten, który nigdy nie zrobił prowizorki na chwile i potem na zawsze tak zostało Mi to bardziej nie podoba się ten pasek na widoku. Jakiś kamyk podejdzie pomiędzy pasek a koło i smutek, deska zostaje a my lecimy dalej.
  5. To było by dobre. Start na 3s2p a po osiągnięciu prędkości przełączenie na 6s1p. Coś w stylu przełącznika trójkąt gwiazda w silnikach 3f
  6. A jak sprawa się ma z mocą i podjazdami? Daje rade?
  7. A w "markowych" konstrukcjach jak to jest rozwiązane?
  8. Jak widziałem podobne konstrukcje to wykorzystywano aparatury modelarskie- pistoletowe. Daje to małą kontrole prędkości pod palcem.
  9. Konstrukcja estetyczna jednak mnie najbardziej ciekawi zasilacz z ali Sam na niego czekam z wstępnie przygotowaną obudową. Ciekaw jestem jak sie sprawdza i czy tranzystor sie bardzo grzeje przy ustawionym niskim napięciu i wysokim prądzie
  10. Problem by był gdybyśmy podczas zjazdu łapali równowage odchylając się do tyłu i jednocześnie chcieli przyśpieszyć przed kolejnym podjazdem
  11. Ja bym szedł teraz w strone hulajnogi Co do konstrukcji to ciekawi mnie wytrzymałość kół pasowych wykonanych z PLA. Sam troche przedrukowałem tego materiału i zastanawia mnie odporność tego materiału na ścieranie i temperature powstałą w wyniki tarcia paska o zęby przekładni. Nie doczytałem też nic o kosztach a ciekawi mnie to. Istnieje możliwość udostępnienia przez kolege wsadu do arduino?
  12. @szczawiosław z konstrukcja jest dokładnie tak jak piszesz. Radiatory są skręcone ze sobą na sprężynach tak jak to sie robi w radiatorach do PC. Zapewnia to dobry i równy docisk do ogniw. A co pasty to jest, a nawet wykosztowałem się w taką o lepszych parametrach niż silikonowa.
  13. Co do wymuszenia wentylacji to są zamontowane wentylatory na każdy radiator po jednym. W srodku wymiennika, dwa radiatory mają jeden wentylator zamontowany w celu mieszania powietrza w komorze i odbierają zimne lub ciepłe powietrze z ogniw. Co to plyty z PTFE to zamontowana jest ona jako jedna scianka wymiennika oraz jako mocowanie do radiatorów i ustabilizowanie ogniw termoelektrycznych. Jakos musiałem uszczelnić komore wymiennika ciepła a ogniwa potrafią się dobrze nagrzać co mogło by spowodować deformacje scianki gdy była by zrobiona z PCV. @msalamon to schładzanie zostało dodane jako "bajer" bo nie spodziewałem się oszałamiającego efektu. Nie będzie ono używane w terrarium. Jak bym miał testować układ w niskich temperaturach to bym do zamrażarki go wsadził
  14. Maksymalnie udało mi się zejść 5 stopni poniżej temperatury otoczenia. Ogniwa peltiera nie nadają się do chłodzenia takiego "pojemnika". Zbyt kiepska izolacja. Dla porównania w lodówce samochodowej spisują się świetnie a pojemność podobna.
  15. Komory klimatyczne, to urządzania, które umożliwiają wytworzenie w ich wnętrzu klimatu o ściśle określonych parametrach. Badanie próbek materiałowych oraz organizmów żywych, używając tych urządzeń, pozwala na szybkie sprawdzenie jak zachowa się badany obiekt w zmiennych warunkach klimatycznych, jak również przy długotrwałym niekorzystnym oddziaływaniu zjawisk atmosferycznych. Konstrukcja przemysłowych komór pozwala na osiągnięcie temperatur nawet w granicach od -90°C do +180°C Powodem budowy komory klimatycznej jest chęć stworzenia przy wykorzystaniu powszechnie dostępnych materiałów, konstrukcji innej niż istniejące obecnie. Dostępnych jest wiele urządzeń komercyjnych jednak ich cena sprawia, że grono użytkowników jest bardzo niewielkie. Choć prezentowana komora klimatyczna nie posiada parametrów pracy takich jak komory wykorzystywane w przemyśle, to opracowanie to zawiera rozwiązania pozwalające na przeprowadzanie testów w kontrolowanych warunkach. Jako materiał na konstrukcje komory zostało wybrane szkło jako materiał obojętny chemicznie i łatwy w czyszczeniu. Podstawą konstrukcji jest stare akwarium, w którym częściowo zostały usunięte ścianki i wklejone nowe. Na konstrukcję wentylacji i nagrzewnicy wybrałem popularne i łatwe w obróbce PCV. Pokrywę komory wykonałem z sklejki zabezpieczonej przed wilgocią lakierem akrylowym. Całość komory została zaprojektowana w oprogramowaniu Autodesk Inventor. W konstrukcji wykorzystano gotowe moduły co ułatwiło wykonanie prototypu jak i później gotowego urządzenia. Do mierzenia czasu wykorzystano moduł zegara DS3231, który posiada wewnętrzny termometr oraz wewnętrzny kwarc, przez co nie jest wrażliwy na zmiany temperatury otoczenia. Komunikuję się on z Arduino poprzez magistrale i2c. Na początku używałem zegar DS1302 jednak potrafił się on rozjechać nawet 8 minut na tydzień. Kolejnym modułem korzystającym z tej magistrali jest wyświetlacz LCD 4x20 z adapterem na i2c: Dzięki wykorzystaniu tej magistrali oba moduły do komunikacji i przesyłania danych wykorzystują tylko dwa porty w Arduino dzięki czemu nie blokujemy i tak małej ilości portów. Kolejnym modułem jest czujnik wilgotności DHT22. Jest to zintegrowany miernik temperatury i wilgotności z zakresem 0-100% wilgotności oraz temperatury z przedziału -40/+80 stopni Celsjusza. Jego dokładność to 0,5 stopnia w przypadku temperatury i 2% w przypadku wilgotności. Tak jak w przypadku zegara tak i w tym na początku używałem DHT11 jednak nie sprawdził się on tak jak chciałem. Do mierzenia zewnętrznej temperatury wykorzystałem cyfrowy termometr DS18B20. Elementem odpowiedzialnym za utrzymanie temperatury są dwa ogniwa Peltiera o poborze prądu 6A przy napięciu 12V. Nie jest to wyjątkowo wydajny element i potrzeba do zasilenia go dość wydajnego źródła prądowego jednak spełnia swoje zadanie. Ogniwa z racji wytwarzanego ciepła zostały zamontowane wewnątrz komory wymiennika ciepła na płycie wykonanej z teflonu. Całość zasilana jest z zasilacza impulsowego do oświetlenia LED o wydajności 15A. W celu utrzymania stałej wilgotności wykorzystałem pompę wibracyjną ULKA: podpiętą do dyszy zamgławiającej. Jest to pompa wytwarzająca ciśnienie do 14 barów. W moim przypadku zmierzony przepływ wyniósł 100ml w minutę co według wykresu producenta odpowiada ciśnieniu 12 barów. Jest to wystarczające ciśnienie do wytworzenia mgły z wody która równomiernie rozchodzi się wewnątrz komory. Do oświetlenia komory wykorzystałem paski LED. Kolor biały to pasek o wysokim współczynniku CRI, który odpowiada za prawdziwe odzwierciedlenie barw. Jako układ sterujący zostało wykorzystany klon Arduino ProMini a algorytm sterowania napisany w środowisku Arduino IDE. Kod programu powstawał dość długo i w trakcie jego pisania doszło kilka pomysłów a inne zostały odrzucone. W wyniku takiego pisania tak się zamieszałem, że musiałem zacząć pisać program od nowa bazując na starym kodzie. Jestem świadomy, że kod nie jest idealny a nawet skuszę się na określenie go słowem „trywialny”, jednak działa wiec dla mnie jest spoko . /*********************************************** Sterowanie terrarium Komora klimatyczna Stefan v2.0 *************************************************/ #include "DHT.h" #include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Time.h> #include <DS3231.h> #include <OneWire.h> #include <DS18B20.h> const char* miesiac[] = { "12", "01", "02", "03", "04", "05", "Cz", "07", "08", "09", "10", "11"}; //miesiące byte zmierzch_znak[8] = //stworzenie grafik na wyswietlacz { B00111, B01110, B11100, B11100, B11100, B01110, B00111, B00000, }; byte swit_znak[8] = { B00000, B10101, B01110, B11111, B01110, B10101, B00000, B00000, }; byte kropla[8] = { B00100, B00100, B01110, B01110, B11111, B11111, B11111, B01110, }; byte termometr[8] = { B00100, B01010, B01010, B01010, B01110, B11111, B11111, B01110, }; byte stopienC[8] = { B01100, B10010, B10010, B01100, B00000, B00000, B00000, B00000, }; byte pusty[8] = { B00000, B00000, B00000, B11111, B00000, B00000, B00000, B00000, }; int i = 1; //licznik to przewijania ekranu int swit; //zmienna zamiany czasu switu na minuty int zmierzch; //zmienna zamiany czasu zmierzchu na minuty int noc; //zmienna zamiany czasu nocy na minuty int w_rano; //zmienna zamiany czasu wietrzenia rano na minuty int w_wiecz; //zmienna zamiany czasu wietzrenia wieczorem na minuty int czas_m; //zmienna zamiany godziny na minuty int czas_s; //zmienna zamiany godziny na sekundy ///////////////////////////////////////////////////////////////////PARAMETRY KOMORY KLIMATYCZNEJ////////////////////////////////////////////////////////////////////////////////////// float termostat = 30.0; //ustawienie temperatura float higrometr = 20.0; //ustawienie wilgotności float swit_h = 8.0; //godzina switu float swit_m = 30.0; //minuta switu float zmierzch_h = 19.0; //godzina zmierzchu float zmierzch_m = 1.0; //godzina zmierzchu float noc_h = 22.0; //godzina nocy float noc_m = 20.0; //minuta nocy int przew_rano_h = 8.0; //przewietrzanie rano int przew_rano_m = 30.0; //minuta wietrzenia rano int przew_wieczorem_h = 20.0; //przewietrzanie wieczorem int przew_wieczorem_m = 10.0; //minuta wietrzenia wieczorem int za_mokro = 80; //wymuszenie wentylacji gdy zbyt duza wilgotnosc ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// DS3231 clock; RTCDateTime dt; LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); //adresowanie wyswietlacza DHT dht; //deklaracja czujnika #define ONEWIRE_PIN 15 // komikacja one wire pin D15 byte address[8] = {0x28, 0xEE, 0x14, 0x6F, 0x1F, 0x16, 0x2, 0xA2}; // Adres czujnika OneWire onewire(ONEWIRE_PIN); DS18B20 sensors(&onewire); #define PWM_PIN 6 //PWM do peltiera na pin 6 void setup() /*setup tylko raz*/ { Wire.begin(); lcd.begin(20,4); //lcd.noBacklight(); // inicjalizacja ekranu, podswietlenia i lcd.backlight(); // znakow urzytkownika lcd.clear(); lcd.createChar(1,pusty); lcd.createChar(2,stopienC); lcd.createChar(4,zmierzch_znak); lcd.createChar(5,swit_znak); lcd.createChar(6,termometr); lcd.createChar(7,kropla); dht.setup(2); // data pin 2 sensors.begin(9); // start dallasa sensors.request(address); clock.begin(); //clock.setDateTime(__DATE__, __TIME__); //czas kompilacji jako czas zegara pinMode(13, OUTPUT); //pin do zraszacza pinMode(12, OUTPUT); //pin do zewnetrznego wentylatora pinMode(8, OUTPUT); //pin do schladzania pinMode(9, OUTPUT); //pin do podgrzewania pinMode(5, OUTPUT); //wolny pin 230V~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pinMode(7, OUTPUT); //pin do wentylatora peltiera i mieszania pinMode(PWM_PIN, OUTPUT); //pin PWM do peltiera analogWrite(PWM_PIN, 255); //PWM peltiera wypełnienie 0->0% 127->50% 255->100% pinMode(11, OUTPUT); //pin PWM do LED bialy pinMode(10, OUTPUT); //pin PWM do LED czerwony pinMode(15, INPUT); //DALLAS 18B20 } void loop() /*petla glowna*/ { oblicznia(); //obliczenia na potrzeby czasowek wilgotnosc_temperatura_WSKAZNIKI(); //wyswietlanie temp i wilg swit_zmierzch_czas(); //wyswietlanie czas, swit i zmierzch termostat_higrostat(); //uruchomienie termostatu i higrostatu sterowanie_swiatlem(); //uruchomienie sterowania oswietlenia przewietrzanie(); //przewietrzanie komory } void wilgotnosc_temperatura_WSKAZNIKI() { float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); float temperatureDALLAS = sensors.readTemperature(address); lcd.setCursor(0, 2); lcd.print("I:"); lcd.write(6); afisare2cifre(temperature); lcd.write(2); lcd.print("C "); lcd.write(7); afisare2cifre(humidity); lcd.print("% "); lcd.setCursor(14, 2); lcd.print("O:"); afisare2cifre(temperatureDALLAS); //CZUJNIK DALLAS analog 1 -> digital 15 lcd.setCursor(18, 2); lcd.write(2); lcd.print("C"); lcd.setCursor(0, 3); lcd.print("SET"); lcd.print(":"); lcd.write(6); afisare2cifre(termostat); lcd.write(2); lcd.print("C "); lcd.write(7); afisare2cifre(higrometr); lcd.print("%"); sensors.request(address); } void swit_zmierzch_czas() { dt = clock.getDateTime(); lcd.setCursor(0, 0); afisare2cifre(dt.hour); lcd.print(":"); afisare2cifre(dt.minute); lcd.print(":"); afisare2cifre(dt.second); lcd.setCursor(9,0); afisare2cifre(przew_rano_h); lcd.print(":"); afisare2cifre(przew_rano_m); lcd.setCursor(15,0); afisare2cifre(przew_wieczorem_h); lcd.print(":"); afisare2cifre(przew_wieczorem_m); lcd.setCursor(0,1); lcd.write(5); afisare2cifre(swit_h); lcd.print(":"); afisare2cifre(swit_m); lcd.setCursor(7,1); lcd.write(4); afisare2cifre(zmierzch_h); lcd.print(":"); afisare2cifre(zmierzch_m); lcd.setCursor(14,1); lcd.print("X"); afisare2cifre(noc_h); lcd.print(":"); afisare2cifre(noc_m); } /******************************TERMOSTAT + HIGROSTAT***************************/ void termostat_higrostat() { float humidity = dht.getHumidity(); float temperature = dht.getTemperature(); if(temperature > termostat + 2 | temperature < termostat - 2 ) { digitalWrite(7, HIGH); //wentylator pieltiera i mieszania lcd.setCursor(15,3); lcd.print("M"); } else { digitalWrite(7, LOW); //wylaczenie wentylatora peltiera i mieszania lcd.setCursor(15,3); lcd.write(1); } if(humidity < higrometr + 5) { digitalWrite(13, HIGH); //wlaczenie zraszacza lcd.setCursor(16,3); lcd.print("Z"); } else { digitalWrite(13, LOW); //wylaczenie zraszacza lcd.setCursor(16,3); lcd.write(1); } if(temperature > termostat + 2 ) //schladzanie terrarium { digitalWrite(8, HIGH); //zamiana polaryzaji i podanie napiecia na ogniwo 2 lcd.setCursor(17,3); lcd.print("C"); } else { digitalWrite(8, LOW); //polaryzacja startowa lcd.setCursor(17,3); lcd.write(1); } if(temperature < termostat - 2 | temperature > termostat + 2 ) //podgrzewanie terrarium { digitalWrite(9, HIGH); //podanie zasilania do ogniwo 1 } else { digitalWrite(9, LOW); //odciecie zasilania od ogniwa 1 } if(temperature < termostat - 2) { lcd.setCursor(18,3); lcd.print("G"); } else { lcd.setCursor(18,3); lcd.write(1); } } /****************************STEROWANIE OSWIETLENIEM*********************************/ void sterowanie_swiatlem() { if(czas_m >= swit && czas_m < zmierzch) { digitalWrite(11, HIGH); } else { digitalWrite(11, LOW); } if(czas_m >= zmierzch && czas_m < noc) { digitalWrite(10, HIGH); } else { digitalWrite(10, LOW); } } /***************************PRZEWIETRZANIE***********************************/ void przewietrzanie() { float humidity = dht.getHumidity(); float temperatureDALLAS = sensors.readTemperature(address); if(humidity > za_mokro) //gdy wlgotnosc za wysoka -> wietrzenie { digitalWrite(12, HIGH); //przewietrzanie na ON lcd.setCursor(19,3); lcd.print("W"); } else { if(temperatureDALLAS < 30) //warunek odnosnie 30* zewnetrznej { if(czas_m == w_rano || czas_m == w_wiecz) { digitalWrite(12, HIGH); lcd.setCursor(19,3); lcd.print("W"); } else { digitalWrite(12, LOW); lcd.setCursor(19,3); lcd.write(1); } } } sensors.request(address); } /****************************OBLICENIA*****************************/ void oblicznia() { dt = clock.getDateTime(); czas_m = dt.hour * 60 + dt.minute; //zamiana godziny na minuty czas_s = 100 * dt.hour + 10 * dt.minute + dt.second; //zamiana godziny na zmienna z sekundami swit = swit_h * 60 + swit_m; //zamiana godziny switu na minuty zmierzch = zmierzch_h * 60 + zmierzch_m; //zamiana godziny zmierzchu na minuty noc = noc_h * 60 + noc_m; //zamiana godziny nocy na minuty w_rano = przew_rano_h * 60 + przew_rano_m; //zmienna godziny przewietrzania rano na minuty w_wiecz = przew_wieczorem_h * 60 + przew_wieczorem_m; //zmienna godziny przewietrzania na minuty } /*****************************************************************/ void afisare2cifre(int numar) //Funkcja odpowiedzialna za wyswietlanie zer na pozycji poprzedzającej jesli cyfra jest mniejsza od 10 { if (numar >= 0 && numar < 10) { lcd.write('0'); } lcd.print(numar); } Schemat jak i płytkę PCB zaprojektowałem w EAGLE. Wykonana w domu metodą termotransferu. Kilkukrotnie planowałem przejść na metodę fotochemiczna jednak jakoś cena termotransferu bardziej mi odpowiada. W pierwszej wersji zastosowane były same tranzystory, jednak scenariusz przełączania polaryzacji ogniw (zamiana strony ciepłej i zimnej) nie był tak niezbędny jak na początku planowałem i kolejna wersja PCB została przerobiona na przekaźniki. Zostały jedynie tranzystory do sterowania PWM modułów Peltiera, sterujące wentylacją oraz sterujące oświetleniem. Dodatkowo dzięki przekaźnikom można podpiąć urządzenia o różnym napięciu co daje możliwość rozbudowy komory. Sterowanie urządzeniami zasilanymi napięciem AC230V odbywa się poprzez triaki. Jeden wykorzystany jest do sterowania pompka ciśnieniową a jeden pozostał w zapasie. Sterownik został wykonany w formie kanapki aby zminimalizować jego rozmiary. Do górnej płytki podpięte są układy odpowiedzialne za pomiar parametrów komory, czasu, wyświetlacz. Do dolnej natomiast wszystkie urządzenia, które są sterowane. Prezentowana komora powstała jaka praca inżynierska na kierunku mechatronika. Docelowym przeznaczeniem komory było nowe mieszkanie dla mojego gekona, jednak przerabianie na terrarium nie doszło jeszcze do końca. komora.rar
×
×
  • Utwórz nowe...