Externé prerušenie

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Pega
Stály člen
Stály člen
Príspevky: 192
Dátum registrácie: 28 Mar 2012, 08:52

Re: Externé prerušenie

Príspevok od používateľa Pega » 18 Dec 2014, 16:04

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.
0

Používateľov profilový obrázok
eurobastler
Ultimate člen
Ultimate člen
Príspevky: 3903
Dátum registrácie: 19 Apr 2009, 00:00
Bydlisko: BA
Vek: 35

Re: Externé prerušenie

Príspevok od používateľa eurobastler » 18 Dec 2014, 17:20

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?

Obrázok
0
Obrázok

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 18 Dec 2014, 18:56

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
0

Používateľov profilový obrázok
boraicho
Ultimate člen
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

Príspevok od používateľa boraicho » 18 Dec 2014, 19:06

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

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 18 Dec 2014, 19:47

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.
0

Používateľov profilový obrázok
eurobastler
Ultimate člen
Ultimate člen
Príspevky: 3903
Dátum registrácie: 19 Apr 2009, 00:00
Bydlisko: BA
Vek: 35

Re: Externé prerušenie

Príspevok od používateľa eurobastler » 18 Dec 2014, 20:11

Prečo nepoužiješ tienený kábel? :axe:
0
Obrázok

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 18 Dec 2014, 20:24

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

pin
Power user
Power user
Príspevky: 2370
Dátum registrácie: 09 Máj 2009, 00:00

Re: Externé prerušenie

Príspevok od používateľa pin » 18 Dec 2014, 20:44

Dobré by bolo pozrieť osciloskopom.
0

Používateľov profilový obrázok
eurobastler
Ultimate člen
Ultimate člen
Príspevky: 3903
Dátum registrácie: 19 Apr 2009, 00:00
Bydlisko: BA
Vek: 35

Re: Externé prerušenie

Príspevok od používateľa eurobastler » 18 Dec 2014, 20:47

A tienenie na oboch stranách pripájaš na zem?
0
Obrázok

peterple
Ultimate člen
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

Príspevok od používateľa peterple » 18 Dec 2014, 20:57

Pre začiatok to skús miesto paralelného rezistora na zem takto:
Obrázok

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í.

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: Externé prerušenie

Príspevok od používateľa xmilos » 19 Dec 2014, 07:09

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?
0

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 19 Dec 2014, 08:46

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...
0

rohy
Pokročilý člen
Pokročilý člen
Príspevky: 583
Dátum registrácie: 28 Feb 2008, 00:00
Bydlisko: PD
Vek: 55

Re: Externé prerušenie

Príspevok od používateľa rohy » 19 Dec 2014, 09:35

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...
0

Pega
Stály člen
Stály člen
Príspevky: 192
Dátum registrácie: 28 Mar 2012, 08:52

Re: Externé prerušenie

Príspevok od používateľa Pega » 19 Dec 2014, 10:16

skusam vsetko bez fotoodporu, a dlheho kablu.
je to to iste ako rezitor vacsi ako 2 ohmy do minusu.
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?
0

pin
Power user
Power user
Príspevky: 2370
Dátum registrácie: 09 Máj 2009, 00:00

Re: Externé prerušenie

Príspevok od používateľa pin » 19 Dec 2014, 10:30

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

Používateľov profilový obrázok
xmilos
Ultimate člen
Ultimate člen
Príspevky: 3671
Dátum registrácie: 04 Máj 2011, 00:00
Bydlisko: Povazie

Re: Externé prerušenie

Príspevok od používateľa xmilos » 19 Dec 2014, 10:51

Ukaz foto a kod.
0

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 19 Dec 2014, 15:34

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.
0

Používateľov profilový obrázok
budvar10
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1030
Dátum registrácie: 15 Dec 2014, 10:55
Bydlisko: Košice

Re: Externé prerušenie

Príspevok od používateľa budvar10 » 19 Dec 2014, 15:52

Č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.
0

ondrej78
Nový člen
Nový člen
Príspevky: 51
Dátum registrácie: 04 Jún 2010, 00:00

Re: Externé prerušenie

Príspevok od používateľa ondrej78 » 19 Dec 2014, 17:37

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.
0

pin
Power user
Power user
Príspevky: 2370
Dátum registrácie: 09 Máj 2009, 00:00

Re: Externé prerušenie

Príspevok od používateľa pin » 19 Dec 2014, 18:54

osciloskopom sa to samozrejme tiez da vidiet. ved staci mat volne polozene draty osciloskopu na stole a par krat zapnut napr. trafopajku.
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.
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok