Skocz do zawartości

Podłączenie pralki do arduino:)


Pomocna odpowiedź

Ok, szukam informacji jak to policzyć, ale nawet nie wiem czego szukać i o co zaczepić.

Mam chęć to samemu policzyć, albo chociaż spróbować, ale daj jakiś punkt gdzie mogę się złapać.

Czego mam szukać, wzoru na co? Przeglądnąłem trochę neta, ale te wzory nic mi nie mówią.

Pół dnia kombinowałem z kodem do funkcji alarmu, złożenie tego z Blynkiem nie było łatwe, mam już dość, ale chętnie pokombinuję w nocy.

Przy okazji zrobiłem transoptor diy z neonówki. kurde z czego są zrobione te druciki przy neonówce, za chiny ludowe nie trzyma się tego lut. Nakombinowałem się jak koń pod górę...

Mogę powiedzieć, że próbowałem, ale wychodzi brak wiedzy. Nie potrafię użyć tych wzorów. 😳

😖😕🙁

Żebym chociaż umiał użyć narzędzi do tego służacych to już byłoby super...

No dobrze, ciężko idzie ale plus za wytrwałość. Wzór na napięcie na kondensatorze o pojemności C ładowanym z napięcia Uz przez rezystor R po czasie t od chwili zero jest taki:

U(t) = Uz * (1 - EXP(-t/RC))

Dla ciekawości możesz sobie robić wykresy dla różnych kombinacji R/C/Uz przy rosnącym czasie. EXP(x) to oczywiście potęgowanie e^x.

Dla pierwszego lepszego kompletu danych:

C = 10uF

R = 22k

Uz = 5V

t = 100ms

dostajesz:

U(t) = 5 * (1 - EXP(-1E-1/22E3*10E-6))

czyli:

U(t) = 1.82V

Po 0.1s od podłączenia napięcia 5V masz na swoim kondensatorze 1.8V.

W naszym przypadku potrzebne jest coś odwrotnego. Musisz policzyć pojemność kondensatora taką, by po czasie 10ms napięcie na nim nie było większe niż 0.5V przy warunkach jakie widzisz w swoim układzie, czyli Uz=5V i R=40k. Możesz przekształcić wzór i policzyć jednym strzałem albo podstawić kilka różnych pojemności i sprawdzić kiedy wreszcie przestaniesz ładować się zbyt szybko. Zacznij od powiedzmy 100nF. Gdy dojdziesz do 100uF, coś poszło nie tak..

  • Lubię! 1

Pralka do arduino podłączona 😃 , mój pierwszy IoT 😅

ale twoje zadanie nie rozwiązane, to zupełnie nie moja bajka ale walczę z tym i mi nie wychodzi:

U(t) = Uz * (1 - EXP(-t/RC))

C = 10uF

R = 22k

Uz = 5V

t = 100ms

czyli(po mojemu)

U(t)= 5*(1-[2,718 do potęgi minus 0,45]) bo minus0,1/0,22 wynosi minus0,45

t.j.

U(t)= 5*(1-[(1/2,718) do potęgi 0,45])

t.j.

U(t)= 5*(1-1,56)

t.j.

U(t)= 5*(-)0,56

U(t)= minus2,8

🤯

gdzie robię źle...

Faktycznie 🙂😃 , coś źle podstawiłem w kalkulatorze:

U(t) = Uz * (1 - EXP(-t/RC))

C = 10uF

R = 22k

Uz = 5V

t = 100ms

czyli(po mojemu)

U(t)= 5*(1-[2,718 do potęgi minus 0,45]) bo minus0,1/0,22 wynosi minus0,45

t.j.

U(t)= 5*(1-[(1/2,718) do potęgi 0,45])

t.j.

U(t)= 5*(1-0,637)

t.j.

U(t)= 5*0,363

U(t)= 1,815 😅😅😅

Wyszło!!!

Liczę dalej...

[ Dodano: 13-02-2018, 23:11 ]

2,5uF...

U(t) = Uz * (1 - EXP(-t/RC))

C = 2,5uF

R = 40k

Uz = 5V

t = 10ms

czyli(po mojemu)

U(t)= 5*(1-[2,718 do potęgi minus 0,1]) bo minus0,01/0,1 wynosi minus0,1

t.j.

U(t)= 5*(1-[(1/2,718) do potęgi 0,1])

t.j.

U(t)= 5*(1-0,9)

t.j.

U(t)= 5*0,1

U(t)= 0,5V

??

No i super. Dopiero kondensator 2.5uF gwarantuje, że napięcie na kolektorze tranzystora nie wyjdzie poza 0.5V w czasie gdy dioda nie świeci w ujemnej połówce sieci. Skoro masz już narzędzie, to można pójść odrobinę dalej i wypróbować go na bardziej praktycznym przypadku. Jeśli od pralki do Arduino jest kilka ładnych metrów, to nie byłoby rozsądnym zostawianie tak długiego drutu na pastwę opornika pullup w procesorze. Przekonałeś się już, że I2C podciągnięte za słabo przestaje działać. To nie jest tak skrajny przypadek, ale sterowanie kabla przez opornik 40k to igranie z zakłóceniami. Dlatego tuż przy procesorze dasz dodatkowy opornik podciągający, powiedzmy 22k. Mamy już zatem 22k||40k co daje 14k. Używając tych samych wzorów od razu policzysz, że w takim przypadku minimalny kondensator rośnie do 6.8uF. Przyjmujemy 10uF i śpimy spokojnie. Prąd tranzystora potrzebny do zrobienia 0V wyniesie teraz 5V/14k=0.35mA co przekłada się na prąd diody LED (przy CTR=50%) 0.7mA a to wciąż jest dużo mniej niż wpuszczasz z sieci przez 47k.

Tak skonstruowany układ powinien dawać stałe zero logiczne podczas obecności napięcia 230VAC.

Hm, ale czy tylko takiego?

Oczywiście nie. Żeby procesor na pewno zobaczył jedynkę, na jego wejściu musi być min. 3.5V (dla Vcc=5V). Na oporniku kolektorowym musi się więc odłożyć co najmniej 1.5V. To oznacza prąd 1.5V/14k=0.1mA a po stronie pierwotnej dla najgorszego transoptora będzie to 0.2mA prądu diody. Napięcie chwilowe sieci powinno więc wynieść maks. 47k*0.2mA=5V. Mało, prawda? Tyle wystarczy, by procesor przestał wczytywać pewną jedynkę. Do pewnego zera (Vin<1.5V) jeszcze trochę, ale niedaleko.

Dla ciekawości możesz policzyć z jakim opóźnieniem procesor będzie się dowiadywał o zniknięciu napięcia sieci. Musisz znaleźć czas po którym kondensator 10uF naładuje się przez 14k do napięcia pewnej jedynki logicznej czyli 3.5V.

Rozładowanie kondensatora (czyli czas opóźnienia przy załączaniu napięcia sieci) będzie dużo szybsze, bo tranzystor rozładuje 10uF prądem szczytowym kilku mA.

Moim zdaniem te wszystkie pomysły są przekombinowane. Jeżeli jest dioda informująca o stanie to można do niej przyczepić fotorezystor. W pętli sprawdzać jasność. Jeżeli świeci to zapisać czas. Jeżeli nie świeci to obliczyć jak długo. Bez żadnej dodatkowej elektroniki i ingerencji w pralkę.

Tak mam zrobione;). Zamek drzwi steruje neonówką(przez opornik 1mega) wyjętą z próbnika elektrycznego, sygnał czyta fotorezystor, ten info wysyła do arduino, a ono wysyła mi notyfikację przez internet na dowolne urządzenie, w dowolnym miejscu świata. Żona zadowolona:D

Co oczywiście nie znaczy, że nie mogę nauczyć się czegoś nowego. Þym bardziej jak się ma takich nauczycieli...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...