Jak zjistit polaritu
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Jak zjistit polaritu
Cau panove.
Potreboval bych co nejjednodusi reseni jak poznat smer toku proudu.
Z arduino uno mam vyveden vcc a gnd do sveho zarizeni kde jsou dva spinace a z tohoto zarizeni jsou dva vystupy.
Pokud stisknu prvni spinac , tak na vystupu1 je vcc a na vystupu2 gnd.
Pokud stisknu druhy spinac, tak na vystupu1 je gnd a na vystupu2 je vcc.
Pokud nemam stisknuto nic, vystupy jsou odpojeny.
Potreboval bych v programu zjistovat, ktery ten spinac je stisknuty.
Jde to nejak jednoduse? Dik za rady.
Potreboval bych co nejjednodusi reseni jak poznat smer toku proudu.
Z arduino uno mam vyveden vcc a gnd do sveho zarizeni kde jsou dva spinace a z tohoto zarizeni jsou dva vystupy.
Pokud stisknu prvni spinac , tak na vystupu1 je vcc a na vystupu2 gnd.
Pokud stisknu druhy spinac, tak na vystupu1 je gnd a na vystupu2 je vcc.
Pokud nemam stisknuto nic, vystupy jsou odpojeny.
Potreboval bych v programu zjistovat, ktery ten spinac je stisknuty.
Jde to nejak jednoduse? Dik za rady.
Re: Jak zjistit polaritu
No, jeste by to chtelo vedet, co se stane, kdyz jsou stisknute oba spinace naraz
Jinak nejjednodussi asi je aspon na pochopeni), vzit tri stejne velke odpory (asi tak 10kOhm, at to moc nezere) a zapojit je vsechny na jeden analogovy pin.
pak jeden zapojit na VCC, druhy na GND a treti na VYSTUP1.
Pak uz jen nactes napeti na tom analogovem pinu a kdyz:
je tam asi tak 1/2 - tak je vystup1 nezapojeny (a mas jednoduchy delic 1:1)
je tam asi tak 2/3 - tak je vystup1 pripojeny k VCC (a ten delic je 1:2)
je tam asi tak 1/3 - tak je vystup1 pripojeny ke GND (a ten delic je 2:1)
nikdy to nebude presne (ruzne soucastky, prechodove odpory, sumy, ruseni,...), takze spis pouzit neco mezi, takze si to prevedu na spolecny jmenovatel, tedy nasobky 1/6 (2,3,4) a budu se preklapet asi tak v pulce mezi nima, tak pouziju 1/12 (4,6,8 jsou idealy, 5,7 jsou teda hranice) a dostanu cosi jako
Jinak nejjednodussi asi je aspon na pochopeni), vzit tri stejne velke odpory (asi tak 10kOhm, at to moc nezere) a zapojit je vsechny na jeden analogovy pin.
pak jeden zapojit na VCC, druhy na GND a treti na VYSTUP1.
Pak uz jen nactes napeti na tom analogovem pinu a kdyz:
je tam asi tak 1/2 - tak je vystup1 nezapojeny (a mas jednoduchy delic 1:1)
je tam asi tak 2/3 - tak je vystup1 pripojeny k VCC (a ten delic je 1:2)
je tam asi tak 1/3 - tak je vystup1 pripojeny ke GND (a ten delic je 2:1)
nikdy to nebude presne (ruzne soucastky, prechodove odpory, sumy, ruseni,...), takze spis pouzit neco mezi, takze si to prevedu na spolecny jmenovatel, tedy nasobky 1/6 (2,3,4) a budu se preklapet asi tak v pulce mezi nima, tak pouziju 1/12 (4,6,8 jsou idealy, 5,7 jsou teda hranice) a dostanu cosi jako
Kód: Vybrat vše
const int MAX_INPUT=1024; //maximum co muzu nacist
const int low=5*MAX_INPUT/12; // asi 427
const int high=7*MAX_INPUT/12; // asi 597
# define ANALOG A1
//......
loop(){
int hodnota=analogRead(ANALOG);
if (hodnota <low) {
Serial.println("vystup1 = GND");
else if (hodnota>high) {
Serial.println("vystup1 = VCC");
} else {
Serial.println("vystup1 NEZAPOJEN");
};
// .....
}
Re: Jak zjistit polaritu
Trochu jednodušší by mohlo být, že se použijou dva volné vstupy v Arduinu (je jedno jestli analogové, nebo digitální).
Nastaví se vnitřní Pull_Upy, aby byly jasně definované stavy i při odpojení.
Výstup1 se připojí na jeden vstup, Výstup2 se připojí na druhý vstup a pak už se jen testuje kombinace logických stavů na těch dvou vstupech.
Doufám, že to neděláš jen kvůli tomu, abys u kladné svorky rozsvítil červenou LED.
Nastaví se vnitřní Pull_Upy, aby byly jasně definované stavy i při odpojení.
Výstup1 se připojí na jeden vstup, Výstup2 se připojí na druhý vstup a pak už se jen testuje kombinace logických stavů na těch dvou vstupech.
Kód: Vybrat vše
#define pin1 5 // prvni volny pin
#define pin2 A0 // druhy volny pin
void setup(void)
{
Serial.begin(9600);
pinMode(pin1, INPUT_PULLUP);
pinMode(pin2, INPUT_PULLUP);
}
void loop(void)
{
boolean stav1 = digitalRead(pin1);
boolean stav2 = digitalRead(pin2);
if (stav1 == HIGH and stav2 == LOW ) Serial.println("1 = kladná, 2 = záporná");
if (stav1 == LOW and stav2 == HIGH) Serial.println("2 = kladná, 1 = záporná");
if (stav1 == HIGH and stav2 == HIGH) Serial.println("Bez napětí");
if (stav1 == LOW and stav2 == LOW ) Serial.println("PORUCHA - oba výstupy na GND");
}
Re: Jak zjistit polaritu
Díky moc za rady. Jak bude čas hned vyzkouším.
Ne, nemám to na rozsvícení diody
Mám udělané a již druhým rokem funkční zařízení na automatické řízení otevírání a přivírání spalinové klapky do komína v mém aut.kotli na uhlí.
Hlídám si teplotu, protože tyto kotle, když modulují svůj výkon, tak často jedou malým výkonem a do komína jde nízká teplota a může to škodit nerezové vložce uvnitř.
Snažím se držet teplotu kolem 140st.
Vše jede automaticky a já teď chci dodělat dva spínače, kdy sám "ručně" posunu klapku zvoleným směrem a aut. režim se na půl minuty deaktivuje. ( bylo by zdlouhavé vysvětlovat proč to potřebuji..)
Tak bych v programu potřeboval číst, že jsem stiskl tlačítko (deaktivuj režim auto) a vědět jaké tlačítko to bylo (dle něho vykonej pohyb klapky)
Faktem je, že již teď mám připravenou krabičku se dvěma spínači. Dva vstupy, dva výstupy.
Pri stisku spínače1 -----vst1 = vyst1 ; vst2 = vyst2
pri stisku spínace2----- vst1 = vyst2 ; vst2 = vyst1
bez stisku = nic s ničím nepropojeno.
Oba stisknuté...přiznám se, že teď nevím co by se stalo... toto ale pořeším
Druhé vaše řešení mi na první pohled připadá pro můj již připravený dvojspínač snažší.
Co myslíte?
Ne, nemám to na rozsvícení diody
Mám udělané a již druhým rokem funkční zařízení na automatické řízení otevírání a přivírání spalinové klapky do komína v mém aut.kotli na uhlí.
Hlídám si teplotu, protože tyto kotle, když modulují svůj výkon, tak často jedou malým výkonem a do komína jde nízká teplota a může to škodit nerezové vložce uvnitř.
Snažím se držet teplotu kolem 140st.
Vše jede automaticky a já teď chci dodělat dva spínače, kdy sám "ručně" posunu klapku zvoleným směrem a aut. režim se na půl minuty deaktivuje. ( bylo by zdlouhavé vysvětlovat proč to potřebuji..)
Tak bych v programu potřeboval číst, že jsem stiskl tlačítko (deaktivuj režim auto) a vědět jaké tlačítko to bylo (dle něho vykonej pohyb klapky)
Faktem je, že již teď mám připravenou krabičku se dvěma spínači. Dva vstupy, dva výstupy.
Pri stisku spínače1 -----vst1 = vyst1 ; vst2 = vyst2
pri stisku spínace2----- vst1 = vyst2 ; vst2 = vyst1
bez stisku = nic s ničím nepropojeno.
Oba stisknuté...přiznám se, že teď nevím co by se stalo... toto ale pořeším
Druhé vaše řešení mi na první pohled připadá pro můj již připravený dvojspínač snažší.
Co myslíte?
Re: Jak zjistit polaritu
Místo dvou spínačů by mohl být elegantnější jeden přepínač ( I0I ). Mechanicky je tak ošetřeno, že nedojde k sepnutí obou směrů zároveň.
Re: Jak zjistit polaritu
Počítám, že na výstupu bude H-Můstek ze dvou relétek.
Pokud jsou oba výstupy HIGH, bude na obou svorkách VCC - tudíž napětový potenciál 0. Pokud jsou oba LOW, bude na obou svorkách GND - napětový potenciál 0.
Pokud bych chtěl vědět jaká je doopravdy na výstupu polarita , asi bych šel metodou dvou optočlenů (počítám, že to ovládání klapky má nějaký svůj zdroj - tak ať se zachová galvanické oddělení zdrojů) zapojených paralerně k výstupu. Jeden optočlen bych zapojil v jednom směru, druhý optočlen v druhém směru. Pozor na předřadný odpor a odběr - vevnitř je dioda a fototranzistor.
Pokud jsou oba výstupy HIGH, bude na obou svorkách VCC - tudíž napětový potenciál 0. Pokud jsou oba LOW, bude na obou svorkách GND - napětový potenciál 0.
Pokud bych chtěl vědět jaká je doopravdy na výstupu polarita , asi bych šel metodou dvou optočlenů (počítám, že to ovládání klapky má nějaký svůj zdroj - tak ať se zachová galvanické oddělení zdrojů) zapojených paralerně k výstupu. Jeden optočlen bych zapojil v jednom směru, druhý optočlen v druhém směru. Pozor na předřadný odpor a odběr - vevnitř je dioda a fototranzistor.
Re: Jak zjistit polaritu
Mám tak trochu v plánu, že využiju i stisku obou spínačů současně na funkci "kalibrace", kdy zadávám hlídanou teplotu na tu co je právě aktuální....
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů