-
Liczba zawartości
877 -
Rejestracja
-
Ostatnia wizyta
Typ zawartości
Profile
Forum
Galeria
Kalendarz
Blogi
Articles
Member Map
Sklep
Zawartość dodana przez pinki
-
Może komuś się przyda. 3 kanały PWM, biały, niebieski i UV. Dodatkowo obsługa termometru radiatora ustawiana z poziomu menu, która po przekroczeniu temperatury granicznej uruchomi wentylatory radiatora. Kod pisany jest pod arduino mega więc są podane inne piny niż np w Uno. pin 52 - termometr pin 32 - sygnał na wentylatory wyświetlacz był poprzednio 8, 9, 4, 5, 6, 7 obecnie jest 26, 27, 22, 23, 24, 25 PWM Biały - 11 Niebieski - 3 UV - 18 sterownik_menu_temperatura_radiator.zip
-
Zastanawiał się ktoś nad dodaniem do tego kodu sterowania automatyczną dolewką ? Przyszło mi do głowy aby zamiast stosować czujnik pływakowy zastosować czujnik ultradzwiękowy. Są one dość precyzyjne dokładność pomiaru do 2mm. Można spokojnie ustawić warunki np. poziom min, poziom maksymalny. Takie rozwiązanie eliminuje czujniki mechaniczne i jest znacznie tańsze (około 8zł) niż sklepowe rozwiązania czujników pływakowych. Co sądzicie ?
-
W programie / szkic / importuj bibliotekę. Sprawdz czy na liście są nazwy wymaganych bibliotek, Jesli jakiejś brakuje to ściągnij ją z internetu i wgraj do katalogu "libraries" programu. Najprościej - przycisk "weryfikuj" jeśli czegoś będzie ci brakować to kompilator wywali ci błędy wraz z opisem.
-
pwm: 11-WHT, 3-RB, 5-Blue, 10-UV, 9-Red, 13-to swth on/off
-
Kolego pierwszy kod w tym wątku jest na 2 kanały. i standardowe piny, czyli wpinasz wyświetlacz w aduino tak jak pasuje i wszystko na ten temat. Zegar rtc napisałem ci powyżej jak podłączyć, . biblioteki to: #include <Wire.h> #include <LiquidCrystal.h> #include <EEPROM.h> Sprawdz czy masz je zainstalowane i załaduj kod. wyjścia pwm w tym kodzie to 11 i 3 Nikt nie wymaga abyś był programistą czy elektronikiem ale musisz mieć jakieś podstawy abyś ogarniał jak to wszystko połączyć. Ja jaśniej już tego wytłumaczyć nie potrafię.
-
RTC sda do A4 scl do A5 gdn do gdn vcc do vcc wyświetlacz ogólnie 9 kabelków od strony klawiatury 4 kabelki reset, 5v, gdn, A0 i z przeciwnej strony 6 kabelków lcd do dowoknych pinów cyfrowych które definiujesz w kodzie. Najlepiej znajdz w google w grafikach jak to podłączyć bo trochę trudno to opisać. wyjście na pwm drivera też definiujesz w kodzie. driver - najczęściej IN + - wejście zasilacza out +- wyjście do diód pwm sterowanie.
-
Ok do montujemy termometr CZUJNIK DS18B20 Jednostka Ilość Koszt Jakieś 4zł Rezystor 4,7k Rezystor dolutować w / g schematu. Można bezpośrednio do czujnika. Operacja jednorazowa zrobić odczytania adresu czujnika #include <OneWire.h> const byte ONEWIRE_PIN = 20; [size=3]// Numer pinu cyfrowego czujnika[/size] OneWire onewire(ONEWIRE_PIN); void setup() { while(!Serial); Serial.begin(9600); } void loop() { byte address[8]; onewire.reset_search(); while(onewire.search(address)) { if (address[0] != 0x28) continue; if (OneWire::crc8(address, 7) != address[7]) { Serial.println(F("Błędny adres, sprawdz polaczenia")); break; } for (byte i=0; i<8; i++) { Serial.print(F("0x")); Serial.print(address[i], HEX); if (i < 7) Serial.print(F(", ")); } Serial.println(); } while(1); } Odczytać w monitorze szeregowym Adres czujnika, powinno Być Coś Takiego 0x87, 0x6A, 0xA1, 0x87 , 0x6A, 0xA1, 0x87, 0x6A Teraz właściwy kod. Ze wzgledu że zapewne każdy ma inna ilość kanałów i inne zmiany nie zamieszczam całego KODU TYLKO wstawki Które trzeba sobie dopisać: #include <OneWire.h> #include <DallasTemperature.h> #define ONE_WIRE_BUS 52 // termometr numer pinu OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); DeviceAddress insideThermometer = { 0x28, 0xF4, 0x3A, 0x5E, 0x6, 0x0, 0x0, 0x95 }; //adres czujnika wstaw własny int wiatrakPin = 32; // pin wiatraka int temp_graniczna = 28.00; //trmperatura odpalenia wiatraka /// w setup ////// pinMode(wiatrakPin, OUTPUT); sensors.begin(); sensors.setResolution(insideThermometer, 52); //numer pinu termometru //////////////////////////////////////// w loop ///////////////////////// sensors.requestTemperatures(); lcd.setCursor(10,0); lcd.print(sensors.getTempCByIndex(0)); lcd.print((char)223); lcd.print("C"); if (sensors.getTempCByIndex(0) > temp_graniczna) {// temperatura odpalajaca wentylator digitalWrite(wiatrakPin, HIGH); lcd.setCursor(9,0); lcd.print("*"); } else { digitalWrite(wiatrakPin, LOW); } Aha, rezystor podciągający jest "mocno zalecany", bez niego czujnik będzie co jakiś czas wskazywał bzdety. Długość przewodu czujnika ma wpływ na rezystancję więc lepiej wlutować rezystor.
-
Haha już dawno myślałem aby to zaadoptować jako komputer sterujący całością a nie tylko lampą. zresztą idzie to w tym kierunku. Trochę wolnych pinów jeszcze mam więc czemu nie.
-
Ja mam dodany termometr z ustawioną temperaturą graniczną po przekroczeniu której odpalają się wentylatory radiatora. Niestety nie chciało mi się wyciągać do menu zapisu temperatury granicznej więc trzeba ją wpisać bezpośrednio w kodzie, na wyświetlaczu podawana jest aktualna temperatura oraz stan wiatraków On / Off. Jak ktoś jest zainteresowany to mogę udostępnić. Aha termometrów można mieć kilka bo każdy ma swój unikalny adres.
-
Przekaźnik jest o.k zasilacz też spokoNapięcie dostosuj do wentylatora, arduinoMa od 12 do 5v o ile pamiętam.przekaźnikiKilku kanałowe wyjdą taniej niż kilka pojedyńczych.
-
Oooooo to co by zostało dla programistów jak by tak było. (bezrobocie ?) Ja większość zmian wprowadzam sobie bezpośrednio w kodzie bez wyciągania tego do menu. Tak jest mi szybciej, wygodniej i mniej pisania. Co za różnica czy temperaturę startu wentylatora wpiszę do zmiennej czy będę ją wyciągał do menu. Zresztą każdy chce mieć coś innego w programie a to dodatkowy kanał a to przekaźnik lub czujnik. Ile pomysłów tyle modyfikacji.
-
Hmm najprościej dodać kolejny kanał, ustawić poczatek i koniec na 0 i masz problem z głowy. wystarczy zmienić w kodzie: #define NUM_CHANNELS 3 - ilosc kanalow pwm int chPIN[NUM_CHANNELS] = - ustawienie ilosci kanalow pwm {11 , 3, - dopisać kolejny kanał pwm char *CH_NAME[NUM_CHANNELS] = {"Bialy", "Niebieski", ""}; - dopisać nazwe kanału i masz dodatkowy kanał.
-
Najprościej ustaw czas rozjaśnianie + czas ściemnianie + czas trwania = czas między godziną startu a stopu. I wszystko będzie ci płynnie działać.
-
Jak będziesz miał wpiętego shildera do arduino to nic nie zmienisz i koniec ! Jedyne wyjście to kabelki, tylko tak uzyskasz dostęp do wolnych pinów PWM.
-
Na mega i shielda łaczysz kabelkami w/g załaczonego zdjęcia czyli w wyświetlaczu zostawiasz 9 kołków wolnych, i w kodzie zmieniasz tylko to ; było: LiquidCrystal lcd(8, 9, 4, 5, 6, 7); jest: LiquidCrystal lcd(23, 22, 27, 26, 25, 24); dzieki temu masz zajęte tylko zajęty kołek 10 (pwm) do sterowania jasnością.
-
Na arduino mega śmiga tak więc możesz spokojnie kupić.
-
A może kolega załączyć do kompletu bibliotekę DS18B20.h Znalezienie tego graniczy z cudem
-