Spinaní pinu na delši vzdalenost
Spinaní pinu na delši vzdalenost
Zdravím Vás.
Se snažim spinat piny klasickým vypinačem co je na světla na vzdalenost 4 metry.
Jelikož ma prace je internet, zvolil jsem UTP kabl, který mam zdarma.
Nějak se to neda ukočirovat a rušení je tak velke že mi to nefunguje.
Moje poslední šance co mně napada je optočlen.
https://www.aliexpress.com/item/4000590924896.html
Ale by mně zajimalo, zda s tým nema někdo zkušenosti a nepodařilo se mu to vyřešit.
Muže být problem v tom UTP kablu, třeba e je kroucený?
Všechny čidla co mám doma tak přes UTP funguji a třeba HC-SR501 jedena 12 metru, DHT 22 na 8 metru.
Se snažim spinat piny klasickým vypinačem co je na světla na vzdalenost 4 metry.
Jelikož ma prace je internet, zvolil jsem UTP kabl, který mam zdarma.
Nějak se to neda ukočirovat a rušení je tak velke že mi to nefunguje.
Moje poslední šance co mně napada je optočlen.
https://www.aliexpress.com/item/4000590924896.html
Ale by mně zajimalo, zda s tým nema někdo zkušenosti a nepodařilo se mu to vyřešit.
Muže být problem v tom UTP kablu, třeba e je kroucený?
Všechny čidla co mám doma tak přes UTP funguji a třeba HC-SR501 jedena 12 metru, DHT 22 na 8 metru.
Re: Spinaní pinu na delši vzdalenost
4 m se mi nezdá tak moc, ale problém to být může. Kolik párů využíváš? Všechny? Zkus to rozhodit do různých párů. Taky bych místo obyč. UTP zkusil SFTP. Netáhneš souběžně s datama i napájení?
Re: Spinaní pinu na delši vzdalenost
Mam tam i 5V a GND.
Přes to GND jen spinam ty piny a 5V zatim nezapojeno.
Normalně na internet na tomto UTP mame i 100 metrový spoj a přes POE tam cpeme 48V.
Zatim jsem zkoušel jen 2 vypinače.
Sepnout rele jde okamžitě a kdykoliv. Ale je problem je rozepnout a hlavně když sepnu obě.
První jsem zkoušel toto.
S PULLUP odporem to haprovalo.
Tak jsem zrušil a použil 2,2 k a ok.
Kód: Vybrat vše
// Pro rele 2 - tlačitko D4 ------------------------------------
AktualniStavPinu_D4 = digitalRead(4); // nacteni aktualniho stavu tlacitka D4
if ((AktualniStavPinu_D4 == 0) && (MinulyStavPinu_D4 == 1)) // je-li stisknuto tlacitko D4
{
expander.toggle(2);// obrati stav pinu 2 na expanderu
Serial.println("A001_Rele2 " + String(expander.digitalRead(2))+ " vyp");
delay(100);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
MinulyStavPinu_D4 = AktualniStavPinu_D4;
//--------------------------------------------------------------------------------
// Pro rele 3 - tlačitko D5 -----------------------------------
AktualniStavPinu_D5 = digitalRead(5); // nacteni aktualniho stavu tlacitka D5
if ((AktualniStavPinu_D5 == 0) && (MinulyStavPinu_D5 == 1)) // je-li ted stisknuto tlacitko D5
{
expander.toggle(3);// obrati stav pinu 3 na expanderu
Serial.println("A001_Rele3 " + String(expander.digitalRead(3))+ " vyp");
delay(100);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
MinulyStavPinu_D5 = AktualniStavPinu_D5;
}
Tak jsem to zkusil přes millis.
A toto hapruje i s tým 2,2 k odporem a jsem zkusil i 1,5 k.
Jedině že bych tam měl někde kopanec
Kód: Vybrat vše
//-----------------------------------------------------------------------------------------------
// Tlačitko D4 pro rele 2
//-----------------------------------------------------------------------------------------------
if (digitalRead(4) == 0) // je-li tlacitko stisknuto D4
{
if ((MinulyStavTlacitka_D4 == 1) && (millis() - CasZmenyTlacitka_D4 > PRODLEVA))
{
MinulyStavTlacitka_D4 = 0;
expander.toggle(2); // obrati na expanderu stav pinu 2
Serial.println("A001_Rele2 " + String(expander.digitalRead(4))+ " vypinač");
delay(50);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
}
else // neni-li stisknuto tlacitko
{
CasZmenyTlacitka_D4 = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
MinulyStavTlacitka_D4 = 1; // nuluj priznak, tlacitko stisknuto
}
//-----------------------------------------------------------------------------------------------
// Tlačitko D5 pro rele 3
//-----------------------------------------------------------------------------------------------
if (digitalRead(5) == 0) // je-li tlacitko stisknuto
{
if ((MinulyStavTlacitka_D5 == 1) && (millis() - CasZmenyTlacitka_D5 > PRODLEVA))
{
MinulyStavTlacitka_D5 = 0;
expander.toggle(3); // obrati na expanderu stav pinu 3
Serial.println("A001_Rele3 " + String(expander.digitalRead(5))+ " vypinač");
delay(50);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
}
else // neni-li stisknuto tlacitko
{
CasZmenyTlacitka_D5 = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
MinulyStavTlacitka_D5 = 1; // nuluj priznak, tlacitko stisknuto
}
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Spinaní pinu na delši vzdalenost
Nic neřeš SW, dokud nezměříš, že ti to funguje po elektrické stránce ....
Vůbec jsem nepochopil co jak máš zapojené, oddělit minimálně optočlenem to budeš muset.
Nejjednodušší je oddělení relátkem (přímo relátkem), třeba s 12V cívkou (podle používaného napětí). Ta cívka ti "požere" všechny špičky co na trase vzniknou a "nakmitané" rušení. Relé musíš mít u Arduina.
Používá se to v průmyslu dlouhá léta a je to spolehlivé. Ale upouští se od toho, je to drahé a cokoliv mechanického = menší spolehlivost.
Já u alarmu jedu na 12V vzdálenosti i desítky metrů a bez problémů. ALE, v obvodu na 12V neřeším spínání "napětí" ale přerušování proudové smyčky.
Samozřejmě to mám poté (jednotlivé napěťové hladiny) oddělené optočlenem, právě abych zamezil zavlečení rušení směrem k ATmega.
Na toto téma najdeš na netu spoustu schemat.
Vůbec jsem nepochopil co jak máš zapojené, oddělit minimálně optočlenem to budeš muset.
Nejjednodušší je oddělení relátkem (přímo relátkem), třeba s 12V cívkou (podle používaného napětí). Ta cívka ti "požere" všechny špičky co na trase vzniknou a "nakmitané" rušení. Relé musíš mít u Arduina.
Používá se to v průmyslu dlouhá léta a je to spolehlivé. Ale upouští se od toho, je to drahé a cokoliv mechanického = menší spolehlivost.
Já u alarmu jedu na 12V vzdálenosti i desítky metrů a bez problémů. ALE, v obvodu na 12V neřeším spínání "napětí" ale přerušování proudové smyčky.
Samozřejmě to mám poté (jednotlivé napěťové hladiny) oddělené optočlenem, právě abych zamezil zavlečení rušení směrem k ATmega.
Na toto téma najdeš na netu spoustu schemat.
Naposledy upravil(a) pavel1tu dne 25 úno 2020, 06:37, celkem upraveno 1 x.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Spinaní pinu na delši vzdalenost
Tak ono to na stole s pul metrovým kablikem šlapalo jak hodinky.
Počkam teda na ty opto.
Počkam teda na ty opto.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Spinaní pinu na delši vzdalenost
A netáhneš ten kabel kolem elektriky ?
On ten ten kabel se na DC napětí chová jako "kondenzátor" a pokud ho nemáš stíněný, pěkně ti posbírá rušení. Pokud je stíněný - tak stínění se "kostří" nebo dává na mínus jen na 1 straně a to u Arduina
On ten ten kabel se na DC napětí chová jako "kondenzátor" a pokud ho nemáš stíněný, pěkně ti posbírá rušení. Pokud je stíněný - tak stínění se "kostří" nebo dává na mínus jen na 1 straně a to u Arduina
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Spinaní pinu na delši vzdalenost
zkus to takhle kondenzátor může být i keramický, už s 18nF to odstranilo veškeré problémy s 3tlačítky a napájením přes dvoumetrový utp ...
... taky je sranda laborovat hodiny kolem zapojení, hodiny čumět do programu ... a pak zjistit, že na vině je nekvalitní nepájivé pole, neudělaný propoj či nalomený drátek
... taky je sranda laborovat hodiny kolem zapojení, hodiny čumět do programu ... a pak zjistit, že na vině je nekvalitní nepájivé pole, neudělaný propoj či nalomený drátek
Re: Spinaní pinu na delši vzdalenost
@ kiRRow a nějak obratit by to nešlo, abych to spinal s GND - na pinu LOW?
Re: Spinaní pinu na delši vzdalenost
Já myslel spíš souběžně vedené UTP a 230 V. V jedné liště atp.
Re: Spinaní pinu na delši vzdalenost
Tak to ne.Psal si DC
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů