Se sei già registrato           oppure    

Orario: 29/04/2024 16:19:34  

 

Energia Alternativa ed Energia Fai Da Te > Motori termici, magnetici, elettrici, etc...

VISUALIZZA L'ALBUM

Pagine: (20)   1   2   3   4   5   6   7   8   9   10   [11]   12   13   14   15   16   17   18   19   20    (Ultimo Msg)


motore elettrico ad elevato rendimento, motore senza ferro negli avvolgimenti
FinePagina

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 23/5/2013,14:42

CITAZIONE (kekko.alchemi @ 23/5/2013, 14:57)
... per non far rompere i poveri transistor è quella ad emettitore comune...

Probabilmente ha transistor che gli tengono...altrimenti li avrebbe già rotti dopo alcuni secondi.

CITAZIONE (qqcreafis @ 23/5/2013, 15:07)
iI nuovo ponte con igbt che voglio far fare al giovane verrà in questa configurazione ? (conosco pochissimo gli igbt)

kekko ti ha già postato circuito e schema di come montare quelli che ti ha dato lui.



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 23/5/2013,14:58

CITAZIONE (qqcreafis @ 23/5/2013, 14:47)
veramente ho introdotto il gruppo di 4 pin al posto di settaggi unici o doppi abbastanza casuali nel programma di altri

Bè ...allora compliementi! Cosa fanno da te gli informatici...se la tirano? faccine/laugh.gif



CITAZIONE
...comunque come funzione il prescaler (devo veramente capire come funziona il programma, in realtà quelle routine


cosa vuol dire di preciso

TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

//OCR1A = 0x7a12; // compare match register
OCR1A = 0x0007; //32 in esadecimale
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt


e poi

ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine

cosa significa di preciso?

vediamo un pochino di spiegare gli interrupt, il timer ed il prescaler...anche se si conosce...ma solo per divulgare qualche info di base.
Allora gli Interrupt, cioè le interruzioni, avvengono quando si verifica un certo evento.
A questi eventi si può associare una funzione ...e indipendentemente da quello che sta combinando il processore, se scatta l'evento, si interrompe tutto e si esegue la funzione in questione, poi riprende da dove aveva lasciato.
Ora il tuo programma può essere suddiviso in 3 blocchi
1.Setup (viene eseguito solo una volta all'inizio all'accensione)
2.Loop infinito ( gestioni pulsanti che modificano i tempi (dovresti commentare l'apertura della seriale))
3.ISR (Funzione di interrupt chiamata sull'overflow del counter)

Quasi tutti i processori ( non solo il tuo Ardxxxx non riesco a pronunciarlo faccine/biggrin.gif ) hanno dei contatori i quali vengono incrementati con i colpi di clock. Questi contatori quando arrivano all'overflow ( cioè al massimo numero consentito) fanno scattare degli interrupt (sempre se abilitati). Il prescaler non è altro che un divisore...cioè divide i colpi di clock provenienti dal quarzo/oscillatore. Questo serve per eseguire più lentamente questa interruzione. Quindi , dal tuo codice abiliti l'interrupt sul contatore e quando avviene l'overflow questo ti chiama la ISR. Poi tutto ricomincia ....quindi una volta settato il divisore (prescaler) arriverà a tempi precisi l'interruzione la quale ti la chiamata la ISR....e tu con la variabile CNT effettui una ulteriore gestione dei tempi...con periodo (T) e PW ( larghezza impulso). faccine/smile.gif
mi sono spiegato?




Modificato da NonSoloBolleDiAcqua - 23/5/2013, 17:34


---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 23/5/2013,18:22

CITAZIONE
...se la tirano? faccine/laugh.gif

faccine/laugh.gif

vabbe il giovane va guidato...

CITAZIONE
Ardxxxx non riesco a pronunciarlo faccine/biggrin.gif

faccine/biggrin.gif capisco... suvvia secondo mè si può fare paro paro con il pptea, ma loro hanno quello


CITAZIONE
mi sono spiegato?

OK




Modificato da qqcreafis - 23/5/2013, 19:54


---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 23/5/2013,20:41

CITAZIONE
Probabilmente ha transistor che gli tengono...altrimenti li avrebbe già rotti dopo alcuni secondi.

per chi prova l'inseguitore con darlington con uscita emettitore avrà dei grossi problemi se non metterà un condensatore ceramico tra il collettore e la base de darlington direttamente saldato sul transistor (tra il collettore e la base del pilota ma se è fatto con componenti discreti ed il finale è lontano direttamente tra collettore e base dei tr finali). Memore di numerosi BDW51 distrutti in gioventù ho applicato il trucco.

La capacità fa una controreazione negativa ed impedisce lautoscillazione e quindi la morte dei finali in pochi decimi di secondi

i fili hanno induttanza , c2 capacità parassita rimanda in fase nell'emettitore e quindi il finale diventa un oscillatore, il rimedio è C


la giunzione ha capacità C1 quindi il finale non si spegne rapidamente il rimedio è mettere R per scaricare rapidamente la base

Immagine Allegata: rimedi

http://www.energialternativa.info/Public/NewForum/ForumEA/4/8/1/6/5/6/7/1369337838.png




Modificato da qqcreafis - 24/5/2013, 15:04


---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 23/5/2013,21:40

CITAZIONE (qqcreafis @ 23/5/2013, 19:22)
CITAZIONE
mi sono spiegato?

OK

Bene, ma non è tutto perchè ci sono un'altro paio di cosette che fa il tuo codice, esattamente in quelle linee che cerchi spiegazioni...le vediamo con calma domani.



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

kekko.alchemi

Avatar
GigaWatt


Gruppo:Utente
Messaggi:5226

Stato:



Inviato il: 23/5/2013,22:21

CITAZIONE (qqcreafis @ 23/5/2013, 15:07)
CITAZIONE
soluzione che devi utilizzare per non far rompere i poveri transistor è quella ad emettitore comune, cioè questa:

sisi mi avevano detto proprio così, ma l'avevo già saldato , poi se funziona con il nuovo soft lo modifico ( e rimodifico il software). iI nuovo ponte con igbt che voglio far fare al giovane verrà in questa configurazione ? (conosco pochissimo gli igbt)

Più o meno... ma verrà con moduli di solo canale N... Il circuito sta qualche pagina indietro. Monti i driver, qualche componente di contorno, gli IGBT e il gioco è fatto. faccine/smile.gif



---------------
L'universo è dominato dagli estremi, l'infinitamente grande e l'infinitamente piccolo.
Ma l'equilibrio è ciò che plasma la materia di cui siamo fatti.
by kekko

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 24/5/2013,14:00

CITAZIONE
le vediamo con calma domani.

bene è molto importante che io riesca capire in dettaglio cosa fa quel software



---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 24/5/2013,14:02

CITAZIONE
cosa significa di preciso?

Eccoci pronti. Capito il concetto dell'interrupt...c'è una modalità di funzionamento che avviene a livello HW, cioè può essere settato un valore (OCR1A) che quando il timer arriva a quel valore fa scattare l'interrupt. A cosa serve questa cosa se già c'è il prescaler ( cioè il divisore)?Con il prescaler andiamo sempre al raddoppio...se vogliamo avere un temmpo preciso ...settando un valore e cominciando a contare da zero ...otteniamo un tempo intermedio del prescaler...cioè quando il timer arriva al valore OCR1A. Quindi la coppia Prescaler-OCR1A permette di ottenere un qualsiasi lasso tempo.

CITAZIONE
OCR1A = 0x0007;

Mette il valore da comparare a 7.

CITAZIONE
TCCR1B |= (1 << WGM12); // CTC mode

Abilita il Comparatore


CITAZIONE
TCCR1B |= (1 << CS12); // 256 prescaler

Setta il divisore a 256, cioè ogni 256 colpi di clock ...viene incrementato di 1 il timer.
( vedere settaggio bit in foto allegata)

CITAZIONE
TIMSK1 |= (1 << OCIE1A)

Abilita l'interrupt sul comparatore.
faccine/w00t.gif
Dovrei aver detto tutto dicendo solo un numero ridotto di fesserie. faccine/biggrin.gif

Immagine Allegata: PrescalerArduino

http://www.energialternativa.info/Public/NewForum/ForumEA/1/6/5/3/1/5/7/1369400569.jpg




---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 24/5/2013,16:50

quindi (dimmi se ho capito) dividendo il clock /256 e poi /7 ottengo una base dei tempi .

Ad ogni "tempo" l'interrupt scatta e richiama ISR che svolge la sequenza dei case (che forma l'onda a secondo dei valori di cmp ) alla fine il contatore fa un cmp++ ed è eventualmente resettato a 0



---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 24/5/2013,18:26

Esattamente!

Spingiamo sull'acceleratore e (purtroppo) andiamo in solitaria.Facciamo i calcoli della serva per vedere se a livello teorico torna la prova pratica fatta da Elettro.

Ipotizziamo che tu abbia un quarzo da 16 MHz ( in genere ARD faccine/wacko.gif usa quello...ma tu usi sicuramente questo perchè con quel quarzo i conti tornano....hahahahaha faccine/laugh.gif )

T = 1 / f = 1 / 16 MHz = 1 / 16*10E6 Hz = 16*10E-6 s= 6.25E-8 s PERIODO

Cioè , dopo un secondo il timer ha effettuato 16 milioni di incrementi...ma il timer (quello che usi tu si chiama TIMER1) ha una 'risoluzione' di 16 bit (0-65535)....quindi dopo 4 ms ( millisecondi ) andrà in overflow.

(PAR-Potresti chiamare la funzione ISR(TIMER1_OVF_vect) abilitata dalla TIMSK1 = (1 << TOIE1) per trappare l'evento di overflow...ma tu ne chiami un'altra-ENTESI).


Nel tuo codice setti il prescaler a 256 quindi avviene un incremento del timer (TIC) ogni
TIC= 1 / (16E6/256) -> 16us (microsecondi)

Avverrà quindi un overflow ogni 1.04 S ( 16us*65535).

Lento...estremamente troppo lento per i tuoi scopi...ma il codice setta il comparatore a 7...quindi intercetti l'evento che chiama la ISR(TIMER1_COMPA_vect) (per via dell'istruzione TIMSK1 |= (1 << OCIE1A) ) ogni 7 Tic, cioè ogni 112 us (7*16us).

Ora all'interno della funzione incrementi Cmp con T=1000 (modificabile) , cioè 0.11 S di periodo (default)...con un doppio 'dentino' di 5 (modificabile) cioè con un periodo di 5*112 us= 0.5 ms (default) .

Quindi più o meno i conti tornano...cmq questa è la musica...le parole le lasciamo alla pratica!
Ciao
Bolle



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 24/5/2013,20:22

allora setto a 10000 così vedo i led lampeggiare (che ci ho messo), sempre che riesca a saldare il tutto per via del tempo



---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 24/5/2013,20:49

Devi alzare anche PW...cioè vero che il periodo sale ad 1 secondo ma PW (dentino) rimane sempre sul mezzo millisecondo...ce la fa l'occhio a vedere accendere i due led?



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

ElettroshockNow

Avatar
GigaWatt


Gruppo:Utente
Messaggi:4656

Stato:



Inviato il: 25/5/2013,07:21

faccine/ohmy.gif faccine/ohmy.gif faccine/ohmy.gif Ho Timore faccine/biggrin.gif
Troppo forti .... state riuscendo a far stringere le mani tra la teoria e la pratica..... faccine/alien.gif

 

NonSoloBolleDiAcqua

Avatar
PetaWatt


Gruppo:AMMINISTRATORE
Messaggi:13786

Stato:



Inviato il: 25/5/2013,18:12

Elettro,
ricontrolla, se puoi, tutto quello che ho scritto...perchè in verità...non ho mai preso in mano un ARD faccine/wacko.gif



---------------
Chi sa raccontare bene le bugie ha la verità in pugno (by PinoTux).
Un risultato se non è ripetibile non esiste (by qqcreafis).

 

qqcreafis

Avatar
PetaWatt


Gruppo:Utente
Messaggi:10029

Stato:



Inviato il: 25/5/2013,20:41

quarzo da 16 MHz , quindi "gli è una bella lumachina"


comunque ora funziona abbastanza bene ho saldato il driver ci ho messo i led

//#define ledPin 13
#define enablePin 1

#define Pin1 2 // Pin 1 ACCENDE BASSO SINISTRA H SE 0
#define Pin2 3 // Pin 2 ACCENDE ALTO SINISTRA H SE 1
#define Pin3 4 // Pin 3 ACCENDE BASSO DESTRA H SE 0
#define Pin4 5 // Pin 4 ACCENDE ALTO DESTRA H SE 1

// Pin 1 ACCENDE BASSO SINISTRA H SE 0
// Pin 2 ACCENDE ALTO SINISTRA H SE 1
// Pin 3 ACCENDE BASSO DESTRA H SE 0
// Pin 4 ACCENDE ALTO DESTRA H SE 1


//#define switchPin 2
//#define motorPin 3

int Cmp = 0;
int T = 20000; // periodo del treno di impulsi
int passo = T/100;

int Status = 0; //variaibli di stati
int Pw = T/10; //Ampiezza dell'impulso

int contatore = 0;

#define puls1 8
#define puls2 9
#define puls3 10
#define puls4 11

void setup()
{
pinMode(puls1, INPUT);
pinMode(puls2, INPUT);
pinMode(puls3, INPUT);
pinMode(puls4, INPUT);

// set all the other pins you're using as outputs:

pinMode(Pin1, OUTPUT);
pinMode(Pin2, OUTPUT);
pinMode(Pin3, OUTPUT);
pinMode(Pin4, OUTPUT);

//pinMode(motorPin, OUTPUT);

pinMode(enablePin, OUTPUT);

digitalWrite(puls1, HIGH);//???
digitalWrite(puls2, HIGH);//
digitalWrite(puls3, HIGH);//INUTILI??
digitalWrite(puls4, HIGH);//

digitalWrite(enablePin, HIGH);
// initialize timer1
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;

//OCR1A = 0x7a12; // compare match register

OCR1A = 0x0007; //32 in esadecimale
TCCR1B |= (1 << WGM12); // CTC mode
TCCR1B |= (1 << CS12); // 256 prescaler
TIMSK1 |= (1 << OCIE1A); // enable timer compare interrupt
interrupts(); // enable all interrupts
Serial.begin(9600);

}// finesetup

ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
{
switch(Status)
{
case 0:
{


// Pin 1 ACCENDE BASSO SINISTRA H SE 0
// Pin 2 ACCENDE ALTO SINISTRA H SE 1
// Pin 3 ACCENDE BASSO DESTRA H SE 0
// Pin 4 ACCENDE ALTO DESTRA H SE 1


//digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0
//digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0
//digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1
//digitalWrite(Pin4, HIGH); // ACCENDE ALTO DESTRA H SE 1
digitalWrite(Pin1, HIGH); // ACCENDE BASSO SINISTRA H SE 0
digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0
digitalWrite(Pin3, LOW); // SPEGNE BASSO DESTRA H SE 1
digitalWrite(Pin4,LOW); // ACCENDE ALTO DESTRA H SE 1


Status = 1;
}break;

case 1:
{
if(Cmp >= Pw)
{

/*digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 RIMANE A MASSA
digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0
digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1
digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0 */
digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 RIMANE A MASSA
digitalWrite(Pin2, HIGH); // SPEGNE ALTO SINISTRA H SE 0
digitalWrite(Pin3, LOW); // SPEGNE BASSO DESTRA H SE 1
digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0




Status = 2;
}
}break;

case 2:
{
if(Cmp>=T/2)
{

/*digitalWrite(Pin1, HIGH); // SPEGNE BASSO SINISTRA H SE 0 RIMANE A MASSA
digitalWrite(Pin2, HIGH); // ACCENDE ALTO SINISTRA H SE 1
digitalWrite(Pin3, LOW); // ACCENDE BASSO DESTRA H SE 1
digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0 */

digitalWrite(Pin1, LOW); // SPEGNE BASSO SINISTRA H SE 0 RIMANE A MASSA
digitalWrite(Pin2, LOW); // ACCENDE ALTO SINISTRA H SE 1
digitalWrite(Pin3, HIGH); // ACCENDE BASSO DESTRA H SE 1
digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0




//digitalWrite(switchPin, HIGH); // toggle LED pin
Status = 3;
}
}break;

case 3:
{
if(Cmp>=(T/2+Pw))
{



/*digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0
digitalWrite(Pin3, HIGH); // SPEGNE BASSO DESTRA H SE 1
digitalWrite(Pin4, LOW); //sPEGNE ALTO DESTRA H SE 0

digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 E RIMANE A MASSA */
digitalWrite(Pin2, LOW); // SPEGNE ALTO SINISTRA H SE 0
digitalWrite(Pin3, LOW); // SPEGNE BASSO DESTRA H SE 1
digitalWrite(Pin4, HIGH); //sPEGNE ALTO DESTRA H SE 0

digitalWrite(Pin1, LOW); // ACCENDE BASSO SINISTRA H SE 0 E RIMANE A MASSA



//digitalWrite(switchPin, LOW);
Status = 4;
}
}break;

case 4:
{
if(Cmp>=T)
{
Cmp = 0;
Status = 0;
}
}break;//fine case4

} //fine switch

Cmp++;
}//fine ISR

void loop()
{


delay(100);
if(digitalRead(puls1) == LOW) //cambiamo ampiezza impulso
{Serial.write("p1";
Serial.write(passo);
if(Pw>100)
{
Pw= Pw-passo;
Serial.write("p1_pnt";
}
}
if(digitalRead(puls2) == LOW) //aumentiamo larghezza impulso
{
if(Pw<t/4-passo)


{
Pw=Pw+int(float(passo));
Serial.write(Pw);
}




//Serial.write("p2_pnt";
}
if(digitalRead(puls3) == LOW) //cambiamo periodo
{Serial.write("p3_pnt";

//if(T>Pw)

if(T>100)

{T=T-passo;

Pw = int(float(Pw)*(1-float(passo)/float(T)));
passo=int(float(T)/100);
}
}
if(digitalRead(puls4) == LOW) //aumentiamo periodo
{
if(T<30000)
{T=T+passo;
Serial.write("p4_pnt";
Pw=int(float(Pw)*(1+float(passo)/float(T)));

passo=int(float(T)/100);

}
}

}

dimenticavo il sw non è ottimizzato e poi faccio solo accendere un led per fase per vedere come funzionano le 4 fasi



---------------
ODE AD UNO STUDENTE MERITEVOLE (Sermone)
Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo !
In un mondo dove tutto SEMBRA uguale a tutto.
In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti.
In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”.
Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto.
Xyz ci da una SPERANZA.
Xyz non ha seguito le falsità che ci circondano.
Xyz si è impegnato ed è riuscito nel suo intento.

 
 InizioPagina
 

Pagine: (20)   1   2   3   4   5   6   7   8   9   10   [11]   12   13   14   15   16   17   18   19   20    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum