Mark112 Zgłoś Napisano 6 Grudnia 2014 ds18b20 opisałem kilka postów wczesniej czytać, czytać, czytac Czytałem o tym, ale jestem za cienki ,aby dołączyć to jakoś do tego działajacego kodu sterownika LED i dostosować do własnych potrzeb. Też podpisuję się pod prośbą Komarka,czy możecie dopisać kod, aby 2-3 wyjścia działały jako on/off i sterowały światłem w refugium oraz załączały świetlówki o określonej godzinie.Byłoby to bardzo pomocne. Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 7 Grudnia 2014 Tak myślę - czy dodanie kondestatora pomiędzy in a przekaźnikiem nie pomoże w zniwelowaniu migania.... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 7 Grudnia 2014 Dobra, postaram się dopisać te 2 przekaźniki. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 7 Grudnia 2014 Super Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 7 Grudnia 2014 Chwilka przy browarku i jest kod na 2 przekaźniki, godziny do wpisania w kodzie. Jak najdzie mnie wena to wyciągnę to do menu, ale to już więcej zabawy. bezpośrednio pod bibliotekami czyli pod #include dodać konfigurację przekaxników czyli to: ////////// ustawienia przekaźników /////////////////////////// int przekaznik1 = 6; // numer pinu przekaznika nr. 1 int przekaznik2 = 7; // numer pinu przekaznika nr. 2 int p1_godzina_start = 22; //godzina startu przkaznika nr. 1 int p1_minuta_start = 21; // minuta startu przekaznika nr. 1 int p1_godzina_stop = 22; // godzina stopu przekaznika nr. 1 int p1_minuta_stop = 23; // minuta stopu przekaznika nr. 1 int p2_godzina_start = 22; //godzina startu przekaznika nr. 2 int p2_minuta_start = 57; //minuta startu przekaznika nr. 2 int p2_godzina_stop = 21; // godzina stopu przekaznika nr. 2 int p2_minuta_stop = 59; //minuta stopu przekaznika nr. 2 //////////////////////////////////////////////// następnie znajdz poniższy kod i zamień go na ten: void displayTime() { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year, ggg; getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (last_seconds == second) return; last_seconds = second; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); if (hour < 10) lcd.print("0"); lcd.print(hour, DEC); lcd.print(":"); if (minute < 10) lcd.print("0"); lcd.print(minute, DEC); lcd.print(":"); if (second < 10) lcd.print("0"); lcd.print(second, DEC); /////////////////////// PRZEKAŻNIKI 2 SZTUKI ///////////////////////////////////////////////// pinMode(przekaznik1, OUTPUT); if(hour == p1_godzina_start && minute == p1_minuta_start){ digitalWrite(przekaznik1, HIGH); } if(hour == p1_godzina_stop && minute == p1_minuta_stop){ digitalWrite(przekaznik1, LOW); } pinMode(przekaznik2, OUTPUT); if(hour == p2_godzina_start && minute == p2_minuta_start){ digitalWrite(przekaznik2, HIGH); } if(hour == p2_godzina_stop && minute == p2_minuta_stop){ digitalWrite(przekaznik2, LOW); } ////////////////////// koniec /////////////////////////////////////////////// delay(100); } I to już wszystko Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 7 Grudnia 2014 Chwilka przy browarku i jest kod na 2 przekaźniki, godziny do wpisania w kodzie. Jak najdzie mnie wena to wyciągnę to do menu, ale to już więcej zabawy. bezpośrednio pod bibliotekami czyli pod #include dodać konfigurację przekaxników czyli to: ////////// ustawienia przekaźników /////////////////////////// int przekaznik1 = 6; // numer pinu przekaznika nr. 1 int przekaznik2 = 7; // numer pinu przekaznika nr. 2 int p1_godzina_start = 22; //godzina startu przkaznika nr. 1 int p1_minuta_start = 21; // minuta startu przekaznika nr. 1 int p1_godzina_stop = 22; // godzina stopu przekaznika nr. 1 int p1_minuta_stop = 23; // minuta stopu przekaznika nr. 1 int p2_godzina_start = 22; //godzina startu przekaznika nr. 2 int p2_minuta_start = 57; //minuta startu przekaznika nr. 2 int p2_godzina_stop = 21; // godzina stopu przekaznika nr. 2 int p2_minuta_stop = 59; //minuta stopu przekaznika nr. 2 //////////////////////////////////////////////// następnie znajdz poniższy kod i zamień go na ten: void displayTime() { byte second, minute, hour, dayOfWeek, dayOfMonth, month, year, ggg; getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); if (last_seconds == second) return; last_seconds = second; lcd.setCursor(0, 0); lcd.print(" "); lcd.setCursor(0, 0); if (hour < 10) lcd.print("0"); lcd.print(hour, DEC); lcd.print(":"); if (minute < 10) lcd.print("0"); lcd.print(minute, DEC); lcd.print(":"); if (second < 10) lcd.print("0"); lcd.print(second, DEC); /////////////////////// PRZEKAŻNIKI 2 SZTUKI ///////////////////////////////////////////////// pinMode(przekaznik1, OUTPUT); if(hour == p1_godzina_start && minute == p1_minuta_start){ digitalWrite(przekaznik1, HIGH); } if(hour == p1_godzina_stop && minute == p1_minuta_stop){ digitalWrite(przekaznik1, LOW); } pinMode(przekaznik2, OUTPUT); if(hour == p2_godzina_start && minute == p2_minuta_start){ digitalWrite(przekaznik2, HIGH); } if(hour == p2_godzina_stop && minute == p2_minuta_stop){ digitalWrite(przekaznik2, LOW); } ////////////////////// koniec /////////////////////////////////////////////// delay(100); } I to już wszystko Pinki jesteś wielki,że to robisz dla nas bezinteresownie,ale dla mnie to i tak czarna magia. Mógłbyś proszę to dopisać do tego pierwszego kodu Nano fafy na 2 kanały,tak aby stanowiło całość ? Bardzo proszę. Pozdrawiam Mariusz Jeśli tak to byłoby super Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 7 Grudnia 2014 masz gotowca 2 kanały i 2 przekazniki na samym poczatku kodu musisz wpisać godziny startu i stopu przekazników. _2kana_y_2_przekazniki.zip Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 7 Grudnia 2014 (edytowane) masz gotowca 2 kanały i 2 przekazniki na samym poczatku kodu musisz wpisać godziny startu i stopu przekazników. Pinki szacun :czapki z głów:) dla Ciebie to naprawdę działa . Jak sam próbowałem to dopisać to kompilator wywalał mi błędy. Teraz jest ok. :clapping Edytowane 7 Grudnia 2014 przez Mark112 (wyświetl historię edycji) Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 8 Grudnia 2014 (edytowane) Super. Edytowane 14 Grudnia 2014 przez Komarek (wyświetl historię edycji) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 8 Grudnia 2014 (edytowane) 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. Pinki Dobrodzieju czy mógłbym Cię jeszcze prosić,abyś w wolnej chwili do tego kodu, który wczoraj zrobiłeś na 2 kanały PWM i 2 przekaźniki on/off dołożył jeszcze obsługę termometru z Twojego postu powyżej. Ja nie potrafię tego samodzielnie zrobić,a dzięki Tobie tacy jak ja będą mieli całkiem funkcjonalne urządzonko do sterowania pracą akwarium. Prosiłbym jeszcze o krótką instrukcję jak podłączyć termometr do arduino z Twojego projektu. Czy jedno wyjście PWM z arduino mogę połączyć do 2 wejść PWM driverów LED tak aby nimi sterować, bo np.niebieskie diody mam w 2 nitkach po 6 szt.na 2 driverach. Edytowane 8 Grudnia 2014 przez Mark112 (wyświetl historię edycji) Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 8 Grudnia 2014 Jedno wyjście PWM łączysz z 2 driverami, wystarczy mały mostek od drivera do drivera. Co do termometru to oczywiście kod mogę dodać tylko jest pytanie co ty będziesz nim mierzył ? Temperaturę wody (informacyjnie), czy radiatora ? Bo jeśli radiatora to to dojdzie do tego jeszcze sterowanie wentylatorami radiatora. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 8 Grudnia 2014 Pinki,a mógłbyś wkleić kod do przekazników do softu na 5 PWM od Nanorafy? Coś źle wklejam i nie działa.... Proszę ładnie... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 8 Grudnia 2014 (edytowane) Jedno wyjście PWM łączysz z 2 driverami, wystarczy mały mostek od drivera do drivera. Co do termometru to oczywiście kod mogę dodać tylko jest pytanie co ty będziesz nim mierzył ? Temperaturę wody (informacyjnie), czy radiatora ? Bo jeśli radiatora to to dojdzie do tego jeszcze sterowanie wentylatorami radiatora. Myślałem o mierzeniu temperatury wody i tak jak w Twoim przypadku sterowaniu wentylatorami po przekroczeniu temperatury wody latem.Czyli zmianie w Twoim projekcie, o ile dobrze myślę ulegnie tylko temp.przy której włączy się wentylator i przy której wyłączy. Edytowane 8 Grudnia 2014 przez Mark112 (wyświetl historię edycji) Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 8 Grudnia 2014 dla komarka Aha ustawione jest to tak że o określonej godzinie (startu) na pinie przekaźnika pojawi się stan wysoki. więc sprawdź jak masz podpięty przekaźnik lub zmień w kodzie HIGH NA LOW. _5pwm_2przekazniki.zip Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 8 Grudnia 2014 Sprawdze,ale te przekazniki nie mają ustawienia.... Mam te http://www.allegro.pl/ShowItem2.php?item=4862928951 Ale nawet jeśli aktywnie je stan niski to no problem. Zrobię start na stop i tyle. Dzięki serdeczne. Mam jeszcze jeden problem. Otóż mam 2 arduino. Jedno ( obecnie w lampie) niby jest sprawne, ale nie komunikuje się z kompem. Drugie działa po podłączeniu do usb, jest komunikacja, ale u palił em cuś przy gnieździe zasilenia. Działa więc tylko pod USB. Co poszło i co wymienić? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 8 Grudnia 2014 Zapewne padła przetwornica, ale ja bardziej programista niż elektronik jestem, lepiej napisz na elektrodzie tam ci dokładnie powiedzą co i jak. Ja bym na szybko dolutował się z zasilaczem 5v do usb. Pierwszy i ostatni styk to gnd i vcc ale zerknij jeszcze w schemat. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 8 Grudnia 2014 (edytowane) Spoko A co do softu - cztam piny przekaźników 15 i 16, piny lcd 26,27..... To na Uno jest? Żeby zmienić na sterowanie st.niskim wystarczy navkońcu zmienić Low z High ? Edytowane 8 Grudnia 2014 przez Komarek (wyświetl historię edycji) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 8 Grudnia 2014 Teraz termometr Tu sprawa jest bardziej zagmatwana bo musisz najpierw odczytać adres swojego termometru który ma swój unikatowy adres. Podłączenie to gnd, wcc, oraz dane które idą do pinu cyfrowego, w załączonym kodzie jest to pin 20 możesz zmienić w/g własnego uznania. Po załadowaniu kodu (z załącznika) narzędzia / monitor portu szeregowego, w oknie monitora zobaczysz adres czujnika Skopiować i zapisać ten adres. Teraz otwierasz kod sterownika z dołączonym oprogramowaniem termometru (załącznik) i w kodzie w lini: #define ONE_WIRE_BUS 52 // numer pinu pod który podpięty jest termometr następnie w lini DeviceAddress insideThermometer = { 0x28, 0xF4, 0x3A, 0x5E, 0x6, 0x0, 0x0, 0x95 }; // wpisujesz wcześniej skopiowany adres swojego termometru. następnie: int wiatrakPin = 32; // pin pod który podpięty jest przekaźnik do wentylatorów następny: int temp_graniczna = 28.00; //trmperatura po przekroczeniu której zostanie załączony przekaźnik wentylatorów. Teraz ładujesz cały kod i wszystko. Komarek bo pisze na mega stąd te dziwne numery pinów, ale spoko na uno też będzie działać jak zmienisz piny oczywiście _2kanaly_2_przekazniki_termometr.zip teromometr_odczyt_adresu.zip Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 8 Grudnia 2014 Ok. Ale licząc piny na Uno ich brak nie. Spróbuje dopisać 3 Ci kanał do Twojej wersji 2+2 Czy piny do przekaźnika dopisuje się tylko na początku? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 8 Grudnia 2014 Ok. Ale licząc piny na Uno ich brak nie. Spróbuje dopisać 3 Ci kanał do Twojej wersji 2+2 Czy piny do przekaźnika dopisuje się tylko na początku? Deklaracja pinów i godzin na początku kodu, a w srodku jeszcze musisz dopisać warunek a właściwie 2 if na włączenie i wyłączenie. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 9 Grudnia 2014 Pinki jeszcze jedno pytanie, czy do czujnika temperatury DS18B20 nie trzeba dać rezystora, gdziś czytałem o jakimś oporniku 4,7k Ohma podłączonym do czujnika. Czy wystarczy tyko takie wpięcia jak opisałeś w poście powyżej. Pozdrawiam i dziekuję . Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 9 Grudnia 2014 Pinki jeszcze jedno pytanie, czy do czujnika temperatury DS18B20 nie trzeba dać rezystora, gdziś czytałem o jakimś oporniku 4,7k Ohma podłączonym do czujnika. Czy wystarczy tyko takie wpięcia jak opisałeś w poście powyżej. Pozdrawiam i dziekuję . tak dodaj rezystor. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Komarek Zgłoś Napisano 9 Grudnia 2014 Zrobiłem wczoraj mix - 3 kanały i 2 przekaźniki. Dzięki Pinki. Niestety kupa - Arduino w lampie nie komunikuje się z klub kompem. Drugie nie działa ns gnieździe zasilania. Trza będzie programować procesor w jednym i przekładać do tego z lampy..... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
Mark112 Zgłoś Napisano 10 Grudnia 2014 Teraz termometr Tu sprawa jest bardziej zagmatwana bo musisz najpierw odczytać adres swojego termometru który ma swój unikatowy adres. Podłączenie to gnd, wcc, oraz dane które idą do pinu cyfrowego, w załączonym kodzie jest to pin 20 możesz zmienić w/g własnego uznania. Po załadowaniu kodu (z załącznika) narzędzia / monitor portu szeregowego, w oknie monitora zobaczysz adres czujnika Skopiować i zapisać ten adres. Mam problem z odczytem adresu czujnika.Program do odczytu zaladował sie prawidłowo do arduino ,ale w monitorze portu szeregowego nic się nie pokazuje.Czujnik mam w metalowej rurce z wyprowadzonymi przewodami przewodami : czerwony wpięty do +5v , czarny do masy zółty (data) do arduino do pinu nr 2 . W kodzie zmieniłem numer pinu z 20 na 2 ,tak jak mam to wpięte. Dałem też opornik 4,7 k ohma podłączony między żółty a +5V. Niestety adres się nie pokazuje w monitorze. Czy czujnik może być uszkodzony czy robię coś nie tak ? Cytuj Mark 112 Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach
pinki Zgłoś Napisano 10 Grudnia 2014 Jak czujnik jest w rurce to montujesz go bez opornika, opornik dotyczy tylko samego czujnika !!! A ty masz gotowy zestaw. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach