Wysyłanie sygnału z jednego pinu do innego jako input.

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 16 sty 2018, 11:08

Mam pytanie odnośnie sygnału wejściowego z użyciem przycisku.
Wiem że najprościej użyć przycisku z rezystorem.
Ale czy jest możliwe wysłanie sygnału z jednego pinu poprzez przycisk do innego? tak żeby arduino samo sprawdzało status przycisku w odpowiedniej chwili?

arduino w zależności od aktualnych warunków może wysłać sygnał z jednego pinu by sprawdzić czy przycisk jest załączony czy nie i w zależności od tego co wykryje odpowiednio zareagować.
Pytanie moje czy ustawiając w odpowiednim momencie High na pinie wyjściowym można odczytać stan na pinie wejściowym (czy też zmianę aktualnego stanu).
Czy do tego lepiej użyć pinów cyfrowych czy analogowych?

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


Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 16 sty 2018, 13:12

Po co taka kombinacja? Nie można po prostu czytać przycisku kiedy trzeba? Nawet rezystora nie trzeba jak ustawisz pin na INPUT_PULLUP...
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 16 sty 2018, 17:03

Chodzi też o to że czasem przycisk może być wciśnięty ale akcja ma następować dopiero w odpowiedniej chwili - gdy arduino wyśle sygnał sprawdzający stan przycisku.

Dziękuję za podpowiedź z PULLUP - przyda mi się bo mam ogromną ilość przycisków i żadnego rezystora a tutaj u mnie cokolwiek kupić to masakra... wszystko muszę sprowadzać nawet taką pierdołę jak rezystor...
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 16 sty 2018, 18:15

Czyli przycisk może byc wciśnięty, ale akcja będzie wykonana dopiero po odczytaniu przez Arduino położenia przycisku.
Dalej nie widzę sensu jakiegoś dodatkowego pinu.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
Awatar użytkownika
Marhef
Złota rączka
Posty: 1137
Rejestracja: 18 lis 2011, 02:18

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: Marhef » 16 sty 2018, 23:34

A arduino nie może zamiast wysyłać sygnał sprawdzający stan po prostu sprawdzić stan?
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 17 sty 2018, 10:07

Chodzi tez o to ze przycisk moze byc wcisniety dlugo. a normalny podlaczony z rezystorem zuzywa prąd caly czas. pullup bedzie ok do tego le to tylko jeden przycisk. dlatego pytam czy da sie wyslac sygnal z jednego pinu do drugiego.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 17 sty 2018, 10:16

Przetłumacz to na polski...
Co znaczy że "pullup bedzie ok do tego le to tylko jeden przycisk"???
Ile tego prądu zużywa wciśnięty przycisk? Przy 5V i 50 kΩ to aż 100µA. Jeśli chcesz oszczędzać energię to nie tędy droga.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 17 sty 2018, 10:58

Moge ustawic low na dwojce i w razie potrzeby dac High i sprawdzic stan dwojki jesli jest high to znaczy ze przycisk jest rozwarty a jesli low to wcisniety.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 17 sty 2018, 11:17

Pomijając fakt szukania oszczędności nie tam gdzie trzeba jest to oczywiście możliwe, coś w stylu:

Kod: Zaznacz cały

bool getParanoicPin(int pin)
{
    pinMode(pin, INPUT_PULLUP);
    bool rc = digitalRead(pin);
    pinMode(pin, INPUT);
    return rc;
}
Tylko... naprawdę, 100 µA w porównaniu z prądem pobieranym przez Arduino (że nie wspomnę o innych peryferiach) to wartość nie mająca większego znaczenia.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 17 sty 2018, 13:43

chodzi tez o uproszczenie konstrukcji i uzycie sygnalu do innych celow nie tylko o sam prąd. sygnal z pinu sterowalby czyms przy okazji uruchamiajac cos innego w zaleznosci od stanu przycisku. czy kilku przyciskow na raz jeden sygnal moglby isc do roznych pinow i z roznych pinow poprzez te same przyciski. arduino samo by wiedzialo ze w danej chwili przycisk robi cos tam a w innej cos innego. kod pozostaje jeden, hardware tez sie nie zmienia a zmienia sie zrodlo sygnalu wiec i funkcja.
mozna tez uzyc sygnalu jako funkcji kontrolnej tego jak sa przełączone przelaczniki (w sumie zle na poczatku pisalem o przyciskach to sie tyczy przelacznikow i czujnikow gdzie jakis czynnik moze go wlaczyc albo wylaczyc. np czujniki poziomu wody)
wbrew pozorom jest to przydatne dlatego drążę temat.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1137
Rejestracja: 18 lis 2011, 02:18

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: Marhef » 17 sty 2018, 14:12

Kolego, ale zabierasz się za temat od d...rugiej strony. To, o co Tobie chodzi można zrobić używając przycisków jako INPUT_PULLUP. A jaką funkcję w danej chwili ma wywołać, to musisz w programie opisać. Na przykład, jeśli chcesz, żeby wciśnięty przycisk w czasie zadziałania jakiegoś czujnika wywoływał funkcję fun1(), to możesz to zrobić tak:

Kod: Zaznacz cały

if((przycisk == LOW) && (czujnik1 == HIGH))
{
   fun1();
}
I analogicznie działanie innych przycisków z innymi czujnikami.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 17 sty 2018, 15:17

Uproszczenie konstrukcji osiągasz poprzez podłączenie wszystkiego do (mikro)kontrolera, a całą logiką ma się zajmować ów kontroler. Owszem - trzeba go umieć zaprogramować, ale i tak to taniej wychodzi niż zwalanie wszystkiego na kabelkologię. Arduino wykonujący program co ma trzy linijki kosztuje tyle samo co ten wykonujący 3000.
To co chciałeś zrobić byłoby fajne jakieś 50 lat temu, w czasie przekaźników i pierwszych TTL-i. Ale może warto sprawdzić w kalendarzu, który mamy wiek?
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 17 sty 2018, 23:57

Nie wszystko mozna zaprogramowac. mi akurat chodzilo o sterowanie aquaponiką, jeden mikrokontroler moze sterowac kilkoma osobnymi liniami ktore latwo mozna modyfikowac w razie potrzeby fizycznymi elementami co jest latwiejsze niz pisanie 3000 linijek kodu programu na każde ewentualności. zresztą nie wszystko da się zrobić programowo. czasem potrzebne są czujniki, przełączniki, przekaźniki i kable. nawet w 21 wieku.
mozna zaprogramowac sterowanie dostosowane do roślin na np. pięć etapow wzrostu kazdy etap sterowany innym pinem wyjściowym, gdy np uznam ze juz pora wystarczy abym fizycznie przełaczyl daną linię na inny pin aby bez zmiany kodu zmienic sterowanie. i tak np moge miec 5 linii sałaty kazda na innym etapie aby zachowac ciągłość produkcji. moge co jakis czas zmieniac sterowanie linii innym pinem lub dwie tym samym jesli uznam ze ta salata jeszcze nie dojrzała do zmiany.
jednoczesnie dostaje sygnal zwrotny aby system wiedzial ktore linie sa uzywane i ile jest tych samych itd. jesli sygnal z pinu 3 trafi do 8 i 9 system bedzie wiedzial ze na etapie 3 sa linie 8 i 9.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1137
Rejestracja: 18 lis 2011, 02:18

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: Marhef » 18 sty 2018, 00:50

Sałata? Jaka sałata? I to jeszcze uprawiana? Kiedyś sałatę się zarabiało, teraz się uprawia? A niedługo pewnie kopie :P

Dobra, to było celowo złośliwe. Kolego fdx, napisz w końcu, co chcesz zrobić. Bo na razie to się kupy nie trzyma. Nikt nie mówi, że bez czujników da się wszystko zrobić. Ale jeżeli podłączysz pod arduino 20 czujników, 30 przycisków i 15 przekaźników, a do tego napiszesz 3500 linijek kodu, to da się to osiągnąć bez przełączania żadnych dziwnych sygnałów.
Ale jeśli będziesz nadal pisał zagadkami, to gwarantuję, że nikt Ci nie pomoże
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 18 sty 2018, 17:18

Mam nadzieję źe nie masz na myśli mojej skromnej osoby...
IMHO jak ktoś chce chyć bujem, to należy mu sprzedać viagrę. Co prawda dilerem nie jestem, ale czasem chciałbym być...
Tak przy okazji - może już czas zamknąć to forum?
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 19 sty 2018, 17:42

Mi chodziło o prostą odpowiedź na pytanie czy można posłać sygnał z jednego pinu wyjściowego do drugiego jako wejściowy i jak to zrobić najlepiej.
To także może być wykorzystane do uruchamiania kodu w jednym arduino za pomocą sygnału z innego.

Nie jest tutaj ważne do czego byłoby to wykorzystane i że można wszystko zrobić tysiącem czy iluś tam tysiącami linijek kodu... jak już pisałem czasem prościej mechanicznie coś przełączyć niż pisać kod który będzie obejmował każdą możliwośc która może wystąpić...
Bądź co bądź najwydajniejszy kontroler jest między uszami użytkownika i jest on w stanie przewidzieć i zareagować nawet wtedy gdy czujniki i linijki kodu nie widzą problemu...
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 19 sty 2018, 18:02

Można ale po co?
Czy jak chcesz się wysikać to sam ze sobą prowadzisz dialog na temat "czy możesz"?
Taki wynalazek miałby może sens, gdybyś miał kilka kontrolerów, które z jakichś niewiadomych przyczyn nie mogą się ze sobą komunikować.
Chcielibyśmy Ci pomóc i pokazać jak to powinno być zrealizowane - ale zaparłeś się jak nie powiem kto, żeby puścić sygnał na pin a potem czytać stan tego pinu.

Z pokoiku wyszedł Zdzicho, gdzie do Lidki się sposobił
I do Stacha mówi cicho...
- Stachu...
- Co...
- Jak to się robi?

Może więc zanim do Lidki się zabierzesz, posłuchasz starszych...
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 20 sty 2018, 09:32

Terminator też sam sobie dane w oczach wyświetlał... ;-)

tak czy siak dzięki. ja w tym widzę pewien sens i mozliwosci wykorzystania. szczegolnie przy wysylaniu sygnału z (powiedzmy) glownego kontrolera do pomocniczych zajetych jakims innym zadaniem.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 20 sty 2018, 14:17

Czyli w sumie pytałeś o zupełnie coś innego, zauważyłeś?
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
fdx
Młodszy majsterkowicz
Posty: 29
Rejestracja: 28 sie 2017, 18:25

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: fdx » 22 sty 2018, 11:21

Może źle to ująłem.

Chodzi mi o wysyłanie sygnału z jednego pinu do innego (obojętnie czy w tym samym arduino czy do zupełnie innego kontrolera). Czy muszę to zrobić poprzez opornik czy mogę bezpośrednio, czy wogóle w inny sposób - z użyciem jakiegoś dodatkowego modułu, czy mogę wysłać do pinu cyfrowego czy lepiej do analogowego itd.
Awatar użytkownika
ethanak
Złota rączka
Posty: 761
Rejestracja: 21 lis 2015, 14:41
Kontakt:

Re: Wysyłanie sygnału z jednego pinu do innego jako input.

Post autor: ethanak » 22 sty 2018, 12:53

Jeszcze jedno: jeśli ma to być połączenie pin-przycisk-pin (a z tego co zrozumiałem o takie Ci chodzi) wyjście powinno być typu open. Najprościej jeden tranzystor i opornik w bazie, i nie musisz przejmować się dopasowaniem napięć.
Inna sprawa, że ja bym tego tak nie robił. Niech podrzędny kontroler sygnalizuje nadrzędnemu swój stan, a nadrzędny na tej podstawie będzie określał swoją reakcję na wciśnięcie klawisza.
Pisze człowiek ambitnie, a tu przychodzi prostak i wszystko rozumie.
To jest ewidentna bezczelność!
ODPOWIEDZ

Strony partnerskie: