Passaggio per lo zero

Qualcuno ha affrontato questa operazione anche usando un micro tipo arduino? Giorgio

Reply to
Giorgio
Loading thread data ...

davvero non lo so.

--
The man who invented autocorrect is dead. 
May he roast in piss.
Reply to
Archaeopteryx

Ad esempio hai 2 segnali sinusoidali sfasati ma alla medesima freq. Dalla misura della differenza del passaggio delle tensioni allo zero con qualche calcolo puoi arrivare a misurare il loro sfasamento in gradi o rad..

Reply to
Giorgio

Ad esempio per agganciarti ai 50 Hz della 220Vac per pilotare un scr Che notoriamente, per parzializzare la potenza trasferita al carico, bisogna 'accendere' dopo aver atteso un certo tempo dal passaggio per lo

0V della 220
Reply to
RobertoA

Il 16/11/2019 19:24, RobertoA ha scritto:

Magari fosse per questo! avrei tempi larghi per poter lavorare tranquillamente. Mi servirebbe la fase di 2 segnali a circa 1KHz. Se dividiamo il periodo per 1000 diciamo che la risoluzione di cui ho bisogno necessita la misura di tempi di 1us (1MHz). Questo per mettere su un impedenzimetro che non sia il solito a ponte.

Reply to
Giorgio

Ora ricordo, mi pare di aver visto un problema simile nell'inserimento dei generatori idroelettrici (e suppongo

tutti in fase e solo allora si possono connettere. So che

il problema in topic gli somiglia, anzi credo siano affrontabili allo stesso modo. Forse :D

grazie a entrambi.

--
The man who invented autocorrect is dead. 
May he roast in piss.
Reply to
Archaeopteryx

"Giorgio" ha scritto nel messaggio news:qqpghk$1qii$ snipped-for-privacy@gioia.aioe.org...

periodo

misura

a 1 Khz anche Arduino Uno ce la fa. la risoluzione pero' e' 4 micro secondi piu' l'instabilita' della misura.

devi trasformare il tuo segnale analogico in onda quadra ed entrare sui pin dedicati agli interrupt. nelle 2 routine di interrupt memorizzi i 2 valori letti con micros() e poi nel loop() fai i calcoli.

Reply to
alfio

Giorgio ha scritto:

i

squadri il segnale di IN, lo applichi a 2 ingressi del uC,setti gli interrupt sui 2 ingressi, e quando "scatta" il primo fai partire il timer, che verr

arrestato quando scatta l'interrupt sul secondo ingresso. la lettura del timer ti da lo sfasamento tra le 2 F

Reply to
emilio

Il 16/11/2019 20:23, Archaeopteryx ha scritto:

L'ho visto anch'io quell'apparecchio, Arche.., in una fabbrica dove avevano due gruppi generatori e dovevano metterli in fase per poterli immettere tutti e due sulla linea. Questo molto tempo fa e ricordo che parlando con l'addetto tecnico mi raccontava che se sbagliavi immettendo le due tensioni fuori fase succedeva il finimondo. In pratica nella strumentazione, oltre al resto, c'erano due frequenzimetri tipo diapason contenuti nello stesso strumento che permettevano di stabilire il momento in cui accoppiarli. Parlo di gruppi giganteschi di oltre 1000 HP cadauno. Ciao

Reply to
Gab

Rispondo qui sotto a Archaeopteryx

mette in rete, viene tollerato solo un piccolo sfasamento tra il generatore e la rete, altrimenti la cosa diventa un corto...e

Quand'ero un giovane ingegnere dell'ufficio progetti mi mandavano anche a fare i collaudi turbina delle centrali termoelettriche. Potenza standard Enel =320MW (Megawatt), e ne ho visti di paralleli...e ne ho

e prodotto un incendio! Ed era una turbinetta piccola, solo 15MW, un giocattolino!

Reply to
ArchiPit

Il 16/11/2019 22:19, emilio ha scritto:

Mi sembra ragionevole e "rapido" specie usando il timer a 16 bit che permette un range + esteso di misura del delta t.

Reply to
Giorgio

tipo cosi':

  volatile unsigned long us_1,us_2;

void segnale_1 ( void ) { us_1 = micros(); interrupts(); detachInterrupt( digitalPinToInterrupt( 2 ) ); }

void segnale_2 ( void ) { us_2 = micros(); interrupts(); detachInterrupt( digitalPinToInterrupt( 3 ) ); }

long MisuraSfasamento ( void ) { us_1 = us_2 = 0; noInterrupts(); attachInterrupt( digitalPinToInterrupt( 2 ),segnale_1,RISING ); attachInterrupt( digitalPinToInterrupt( 3 ),segnale_2,RISING ); interrupts(); for( int t_max=100 ; !us_1 || !us_2 ; t_max-- ) { if( t_max ) delay( 10 ); else return 0; } return us_1-us_2; }

void setup() { }

void loop() { long us = MisuraSfasamento(); }

Reply to
alfio

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.