Arduino i programowa "masa"

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Arduino i programowa "masa"

Post autor: raptyk » 17 gru 2015, 14:34

Jakis czas temu uszkodzeniu ulegla plytka dotykowa sterujaca wanna z hydromasazem. Udalo mi sie ja odlaczyc i zreanimowac. Docelowo chcialbym podpiac pod nia arduino i sterowac caloscia np. z uzyciem pilota 433Mhz.

Plytka dziala w nastepujacy sposob:
- dotykam przycisk - wlaczenie
- dotykam ponownie przycisk - wylaczenie

Przyciski reaguja na dotyk palcem lub krotkim, nieuziemnionym kabelkiem. Jezeli na stale kabel przymocuje do przycisku, a nastepnie dotykam nim masy to przycisk wlacza i wylacza uklad.

Pytanie:
W jaki sposob polaczyc mase arduino i plytki, a nastepnie programowo na jednym z wyjsc na sekunde "zalaczyc" wspolna mase, a nastepne odlaczyc czyli zasymulowac fizyczne dotkniecie przycisku dotykowego?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Marhef
Złota rączka
Posty: 1261
Rejestracja: 18 lis 2011, 02:18

Re: Arduino i programowa "masa"

Post autor: Marhef » 17 gru 2015, 14:43

W setup() wpisujesz:

Kod: Zaznacz cały

pinMode(pin,OUTPUT);
digitalWrite(pin,HIGH);
Następnie w programie dajesz:

Kod: Zaznacz cały

digitalWrite(pin,LOW);
delay(1000); //odczekanie 1s
digitalWrite(pin,HIGH);
Oczywiście zamiast "pin" wpisujesz numer pinu, pod który podłączysz przycisk. I nie wiem, czy nie będzie efektu wciśnięcia przycisku przy podłączeniu zasilania do arduino.
P.S. Tak, wiem, delay() to zła funkcja, można ją zastąpić przez millis()
kazzik87
Starszy majsterkowicz
Posty: 440
Rejestracja: 14 lip 2014, 21:54
Lokalizacja: Lublin

Re: Arduino i programowa "masa"

Post autor: kazzik87 » 17 gru 2015, 14:50

mills() też nie jest dobrym rozwiązaniem, ale o tym później.
Nie wiem czy takie rozwiązanie będzie dobre. Bo chyba tego rodzaju przyciski działają na zmianę pojemności. Dlatego działa na palec albo przewód nie podpięty.
Zerknij na tego uC na dolnej płytce PCB. Może uda się odczytać nr. Znajdź notę katalogową. Zobacz co wchodzi na jaką nóżkę. Zobacz jak lecą ścieżki na płytkach i tam się wlutuj.
---
Jeżeli pomogłem to kliknij "Pomógł".
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 17 gru 2015, 15:31

Marhef pisze:W setup() wpisujesz:

Kod: Zaznacz cały

pinMode(pin,OUTPUT);
digitalWrite(pin,HIGH);
Następnie w programie dajesz:

Kod: Zaznacz cały

digitalWrite(pin,LOW);
delay(1000); //odczekanie 1s
digitalWrite(pin,HIGH);
Oczywiście zamiast "pin" wpisujesz numer pinu, pod który podłączysz przycisk. I nie wiem, czy nie będzie efektu wciśnięcia przycisku przy podłączeniu zasilania do arduino.
P.S. Tak, wiem, delay() to zła funkcja, można ją zastąpić przez millis()
@Marhef:
Dzieki za sugestie... niestety taka wersje sprawdzilem na poczatku :( (przyklad "Blink")... teraz jeszcze raz dla pewnosci podpialem uklad i calosc nie dziala. Na pinie pojawia sie na zmiane stan wysoki i niski jednak plytka nie reaguje, a po minucie zaczyna "wariowac" losowo wlaczajac i wylaczajac sie na stanie wysokim.

@kazzik87:
Najprostszym rozwiazaniem wydawalo mi sie zasymulowanie dotkniecia. Pod plytka jest jakis scalak, do ktorego nie mam dostepu i przed sprawdzeniem innych mozliwosci wolalbym nie dotykac - wiaze sie to z rozczlonkowieniem plytki :/

Do plytki dochodzi 5 przewodow - vcc i masa + trzy przewody, ktore pewnie odpowiadaja za przeslanie informacji o wcisnieciu jednego z 3 przyciskow. Proba podania + na nie niestety nie daje zadnej reakcji :/

Moze macie jeszcze jakies pomysly? W necie wpadlem jedynie na tranzystory sterujace masa ale nie mam nic takiego pod reka i fajnie by bylo gdyby jednak udalo sie to zrobic w jakis sposob za pomoca czystego arduino...
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
trolodk
Majsterkowicz
Posty: 71
Rejestracja: 1 sty 2015, 17:49

Re: Arduino i programowa "masa"

Post autor: trolodk » 19 gru 2015, 00:05

Przede wszystkim - na jakim napięciu działa ta płytka?
Ja mam w domu to: http://www.ebay.pl/itm/TTP223B-Digital- ... SwHjNV8m1o
podaje to masę po dotknięciu (obojętnie z której strony płytki). Zasilane jest od 2 - 5.5V, jeśli Twoja płytka mieści się w tym zasilaniu, to masz problem rozwiązany. Nie mówię, że to akurat musi być ten moduł, ale np zaprogramuj arduino uno z mikrokontrolerem w obudowie DIP, wyciągnij sobie uC, zasil go z tej płytki i masz masy połączone. Dalej to już tylko inwencja twórcza. Czy klaśnięcie, dotknięcie, czujnik zbliżeniowy, czy co tam sobie życzysz, nie bojąc się poboru prądu (bo + zasilania możesz zewnętrzne podłączyć, ale o tym pewnie wiesz, a jeśli nie, to o tym później.)
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 00:57

Zasilanie może być osobne, wystarczy tylko połączyć ze sobą masy.
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 19 gru 2015, 16:33

@trolodk:

Odlaczona plytka
Czerwony=0V Żółty=5V Biały=5V Pom=5V

Podlaczona plytka
Czerwony=1,6V Żółty=3,2V Biały=3,2V Pom=3,2V

Przy podlaczonej plytce podczas dotykania przyciskow na przewodach nastepuje krotki spadek napiecia. Hm, te przyciski dotykowe widzialem tez na aliexpress ale jednak wolalbym isc w kierunku programowego wlaczania, bo nie mam gdzie ich zamontowac.

Wyglada na to, ze po podpieciu plytki napiecie na czerwonym (vcc?) spada do 1,6, a za to bez plytki nie moge rozgryzc jak przekazac jakikolwiek sygnal dalej.
Przyciski reaguja na dotyk palcem lub krotkim, nieuziemnionym kabelkiem. Jezeli na stale kabel przymocuje do przycisku, a nastepnie dotykam nim masy to przycisk wlacza i wylacza uklad.
Do tej pory tylko z podpieta plytka i przewodem, ktorym dotykam masy jestem w stanie zmieniac funkcje...

@stiven: Zasilanie może być osobne, wystarczy tylko połączyć ze sobą masy.

To juz sprawdzalem:
Na pinie pojawia sie na zmiane stan wysoki i niski jednak plytka nie reaguje, a po minucie zaczyna "wariowac" losowo wlaczajac i wylaczajac sie na stanie wysokim.
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 16:47

Ja miałem na myśli, że wystarczy połączyć masy, żeby była wspólna masa. Wygląda na to, że to musi być zrobione z tranzystorem, a najlepiej z przekaźnikiem.

Może zadziała podanie stanu wysokiego na ten czerwony przewód, z drugiej żeby coś się nie uszkodziło w ten sposób.
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 16:51

A teraz przeczytałem, że tam są 3 przyciski i 3 przewody na których jest 5V. To może tam masę właśnie na te przewody podawać, żeby było wykryte wciśnięcie danego przycisku.
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 19 gru 2015, 21:09

Calosc na poczatku wydawala mi sie prosta do obsluzenia.
stany panujące między czarną żyłą a tymi kolorowymi

Bez plytki:
Masa
Czerwony = 0 (!)
Żółty = 5V
Biały = 5V
Pomarańczowy = 5V

Z plytka:
Masa
Czerwony =1,6V
Żółty = 3,2V
Biały = 3,2V
Pomarańczowy = 3,2V

Obejrzalem dokladnie plytke i wyglada na to, ze przystosowana jest do obslugi 6 przyciskow, a jedynie w tym modelu zamontowano 3 przyciski (na dodatek w miejscu B2,B4,B6-power) takze ta ilosc przewodow moze byc mylaca.

Dzialanie przyciskow:
1 (B6) - wlaczenie / wylaczenie podswietlenia plytki dotykowej i samej wanny
2 (B2) i 3 (B4) - zmiana trybu

Jezeli chcialbym obsluzyc calosc bez plytki to najpierw musze znalezc sposob na wlaczenie podswietlenia plytki/wanny czyli wcisniecie przycisku 1... Kurcze... chyba wyglada na to, ze prosciej bedzie jednak zasymulowac klikniecie w przycisk podlaczonej plytki, tzn. na chwile przylozyc mase (?) Ratujcie, bo juz trace sily ;)
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 19 gru 2015, 21:45

UPDATE:

Okazalo sie, ze do samego wlaczenia wanny uzywany jest... jedynie ZOLTY przewod i masa. Podlaczylem plytke tylko z podpietym zoltym przewodem i masa - przycisk reaguje i wlacza wanne

- czerwony przewod: to vcc zwrotnego podswietlenia plytki
- bialy przewod: beeper
- pomaranczowy: ??
dwa-przewody.png
Odlaczona plytka:
Masa + Zolty = 5V

Podlaczona plytka:
Masa + Zolty = 3,3V

Podlaczona plytka + dotkniecie przycisku:
Masa + Zolty = 3,3V na chwile spada do ok. 1,2V

Teraz pytanie... jak podobny efekt osiagnac z uzyciem arduino?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 21:47

Na tym jednym żółtym przewodzie działają wszystkie przyciski, czy tylko ten jeden?
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 19 gru 2015, 21:53

Na pewno dzialaja 2 przyciski (3 przycisk tez powoduje spadek napiecia ale odpowiada za wlaczenie pompy, a nie mam nalanej wody w wannie; mozliwe, ze ten 3 to informacja z czujki poziomu wody).

Najprawdopodobniej ten jeden przewod odpowiada za przeslanie inf. o wcisnietym przycisku. Nie jestem w stanie wylapac moim miernikiem roznicy napiecia pomiedzy wciskaniem przycisku 1,2 i 3 :/
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 22:01

Napięcia tu i tak nic nie dadzą, bo to jest prawdopodobnie jakiś interfejs komunikacyjny (pewnie I2C) i na tym przewodzie są przesyłane dane, na płytce jest układ scalony. Chyba nie da się odczytać, co jest wysyłane, więc moim zdaniem w grę wchodzi jedynie kombinowanie z przyciskami. Może MrLewerence coś wymyśli.
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 19 gru 2015, 22:06

Moze moglbym wpiac sie w ten pomaranczowy przewod arduino i nasluchiwac na jakims pin'ie ? Martwi mnie troche to dziwne napiecie ~3,3V (vs 5V) ? Jak zasilany jest w takim razie ten uklad - na jednym przewodzie zasilanie i wymiana danych?

Jezeli chodzi o druga, awaryjna opcje, tj. "kombinowanie z przyciskami" - czy moglibyscie podeslac link do jakiegos tranzystora, ktory na 5V z arduino zewrze mase? Istnieje cos takiego czy zostaja tylko przekazniki (prosze o jakis link) ?
stiven
Złota rączka
Posty: 1644
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Arduino i programowa "masa"

Post autor: stiven » 19 gru 2015, 22:12

Nie pamiętam teraz, przy interfejsie I2C lub 1-wire jest tak, że układy mogą być zasilane z linii danych. Ale tak, to nie będzie I2C, bo I2C ma dwie linie, 1-wire jest interfejsem na jednym przewodzie i masa wspólna.
raptyk
Młodszy majsterkowicz
Posty: 14
Rejestracja: 13 paź 2014, 16:22

Re: Arduino i programowa "masa"

Post autor: raptyk » 23 gru 2015, 16:37

Zgodnie z sugestia rozebralem plytke dotykowa. Caloscia steruje uklad BS806B (w zalaczniku opis w pdf'ie). 6 wejsc z przyciskow dotykowych, 6 wyjsc dalej do ukladu sterujacego. Podczas testow okazalo sie jednak, ze wystarczy jeden przewod do przesylania dalej danych z tych 6 wyjsc scalaka... podejrzewam, ze to zasluga drabinki rezystorowej (?)

Przwody (uzywane tylko dwa):
1. GND
2. VCC / DANE

gNwkkpb.png
2015-12-23_15-31-12.png


Co o tym sadzicie? Czy na tym jednym przewodzie (data) zmienia sie np. rezystancja, a uklad po drugiej stronie na podstawie tego odczytuje stan przyciskow? Jak pomierzyc to wlasciwie? Czy arduino jest w stanie np. na porcie analogowym zmieniac rezystancje w petli tak aby wylapac jakie poziomy odpowiadaja odpowiednim przyciskom?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ODPOWIEDZ

Strony partnerskie: