Skocz do zawartości

Zbyszko125

Użytkownicy
  • Zawartość

    16
  • Rejestracja

  • Ostatnio

Reputacja

2 Neutralna

O Zbyszko125

  • Ranga
    2/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. He klona Uno kupi za ok 15-18zeta, Nano za ok 11-12 zł ProMini za 8. Ja za Promini w promocji za 2 szt dałem 13.5zl więc pobawić się i spalić nie szkoda(właśnie jedno mi padło).Wrzuciłem bootloadera na ten wolny 328p, wyjąłem z Uno mikroprocesor włożyłem goły, ASPisp pod USB do kompa i wlazł za pierwszym razem,aż się zdziwiłem,że tak sprytnie mi poszło. Właśnie zamówiłem kilka kwarców za 2 zł z CHRL .Z Promini tego uszkodzonego chciałem wylutować ale to smd.
  2. Wlasnie tez o tym myslalem, mam nawet taka gołą Atmege 328, ponoc mozna wyjac z płytki Uno i wlozyc inny procek i po prostu go zastąpic. Wgrac wszystko na pocesor wlozony w płytke wyjac i przeniesc juz na gotowe pcb, wraz z calym osprzetem. Musze zrobic test, tylko nie mam na chwile obecną zadnego kwarcu a tam chyba potrzebny 12000 mhz. Kolego Zero pomorzesz.? Jak to Gierek krzyczał - pomorzecie!!! Pomorzemy ? Troche pogrzebalem w necie i ta funkcja delay moze wykrzaczać cały sketch, tylko czemu na uno dziala a na promini nie chce, w uno jest pełno kondensatorow na pro ich tyle nie ma i to tez moze byc powodem sypania sie sketchu na promini. Co do kosztow to promini kupie praktycznie za te same pieniadze co golą atmege.
  3. Sorki ale dla mnie zagłębianie sie az w takie rzeczy raczej nie bedzie do niczego potrzebne. Mino ciągłego braku czasu cos tam powoli dzialam ze swoim projektem, LCD udało mi sie uruchomic na promini, przekaźniki wylądowały w szufladzie na czas testow poszly diody, docelowo triaki i optotriaki. Próba juz byla na Uno śmiga. Jednak na promini dalej jest cos nie tak. Ponoc płytki UNO NANO i Promini z Atmegą 328p sa prawie jednakowe, to na chwile obecna nie mam pojęcia czemu na promini nie chce działać. Jeszcze spróbujena Nano, czekam na przesyłke.nNie wiem jak ugryżć te kwestie z milis, dziala zupelnie na innej zasadzie jak delay, a czas zegara milis te ok 50 dni jest bez znaczenia bo i tak maszyna po kazdym uzyciu bedzie wyłączana. Nie wiem czy dobrze mysle ale LCD jest podpiety w uno do SDA i SCL w promini pod A4 i A5 czy to może miec wpływ na dzialanie sketcha.
  4. Witam po dłuższej przerwie. W końcu udało mi się dopracować cały projekt i powoli zaczynam go finalizować, szkice obudowy,mocowanie krańcówek. Jednak ciągły brak czasu nie pozwala na to. Dziś udało mi sie poświęcić trochę czasu i przenieść na Pro Mini, a tu niespodzianka, wszystko się zawaliło, kod głupieje tzn styczniki i przyciski, LCD nic nie wyświetla. LCD mam podłączony przez I2C na Pro Mini pin A5 to SCL A4 to SDA i lipa. Na Uno chodzi elegancko, a na Pro Mini nie.Nie mam pojęcia co jest tego powodem,przekopałem pół netu i nic nie znalazłem. Zasilanie przekaźników zrobiłem nie z płytki tylko z zasilacza, co prawda z tego samego źródła zasilam płytkę ale to nie ma chyba znaczenia. A już miałem się zabierać za PCB i resztę a tu ......
  5. Zawinołem żonie laptopa i wgrałem sketch kolegi Zerohttp://youtube.com/watch?v=4R8I6SsMQcg po małej modyfikacji kodu działa tak jak oczekiwałem. #define kr1 0 #define kr2 13 #define przyciskL 8 #define startStop 7 #define przyciskP 6 #define przekaznik1 2 //przekaźnik1 #define przekaznik2 1 //przekaźnik2 #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,16,2); boolean kierunek = false; //false {LEWO}; true {PRAWO} boolean tryb = true; //false {tryb AUTOMAT}; true {tryb RECZNY} void setup() { lcd.init(); pinMode(przekaznik1, OUTPUT); pinMode(przekaznik2, OUTPUT); digitalWrite(przekaznik1, HIGH); //wyłączenie "przekaźników" - digitalWrite(przekaznik2, HIGH); pinMode(kr1, INPUT_PULLUP); // przyciski przez rezystor pinMode(kr2, INPUT_PULLUP); // podciągający //wbudowany w płytkę arduino pinMode(przyciskL, INPUT_PULLUP); pinMode(startStop, INPUT_PULLUP); pinMode(przyciskP, INPUT_PULLUP); } void wylacznikKrancowyP() { if (digitalRead(kr1) == LOW) { delay(100); //debounce if (digitalRead(kr1) == LOW) { for (int i = 1; i < 10; i++) { //sygnalizacja zadziałania wyłącznika krańcowego digitalWrite(przekaznik2, HIGH); //w rzeczywistym programie byłoby to bez sensu digitalWrite(przekaznik2, LOW); } kierunek = false; digitalWrite(przekaznik2, HIGH); //WYLACZ PRZEKAZNIK 2 delay(500); digitalWrite(przekaznik1, LOW); //włącz przekaźnik 1 } } } void wylacznikKrancowyL() { if (digitalRead(kr2) == LOW) { delay(100); //debounce if (digitalRead(kr2) == LOW) { for (int i = 1; i < 10; i++) { //sygnalizacja zadziałania wyłącznika krańcowego digitalWrite(przekaznik1, HIGH); //w rzeczywistym programie byłoby to bez sensu digitalWrite(przekaznik1, LOW); } kierunek = true; digitalWrite(przekaznik1, HIGH); //wyłącz przekaźnik 1 delay(500); digitalWrite(przekaznik2, LOW); //WLACZ PRZEKAZNIK 2 } } } void trybAutomatycznyLCD() { lcd.setCursor(0, 0); lcd.print(" AUTOMAT "); } void kierunekLewoLCD() { lcd.setCursor(0, 1); lcd.print("[LEWO ]"); } void trybRecznyLCD() { lcd.setCursor(0, 0); lcd.print(" RECZNY "); } void kierunekPrawoLCD() { lcd.setCursor(0, 1); lcd.print("[ PRAWO]"); } void przekaznikiStopLCD() { lcd.setCursor(0, 1); lcd.print("[ ]"); } void wlaczPrzekaznik1() { digitalWrite(przekaznik1, LOW); digitalWrite(przekaznik2, HIGH); } void wlaczPrzekaznik2() { digitalWrite(przekaznik1, HIGH); digitalWrite(przekaznik2, LOW); } void przekaznikiStop() { digitalWrite(przekaznik1, HIGH); digitalWrite(przekaznik2, HIGH); } void loop() { if (digitalRead(startStop) == LOW) { delay(100); if (digitalRead(startStop) == LOW) { if (tryb == true) { //jeżeli przed wcisnieciem, był tryb ręczny tryb = false; //przełącz na automat kierunek = false; //w automacie ruszaj w lewo trybAutomatycznyLCD(); } else { tryb = true; trybRecznyLCD(); } } delay(200); } wylacznikKrancowyL(); //sprawdzenie, czy wylacznik krancowy nie jest wlaczony wylacznikKrancowyP(); if (tryb == false && kierunek == false) { trybAutomatycznyLCD(); kierunekLewoLCD(); wlaczPrzekaznik1(); } else if (tryb == false && kierunek == true) { trybAutomatycznyLCD(); kierunekPrawoLCD(); wlaczPrzekaznik2(); } else if (tryb == true) { if (digitalRead(przyciskL) == LOW && digitalRead(przyciskP) == HIGH) { trybRecznyLCD(); kierunekLewoLCD(); wlaczPrzekaznik1(); } else if (digitalRead(przyciskL) == HIGH && digitalRead(przyciskP) == LOW) { trybRecznyLCD(); kierunekPrawoLCD(); wlaczPrzekaznik2(); } else { trybRecznyLCD(); przekaznikiStopLCD(); przekaznikiStop(); } } } Jeszcze małe poprawki i kolejne testy. Przyciski lewo /prawo zastąpie włącznikiem ON/OFF/ON monostabilnym, start chwilowym.
  6. Witam. Sory ale trochę mniej mam czasu na prace przy projekcie ("młyn" w pracy) Na dokładkę wysypal mi się system na komputerze, na którym to robię. ( żona nie pozwala mi używać do tego jej komputera). Kolega Zero chyba wstrzelił się w dziesiątkę z tym projektem,kolega es2 również sądząc po analizie kodu, niestety na chwilę obecną nie mam możliwości testu kodów na swoim projekcie z powodu j/w. W trybie ręcznym klawisze lewo prawo po naciśnięciu ich przesuwają korpus maszyny w odpowiednią stronę. I tu mi się nasuwa kolejny znak zapytania co gdy zostaną wciśnięte obydwa jednocześnie? Zadziałanie obydwóch przekaźników jednocześnie zrobi zwarcie i będzie "bum" Jeszcze raz dzięki za zainteresowanie, jak tylko uporam się z kompem po testuje i tez wrzucę filmik z działania układu.Pozdrawiam
  7. Dzięki za zainteresowanie. Temat wygląda tak: Arduino UNO 3 (docelowo PRO MINI) klon ma sterować modułem 2 przekaźników, do tego 3 przyciski start-stop, prawo oraz lewo,2 wyłączniki krańcowe + wyświetlacz LCD 16x2 z I2C. Przyciskiem start-stop włączam przekaźnik nr1 który załącza stycznik silnika motoreduktora i korpus maszyny przesuwa się w lewo, na wyświetlaczu mam napis PRACA AUTOMAT i strzałki w lewo, po dojechaniu korpusu maszyny do krańcówki nr1 korpus maszyny zatrzymuje się czeka 1 sekundę i załącza się przekaźnik nr 2 i korpus maszyny przesuwa się w prawo, na wyświetlaczu strzałki w prawo i PRACA AUTOMAT. po dojechaniu do krańcówki nr 2 korpus zatrzymuje się czeka 1 sekundę i cykl się powtarza. Przycisk startstop daje możliwość zatrzymania całości w każdej chwili,na wyświetlaczu napis stop. Gdy układ jest w trybie stop przyciskami prawo /lewo możliwe załączenie przesuwu korpusu w prawo /lewo zależnie od tego który przycisk naciśnięty, i tu trzeba trzymać wciśnięty przycisk, puszczenie go zatrzymuje przesuw. Wyśietlacz pokazuje strzałki prawo lub lewo oraz tryb ręczny. Co do opisania na przykładzie diod, raczej nie da się przenieść krańcówki na przykład diody. Krańcówka to taki przycisk z trzema stykami, z tym że normalny przycisk ma generalnie 2 styki (COM,NO) po naciśnięciu NO robi się NC, krańcówka zaś ma styki COM,NO,NC i tu zależy jak są podłączone i np pod COM i NO ( nie przewodzi prądu) naciśnięcie krańcówki przełącza w tryb NC( przewodzi prąd) jeśli podłączymy COM i NC ( przewodzi prąd) po naciśnięciu przęłącza w tryb NO ( nie przewodzi prądu.) krańcówki są zazwyczaj monostabilne i do zadziałania trzeba uzyć jakiejś siły gdy żadna siła nie działa wracają do swojej pozycji. Styczniki zaś służą zazwyczaj do sterownia jakimś dużym odbiornikiem np silnikiem elektrycznym, niewielkim prądem.np do zadziałania stycznika wystarczy Arduino i 5V, i można załączyć jakiś obwód o dużo wyższym napięciu np 230V
  8. A pewnie, zawsze wychodzę z tego założenia za najlepszą nauka to samemu rozgryżć temat, ale czasem mała pomoc by się orzydala i nie nie mówię tu o gotowcu bo to niczemu nie służy. Zostało mi jeszcze rozpracowanie przycisków startstop,prawo i lewo.Jak narazie nie wiem jakiej funkcji użyć : ani if ani while mi nie wychodzi, kurs forbota przerobiłem, ale coś jeszcze mam nie tak.Bede dalej walczył. Są fora gdzie zapytanie kończy się "zjechaniem" pytającego, odp typu nie wiesz to się nie zabieraj. Pozdro
  9. W końcu udało mi się uzyskać zamierzony efekt z funkcją delay. Dołączyłem także LCD, wyświetla mi w pierwszej linijce strzałki w lewo lub prawo zależnie od stycznika który aktualnie jest załączony oraz napis "tryb automat"w drugiej linijce. Liczyłem na pomoc forumowiczów, jednak widać że nowicjusze są traktowani po macoszemu. Choć "ślęczenie" po kilka godzin przy "zabawie" z kodem przynosi efekt w postaci nauki na zasadzie prób i błędów. Pozdrawiam
  10. Witam. coś jednak robię nie tak, z funkcją millis udało się tylko zrobić coś takiego, że po wprowadzeniu czasu 1 sekundy wyszło mi że ta jedna sekunda została dołożona do krańcówki czyli po wciśnięciu krańcówki przez 1 s przełączało mi styczniki, a to jest niestety nie wskazane w układzie bo taka czynność zniszczy mi krańcówki. Nie mam bladego pojęcia co i gdzie wstawić w kodzie aby otrzymać zamierzony efekt, czyli po wciśnięciu krańcówki rozłącza stycznik czeka 1 sekundę i załącza drugi stycznik. Z tą biblioteką Timer nic nie uzyskałem. Z kursu o millis praktycznie znam go na pamieć przerobiłem wszystko i dalej nie do końca to rozumiem. Czy ktoś może podrzucić coś naprowadzającego abym załapał o co chodzi?
  11. Dzięki za podpowiedź. Kilka testów i krótka analiza kodu, choć jeszcze nie do końca rozumiem pewnych zależności, udało mi się zrobić że wciśnięcie krańcówki 1 włącza stycznik 1, naciśnięcie krańcówki 2 wyłącza stycznik 1 a załącza stycznik 2, ponowne wcisnięcie krańcówki 1 wyłącza stycznik 2 a załącza 1, generalnie tego oczekuje od układu. Kolejnym wątkiem jest dołożenie 1 sekundy do przęłaczania styczników aby nie prząłączały się jeden po drugim tylko po 1 sekundzie. delay mi tu chyba nie pomoże bo "chyba" ta funkcja powoduje zawieszanie kodu na czas zawarty w tej funkcji( proszę mnie poprawić jeśli się mylę) i jeszcze jedna kwestia dołożenie przycisków 1 przycisk-start/stop 2 przycisk- przesuń w prawo 3 przycisk- przesuń w lewo. A tak wygląda mój sketch: Dodałem te 3 przyciski Ustawienia czasu niestety na chwilę obecną nie wiem jak dodać jaką funkcją i w którym miejscu. Z tymi przyciskami także na razie nie wiem jak podejść.
  12. Dzieki za odzew. Jak widać dopiero ogarniam temat i długa droga przede mną. Czyli nawiasy {} mają wpływ a raczej ich położenie na wykonanie kodu, jeszcze nie bardzo rozumiem na jakiej zasadzie one działają,czy jestem na dobrej drodze czy raczej dalej w czarnej dziurze? Analiza kodu i próby na samym kodzie i test na "żywca" z Arduino i podzespołami naprowadzi mnie gdzie mam błąd, jeszcze raz dzieki
  13. Witam. Po kilku godzinach walki jestem w ciemnej dziurze. Po złożeniu prostego układu , moduł 2 przekaźników oraz dwoma włącznikami krańcowymi, i próbach napisania sketcha doszedłem do : krańcówką 1 włączę i załącza stycznik 1 , drugą krańcówkę włączę nic się nie dzieje, ale przytrzymanie drugiej krańcówki i naciśnięcie pierwszej wyłącza stycznik 1. Kilkakrotne przestudiowanie kursu podstaw Arduino, niestety nie udało mi się rozgryźć tego. Nie wiem co wpisać do kodu aby 2 krańcówka wyłączała przekaźnik który został wcześniej załączony przez krańcówkę 1.
  14. Witam ponownie. A pewnie właśnie udało mi się zdobyć płytkę Arduino UNO jakiś klon( kolegi syn się w to bawi-od niego dostałem). Nabyłem także kilka różnych innych rzeczy jak moduł 2 przekaźników który jak się okazuje przyda się bardzo do mojego tematu ze sterowaniem motoreduktora. Ciekawe jest to że zbudowanie tego nawet na Arduino np Pro mini i włąsnie w/w module obetnie mi koszty do kilkunastu zł a nie jak przymierzałem na stycznikach do ponad 400zł. Pod Arduino mogę tez podłączyć klawiaturę i LCD ( z uszkodzonego sterownika kotła mam sprawny LCD 16x2) Złożenie tego w całość da mi bardzo funkcjonalny sterownik do maszyny, jednak napisanie sketcha trochę mi zajmie, zanim ogarne to i owo.Przepraszam że trochę nie na temat. Wracając do tematu. Posiadam maszynę, która ma za zadanie przesuwać w prawo i lewo pewien element tej maszyny. Przesuwanie to ma mieć możliwość regulacji bardziej w lewo lub mniej w lewo identycznie w prawo ( mocniej ,mniej) to zadanie spełniły by wyłączniki krańcowe zamontowane na szynie z recznym ustawieniem ich w potrzebnych pozycjach. Sterowanie w prawo /lewo na zasadzie zmiany obrotów silnika motoreduktora ( lewe,prawe obroty) I tu wkracza Arduino. Przyciskiem start/stop na klawiaturze uruchamiam silnik motoreduktora- np w lewo, element maszyny przesuwa się w lewo i "uderza w wył. krańcowy po lewej stronie, czeka ok 1-2 sek i przesuwa się w prawo i dojeżdża do wył krańcowego po prawej stronie czeka 1-2 sek i cały cykl się powtarza.Po kilku /kilkunastu cyklach przyciskiem start/stop zatrzymuje pracę silnika motoreduktora. Klawiatura posiada np jeszcze 2 przyciski lewo(<) prawo(>) które pozwalają na ręczne sterowanie obrotami silnika motoreduktora. Z tego co wiem dla Arduino jest to dość prosty układ, jednak sam sketch na chwilę obecna dla mnie jest "czarną magią). To tyle w temacie.
  15. Witam. Mam na imię Zbigniew, mam 49 lat. Poszukując info na temat pewnej elektrycznej kwestii przez przypadek wpadłem na kurs Forbot, tak mnie to wciągnęło, że obecnie jestem w posiadaniu masy różnych drobiazgów( rezystory,tranzystory inne) i praktycznie codziennie poświęcam trochę czasu na naukę i próby.Pod koniec 70 lat trochę próbowałem swoich sił a będąc w posiadaniu lutownicy wszystko co się trafiło( stare radio itp) było rozebrane ,rozlutowane. Brak dostępu do książek itp materiałów ( o internecie wtedy - spowodował że się zniechęciłem. Z elektryką sobie radzę i to nieźle, ale już TO trochę jest za trudne.Nie poddaje się. Oj rozpisałem się trochę. Pozdrawiam użytkowników oraz samego autora.
×
×
  • Utwórz nowe...