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 na 12 metru, DHT 22 na 8 metru.
Toto třeba s PULLUP odporem hapruje a da se to ukočirovat až s 2,2 k odporem.
Kód: Vybrat vše
// Pro rele 2 - tlačitko D4 - Led svetlo pokoj------------------------------------
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 - Led svetlo pokoj -----------------------------------
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;
}
Nemužu mít někde kopanec?
Kód: Vybrat vše
//-----------------------------------------------------------------------------------------------
// Tlačitko D2 pro rele 0 -
//-----------------------------------------------------------------------------------------------
if (digitalRead(2) == 0) // je-li tlacitko stisknuto D2
{
if (MinulyStavTlacitka_D2 == 1 && millis() - CasZmenyTlacitka_D2 > PRODLEVA)
{
MinulyStavTlacitka_D2 = 0;
expander.toggle(0); // obrati na expanderu stav pinu 0
Serial.println("A001_Rele0 " + String(expander.digitalRead(2))+ " vypinač");
delay(50);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
}
else // neni-li stisknuto tlacitko
{
CasZmenyTlacitka_D2 = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
MinulyStavTlacitka_D2 = 1; // nuluj priznak, tlacitko stisknuto
}
//-----------------------------------------------------------------------------------------------
// Tlačitko D3 pro rele 1 -
//-----------------------------------------------------------------------------------------------
if (digitalRead(3) == 0) // je-li tlacitko stisknuto D3
{
if (MinulyStavTlacitka_D3 == 1 && millis() - CasZmenyTlacitka_D3 > PRODLEVA)
{
MinulyStavTlacitka_D3 = 0;
expander.toggle(1); // obrati na expanderu stav pinu 1
Serial.println("A001_Rele0 " + String(expander.digitalRead(2))+ " vypinač");
delay(50);
Serial.println("A001_stavrelay " + String(expander.read(), BIN));
}
}
else // neni-li stisknuto tlacitko
{
CasZmenyTlacitka_D3 = millis(); // zapamatuj si posledni cas, kdy bylo nestisknuto
MinulyStavTlacitka_D3 = 1; // nuluj priznak, tlacitko stisknuto
}
//-----------------------------------------------------------------------------------------------
// Tlačitko D4 pro rele 2 - Led svetlo pokoj
//-----------------------------------------------------------------------------------------------
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 - Led svetlo pokoj
//-----------------------------------------------------------------------------------------------
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
}