Skocz do zawartości

Philip

Użytkownicy
  • Zawartość

    101
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    3

Philip wygrał w ostatnim dniu 4 marca 2018

Philip ma najbardziej lubianą zawartość!

Reputacja

28 Bardzo dobra

O Philip

  • Ranga
    5/10

Informacje

  • Płeć
    Mężczyzna
  • Zainteresowania
    elektryka,elektronika
  • Zawód
    elektryk

Ostatnio na profilu byli

602 wyświetleń profilu
  1. Z pełnym etatem może być ciężko. Wielu pracodawców oczekuje kilkuletniego doświadczenia i zawodu. Mówię z czym się spotkałem sam składając CV jakiś czas temu. Liczą się też dodatkowe kursy programowania, grafiki, na obsługę urządzeń, sep. Ogólnie im masz więcej do pochwalenia się tym lepiej. Byleby to jak najlepiej ująć to w CV i nie napisać za dużo. Tak jak napisał kolega wyżej. Możesz pochwalić się co robiłeś. Pokazać pracodawcy na rozmowie. Będzie to na pewno na plus. Warto też pamiętać o wpisie CV o przetwarzaniu danych osobowych wielu o tym zapomina. Pozdrawiam
  2. To jest jakiś silnik do górnictwa, bo na takie napięcia znamionowe nie wszędzie się je stosuje?
  3. Kurs trwa nawet do trzech dni pod rząd i następnie egzamin.
  4. Uprawnienia SEP są upoważnieniem do wykonywania konkretnych czynności np. pracy przy obiektach pod napięciem, liniach nn, SN. One dają jakąś wiedzę z zakresu bezpieczeństwa, BHP, pierwszej pomocy, w minimalnym stopniu z elektryki, ale nie można ich brać jak kurs na technika i nie czynią Cię elektrykiem czy elektronikiem. Jeśli chciałbyś pracować w zawodzie, to one są koniecznością. Bez nich w " " nie można włożyć wtyczki do gniazda 230V
  5. Cześć, Musisz używać portu, który jest przypisany dla Arduino, nie dowolnego. Otwórz menedżer urządzeń i sprawdź. Kod programu to najzwyklejszy blink. Dla pewności, że nie zrobiłeś nic źle, otwórz plik Blink z przykładów w Arduino IDE i wgraj go. Jeśli się okaże, że dalej nic, to Arduino masz walnięte.
  6. Nie wyłączałem ostrzeżeń kompilatora. Nawet nie wiedziałem, że tak się da Przy aktualnym kodzie kompilator nic nie wyrzuca.
  7. Tak moja pomyłka i tak też było wcześniej w kodzie. Teraz tylko przepisywałem to dla poprzedniego posta.
  8. Aktualny kod jak powyżej, a serial port: ... ... Do you want to switch on the power supply? Attention! The power supply will be switched on! 230V will be switched on! Keep hands out of metal and live parts. Please accept. Accepted 0 1 2 3 4 5 1 2 3 4 5 6 7 jest Wcześniejszego kodu nie mam, bo wszystko w jednym sketchu, ale było coś takiego dla tych dwóch stanów (od buzzera i ledzika): case alarm1: int t = 0; for(t;t>=6;t++){ if(aktualnyCzas - zapamietanyCzas == 1000UL){ Serial.println(t); zapamietanyCzas = aktualnyCzas; state = !state; digitalWrite(BUZZER,state); if(t>=6){ stan = alarm2; digitalWrite(BUZZER,LOW); } } } break; ///////////////////////////////////////////////////// case alarm2: int i = 0; for(i;i>=6;i++){ if(aktualnyCzas - zapamietanyCzas == 1000UL){ zapamietanyCzas = aktualnyCzas; state = !state; digitalWrite(LED,state); Serial.println(i); if(i==7){ stan = podanieNapiecia; digitalWrite(LED,LOW); } } } break; Serial wyglądał tak: ... Do you want to switch on the power supply? Attention! The power supply will be switched on! 230V will be switched on! Keep hands out of metal and live parts. Please accept. Accepted 0 0 0 0 0 0 0 0 0 0 Program cały czas był w jednym miejscu i wyświetlały się zera i buzzer cały czas brzęczał i nie było wyjścia z pętli for i przejścia do stanu alarm2 diody
  9. Zmienne typu int i oraz t muszą być zadeklarowane jako globalne, nie lokalne dla pętli for czy danego stanu, bo cały czas się zerują. W każdym nowym obiegu ich wartość jest zero. Wrzuciłem sobie wszystko do seriala i ładnie widać co się dzieje. Druga sprawa zapis inkrementacji i++ nie działa, ale to już nieważne. Wrzucam kawałek kodu jak to wygląda, jak by ktoś miał podobny problem. int i = 0; int t = 0; void setup () { ... } void loop (){ ... case jakisStan: if(aktualnyCzas - zapamietanyCzas == 1000UL){ i = i+1; zapamietanyCzas = aktualnyCzas; state = !state; digitalWrite(LED,state); Serial.println(i); if(i==7){ stan = podanieNapiecia; digitalWrite(LED,LOW); } } break; ... } Sam sobie poradziłem. Przerwania też pomogły, więc problemu już nie ma. Dzięki za pomoc @Elvis @ethanak i @Hudyvolt Pozdrawiam Philip
  10. Takie mierniki wskazówkowe są bardzo delikatne, szczególnie galwanometry. Jeśli ci upadł mógł ulec uszkodzeniu mechanizm mierzący dźwięk. Ciężko ci coś podpowiedzieć nie widząc fizycznie miernika. Może te druciki przy upadku wyskoczyły skądś. Ciężko gdybać.... Kilka razy miałem styczność z zepsutymi miernikami analogowymi. Rozebrałem je i po złożeniu coś nie dociskało, nie chowało się, coś się może nadłamać. Musisz dokładnie sprawdzić czy nie jest uszkodzony mechanizm.
  11. Super projekt. Estetycznie, profesjonalnie i bardzo użyteczne urządzenie Takie pytanie: czy sam zaprojektowałeś wszystkie płytki PCB? Pozdrawiam
  12. Czasem dużo nie potrzeba. Do regulacji prądu żarówki żarowej wystarczy zwykły ściemniacz, czyli potencjometr. Żarówka żarowa z wolframowym żarnikiem sama w sobie jest rezystorem o pewnej rezystancji. Tylko to nie może być też taki zwykły potencjometr. Wiadomo o pewnej mocy.
  13. Spróbuję przerobić cały kod na kod z przerwaniami. Możliwe, że kod się dziwnie zatrzymuje w niektórych stanach i nie umie od razu w nie wejść.
  14. #define PRZYCISK 6 #define LED 7 #define BUZZER 8 #define WYJ 9 #include "Bounce2.h" Bounce debouncer = Bounce(); //Debouncing enum { czyWcisnietoPrzycisk = 1, zapytanie1, zapytanie2, alarm1, stopAlarm, alarm2, podanieNapiecia, oczekiwanieNaWylaczenie, czyWylaczyc }; boolean state = false; int stan = 1; String odebraneDane = ""; int aktualnyCzas = 0; int zapamietanyCzas = 0; int zapamietanyCzas2 = 0; void setup() { Serial.begin(9600); //Inicjalizacja komunikacji szeregowej //Deklaracja pinMode(PRZYCISK,INPUT_PULLUP); pinMode(LED,OUTPUT); pinMode(BUZZER,OUTPUT); pinMode(WYJ,OUTPUT); debouncer.attach(PRZYCISK); debouncer.interval(5); digitalWrite(LED,!state); //Test leda i buzzera digitalWrite(BUZZER,!state); delay(1000); digitalWrite(LED,state); digitalWrite(BUZZER,state); delay(1000); } void loop() { aktualnyCzas = millis(); debouncer.update(); int wartosc = debouncer.read(); if(Serial.available()>0) { odebraneDane = Serial.readStringUntil('\n'); } switch(stan){ case czyWcisnietoPrzycisk: if(aktualnyCzas - zapamietanyCzas == 5000UL){ zapamietanyCzas = aktualnyCzas; Serial.println("..."); } if(wartosc == LOW){ stan = zapytanie1; } break; ///////////////////////////////////////////////////// case zapytanie1: if(aktualnyCzas - zapamietanyCzas == 5000UL){ zapamietanyCzas = aktualnyCzas; Serial.println("Do you want to switch on the power supply?"); } if(odebraneDane == "yes"){ Serial.println("Attention! The power supply will be switched on!"); //Akceptacja zapytania stan = zapytanie2; } if(odebraneDane == "no"){ Serial.println("Mistake! I go to observance state."); stan = czyWcisnietoPrzycisk; } break; ///////////////////////////////////////////////////// case zapytanie2: if(aktualnyCzas - zapamietanyCzas == 5000UL){ zapamietanyCzas = aktualnyCzas; Serial.println("230V will be switched on! Keep hands out of metal and live parts. Please accept."); } if(odebraneDane == "ok"){ zapamietanyCzas = aktualnyCzas; Serial.println("Accepted"); stan = alarm1; } break; ///////////////////////////////////////////////////// case alarm1: for(int t=0;t<6;t++){ if(aktualnyCzas - zapamietanyCzas2 == 1000UL){ Serial.println("hmm"); zapamietanyCzas2 = aktualnyCzas; state = !state; digitalWrite(BUZZER,state); } if(t==6){ stan = stopAlarm; } } break; ///////////////////////////////////////////////////// case stopAlarm: //noTone(BUZZER); digitalWrite(BUZZER,LOW); stan = alarm2; break; ///////////////////////////////////////////////////// case alarm2: int i; if(aktualnyCzas - zapamietanyCzas == 1000UL){ i++; zapamietanyCzas = aktualnyCzas; state = !state; digitalWrite(LED,state); } if(i==6){ stan = podanieNapiecia; } break; ///////////////////////////////////////////////////// case podanieNapiecia: Serial.println("jest"); //digitalWrite(WYJ,HIGH); stan = oczekiwanieNaWylaczenie; break; ///////////////////////////////////////////////////// case oczekiwanieNaWylaczenie: if(wartosc == LOW){ stan = czyWylaczyc; } break; ///////////////////////////////////////////////////// case czyWylaczyc: if(aktualnyCzas - zapamietanyCzas == 5000UL){ zapamietanyCzas = aktualnyCzas; Serial.println("Are you sure to switch off the power supply?"); } if(odebraneDane == "yes"){ Serial.println("nie ma"); //digitalWrite(WYJ,LOW); stan = czyWcisnietoPrzycisk; } if(odebraneDane == "no"){ Serial.println("There was mistake. I go back to work state."); stan = alarm2; } break; ///////////////////////////////////////////////////// } } Wrzucam cały kod. Próbowałem różnych rzeczy. Ciekawi mnie dlaczego cały czas jest ta pętla for i jeszcze z takim kilkusekundowym opóźnieniem zanim się rozpocznie.
  15. Drodzy Panowie ten fragment kodu jest dobry, ale coś innego musi powodować zapętlanie się tej pętli for. Program też dziwnie wchodzi z długim opóźnieniem w ten stan "alarm1" a tak nie powinno być.
×
×
  • Utwórz nowe...