Externé prerušenie
Moderátori: psichac, Moderátori
Re: Externé prerušenie
Jestli rušení jde z vedení, tak je třeba dělat opatření na vedení, ne až na pinu procesoru.
Např v prvním obrázku kond C1 bude odrušovat mnohem víc když bude na druhé straně vedení.
A zkusil bych jeho hodnotu zvětšovat tak dlouho až rušení přestane.
Atd.
Např v prvním obrázku kond C1 bude odrušovat mnohem víc když bude na druhé straně vedení.
A zkusil bych jeho hodnotu zvětšovat tak dlouho až rušení přestane.
Atd.
0
- eurobastler
- Ultimate člen
- Príspevky: 3903
- Dátum registrácie: 19 Apr 2009, 00:00
- Bydlisko: BA
- Vek: 35
Re: Externé prerušenie
Aký kábel používaš na komunikáciu? Nebolo by lepšie použiť RS485? Tá sa vo veľkom používa v priemysle a je odolná voči rušeniu. Aký signál procesor vyhodnocuje - nejaký bežný protokol?
0
Re: Externé prerušenie
skusil som signal negovat. dal som rezistor(1k) do plusu a signal je spinany optoclenom do minusu. (aj s pull-up v procesore)
je to este horsrie.
staci zapnut svetlo a pride impulz ci dva.
ked v softweri zmenim falling na low tak na raz pridu dva, alebo 3 impulzy a po chvili to zamrzne uplne. (pritom mam stale pri impulze zrusenie prerusenia, pauzu 100ms, a povolenie prerusenia). rising ma ten isty vysledok ako falling, change som ai neskusal, a high moznost nemam.
ked dam na vstup prerusenia procesora pri zapnutom pull down par centimetrovy dratik (nikam nezapojeny) imuplzy idu stale
485?to by slo, keby pripojim dalsi procesor, signal z fotorezistora privediem na digitalny vstup, a vystup cez prevodik 232TTL/485 - komplikovane.
aky kabel pouzivam na komunikaciu? no pri testovani som mal medeny cerveny dratik, asi 0,1mm prierezu, a dlzky asi 10cm + modry rezistor s napisom 2R
je to este horsrie.
staci zapnut svetlo a pride impulz ci dva.
ked v softweri zmenim falling na low tak na raz pridu dva, alebo 3 impulzy a po chvili to zamrzne uplne. (pritom mam stale pri impulze zrusenie prerusenia, pauzu 100ms, a povolenie prerusenia). rising ma ten isty vysledok ako falling, change som ai neskusal, a high moznost nemam.
ked dam na vstup prerusenia procesora pri zapnutom pull down par centimetrovy dratik (nikam nezapojeny) imuplzy idu stale
485?to by slo, keby pripojim dalsi procesor, signal z fotorezistora privediem na digitalny vstup, a vystup cez prevodik 232TTL/485 - komplikovane.
aky kabel pouzivam na komunikaciu? no pri testovani som mal medeny cerveny dratik, asi 0,1mm prierezu, a dlzky asi 10cm + modry rezistor s napisom 2R
0
- boraicho
- Ultimate člen
- Príspevky: 12412
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Externé prerušenie
pri 2R a 5V by tamadiaľ tieklo 2,5A , naozaj?
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: Externé prerušenie
presne tak, a to je ten problem.
tak jedine riesenie ako vyrobit taky uzemneny signal je asi len prepinacie rele.
tak potrebujem poradit co s tym dalej. uz nie je podstatne co, a ako daleko sa snima, ale tie dva ohmy...
nejaky optoclen ci srr nepomoze. mozno dva optocleny, alebo ssr, kde by boli navzajom negovane.
tak jedine riesenie ako vyrobit taky uzemneny signal je asi len prepinacie rele.
tak potrebujem poradit co s tym dalej. uz nie je podstatne co, a ako daleko sa snima, ale tie dva ohmy...
nejaky optoclen ci srr nepomoze. mozno dva optocleny, alebo ssr, kde by boli navzajom negovane.
0
- eurobastler
- Ultimate člen
- Príspevky: 3903
- Dátum registrácie: 19 Apr 2009, 00:00
- Bydlisko: BA
- Vek: 35
Re: Externé prerušenie
u to asi vzdavam. neviem to napisat. rusenie je silne aj s 5cm dratikom a jednym viac ako dvoj ohmovym rezistorom. pri hoci aj tienenom kabli aj to to iste (mimochodom pouzivam cat7e)
0
- eurobastler
- Ultimate člen
- Príspevky: 3903
- Dátum registrácie: 19 Apr 2009, 00:00
- Bydlisko: BA
- Vek: 35
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Externé prerušenie
Pre začiatok to skús miesto paralelného rezistora na zem takto:
Problém je v tom že tie 2ohmy to má pri jednormernom prúde. Lenže pri MHz to už budú mať tie tvoje valcové odpory slušnú impedanciu takže tie nanosekundové špičky nepojdu cez neho do zeme ale pekne do vstupu toho procesora.
Ten kondenzátor v schéme by som dal kludne aj menší. Ale hlavne aby bol na vf a nie aby stratil kapacitu pri 10Mhz.
A samozrejme že to musí byť čo najbližšie vývodu procesora. Nie 5cm od pinu niekde na kraji toho arduina.
Prípadne to môžeš vylepšiť aj nejakou malu cievkou do serie s odporom a tranzilmi na zem a VCC. Ale to az sa toto ukáže ako neúčinné.
Problém je v tom že tie 2ohmy to má pri jednormernom prúde. Lenže pri MHz to už budú mať tie tvoje valcové odpory slušnú impedanciu takže tie nanosekundové špičky nepojdu cez neho do zeme ale pekne do vstupu toho procesora.
Ten kondenzátor v schéme by som dal kludne aj menší. Ale hlavne aby bol na vf a nie aby stratil kapacitu pri 10Mhz.
A samozrejme že to musí byť čo najbližšie vývodu procesora. Nie 5cm od pinu niekde na kraji toho arduina.
Prípadne to môžeš vylepšiť aj nejakou malu cievkou do serie s odporom a tranzilmi na zem a VCC. Ale to az sa toto ukáže ako neúčinné.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Externé prerušenie
Podla mna je problem vo vyhodnocovani hodnoty fotoodporu. Tam treba dat nejaky komparator, idealne s hystereziou.
Vsetko ostatne je potom riesenie dosledkov spatneho principu.
V scheme mas spolocne "zeme". Je to tak?
Vsetko ostatne je potom riesenie dosledkov spatneho principu.
V scheme mas spolocne "zeme". Je to tak?
0
Re: Externé prerušenie
teraz uz vsetko skusam vsetko bez fotoodporu, a dlheho kablu.
sksal som ten 100n kondenzator, ale staci na vstup dat len 100n kondenzator a uz to rusi. bez dratikov, kablov,...
je to to iste ako rezitor vacsi ako 2 ohmy do minusu.
asi zostava len to rele...
sksal som ten 100n kondenzator, ale staci na vstup dat len 100n kondenzator a uz to rusi. bez dratikov, kablov,...
je to to iste ako rezitor vacsi ako 2 ohmy do minusu.
asi zostava len to rele...
0
Re: Externé prerušenie
Nečital som cele vlakno,ale podla mňa tam maš ZASADNY problem.Ja prevadzkujem arduino par metrov od silneho vysielača /desiatky KW/ ,privody dlhe desiatky metrov a nie je najmenši problem.
-treba všetko galvanicky oddelit od arduina t.j.vstupy ,vystupy,napajania
-radšej použi zvlašt napajanie pre vstupy ,vystupy ,arduino
-blokovat a filtrovat
a musi to ist...
-treba všetko galvanicky oddelit od arduina t.j.vstupy ,vystupy,napajania
-radšej použi zvlašt napajanie pre vstupy ,vystupy ,arduino
-blokovat a filtrovat
a musi to ist...
0
Re: Externé prerušenie
Máme tomu rozumět tak, že když ke vstupnímu pinu nedáš nic jiného než odpor proti zemi, např. 10 Ohm, tak na pinu máš rušivé pulsy?skusam vsetko bez fotoodporu, a dlheho kablu.
je to to iste ako rezitor vacsi ako 2 ohmy do minusu.
0
Re: Externé prerušenie
Je tu ešte možnosť, že vstupný pin externého prerušenia je súčasne nakonfigurovaný ako výstup a program tam niečo zapisuje, čím sa to prerušenie vyvoláva interne.
0
Re: Externé prerušenie
atmelmega2560
pinMode(19, INPUT); // extint
digitalWrite(19, LOW); //polldown
attachInterrupt(4, stateChange, RISING);
void stateChange()
{ //detachInterrupt(4);
noInterrupts();
Serial.print(" * IMPULZ: ");
float cas = (millis() - lastmillis);
lastmillis = millis();
Serial.println (cas) ;
delay(100);
//attachInterrupt(4, stateChange, RISING);
interrupts();}
to je cast programu (cely ma par tisic riadkov)
co nechapem tak je este to ze pri ruseni mi program vypise cas 0, pritom podla mna pri delay 100 by mal byt minimalny cas 100, a dokonca sem tam je cas minus par tisic.
skusal som detachInterrupt aj noInterrupts.
pinMode(19, INPUT); // extint
digitalWrite(19, LOW); //polldown
attachInterrupt(4, stateChange, RISING);
void stateChange()
{ //detachInterrupt(4);
noInterrupts();
Serial.print(" * IMPULZ: ");
float cas = (millis() - lastmillis);
lastmillis = millis();
Serial.println (cas) ;
delay(100);
//attachInterrupt(4, stateChange, RISING);
interrupts();}
to je cast programu (cely ma par tisic riadkov)
co nechapem tak je este to ze pri ruseni mi program vypise cas 0, pritom podla mna pri delay 100 by mal byt minimalny cas 100, a dokonca sem tam je cas minus par tisic.
skusal som detachInterrupt aj noInterrupts.
0
Re: Externé prerušenie
Čau,
cas máš float a millis() vracia unsigned long a lastmillis nie je vidieť. Ďalší problém je použitie Serial.print() vo funkcii, ktorá je obsluhou prerušenia, pretože vo vnútri sa tiež používa prerušenie. ISR je najlepšie mať čo najkratšiu a ostatné veci robiť v hlavnom programe (sériovú komunikáciu atď.).
Asi to nebude rušenie.
cas máš float a millis() vracia unsigned long a lastmillis nie je vidieť. Ďalší problém je použitie Serial.print() vo funkcii, ktorá je obsluhou prerušenia, pretože vo vnútri sa tiež používa prerušenie. ISR je najlepšie mať čo najkratšiu a ostatné veci robiť v hlavnom programe (sériovú komunikáciu atď.).
Asi to nebude rušenie.
0
Re: Externé prerušenie
rusenie to bude z dovodu ze serial print mam len na diagnotiku a vidim ze program zamrzne ked napr.pomaly vypnem svetlo.
galvanicke oddelenie je idealne, ale na procesore mega mam obsadene skoro vsetky vyvody + dva muxy po 16 kanalov, a jeden mux na i2c. uz je na to dost neskoro.
udaj z prerusenia posielam do xively, a vidim zez obcas mi vypocita nekonecno, a obcas zaporne cislo. to float este nejako poopravujem, ale "cas" potrebujem vynasobit cislom, a vysledok ma byt co najpresnejsi.
teraz to vsetko funguje, ale zamrzne pri zlom kontakte pri vypinaci, alebo zapnuti vacsieho spotrebica.
skusal som verziu s rele, kde vstup natvrdo prepojim s minusom a ta funguje dobre, problem je ten ze ocakavam ze zopne priblizne 6500krat denne po 80ms. katalogovo by to malo ist aspon 5 rokov, ale prakticky tomu velmi neverim.
dalsi problem je ze chcem vyuzit este jeden vstup prerusenia kde bude za den asi 175000impulzov po 200us.
osciloskopom sa to samozrejme tiez da vidiet. ved staci mat volne polozene draty osciloskopu na stole a par krat zapnut napr. trafopajku.
galvanicke oddelenie je idealne, ale na procesore mega mam obsadene skoro vsetky vyvody + dva muxy po 16 kanalov, a jeden mux na i2c. uz je na to dost neskoro.
udaj z prerusenia posielam do xively, a vidim zez obcas mi vypocita nekonecno, a obcas zaporne cislo. to float este nejako poopravujem, ale "cas" potrebujem vynasobit cislom, a vysledok ma byt co najpresnejsi.
teraz to vsetko funguje, ale zamrzne pri zlom kontakte pri vypinaci, alebo zapnuti vacsieho spotrebica.
skusal som verziu s rele, kde vstup natvrdo prepojim s minusom a ta funguje dobre, problem je ten ze ocakavam ze zopne priblizne 6500krat denne po 80ms. katalogovo by to malo ist aspon 5 rokov, ale prakticky tomu velmi neverim.
dalsi problem je ze chcem vyuzit este jeden vstup prerusenia kde bude za den asi 175000impulzov po 200us.
osciloskopom sa to samozrejme tiez da vidiet. ved staci mat volne polozene draty osciloskopu na stole a par krat zapnut napr. trafopajku.
0
Re: Externé prerušenie
To je síce možné, ale s tvojím problémom to nijako nesúvisí. Povedz, čo uvidíš, keď pripojíš osciloskop normálnou sondou na ten odpor 2 ohmy.osciloskopom sa to samozrejme tiez da vidiet. ved staci mat volne polozene draty osciloskopu na stole a par krat zapnut napr. trafopajku.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok