Iniziamo dal fatto che non ho un oscilloscopio e ne sto aspettando uno non troppo eccellente ma che mi dovrebbe permettere di fare misurazioni di tensione in millivolt e anche qualche segnale in regime sinuosidale (il DSO150).
Dando una guardata al circuito sono presenti i sensori di giri del motore, il clock a 50Hz per la frequenza di rete, L'SSR per pilotare la ventola interna,il buzzer, e tutto il resto fa solo ON/OFF (Compressore, Valvola, ventola esterna e lo stepper per direzionare l'aria)... Il micro che ho deciso di usare è l'Atmega328 (che è sufficiente per il ruolo che deve svolgere)
i due segnali di clock (50Hz e Ventola interna) li ho collegati ai due interrupt (PD2 / PD3) e senza pensarci troppo ho collegato il fotoaccoppiatore della ventola interna al PD5 (OC0B) e il buzzer al PD6 (OC0A) (Timer 0).
Di solito ho usato il timer 1 per generare i segnali PWM, avendo a disposizione i registri ICR1 come TOP e OCR1A e OCR1B da impostare per il DutyCycle ( e questo devo dire che non è stato difficile).
Però avendo collegato il buzzer (che non è quello che suona dandoci solo la 5V, richiede un segnale PWM) al Timer 0, sono riuscito a farlo funzionare impostandolo così:
- Codice: Seleziona tutto
void beep(){
TCCR0A = 0x00;
TCCR0A = (1<<WGM00)|
(1<<WGM01)|
(1 << COM0B1);
TCCR0B = 0x00;
TCCR0B = (1 << WGM02)| (1<<CS00)|(1<<CS02);
OCR0A = 3;// beep
_delay_ms(200);
OCR0A = 0;// beep
}
Di funzionare funziona (e potrei dire va bene così) ma realmente non riesco a capire come impostare il timer per tagliare la sinusoide della tensione di rete
in teoria dovrei impostare il timer a 100Hz il dutycycle (variabile da 0 al valore di TOP) e farlo partire e riazzerandolo dall'interrupt della 50Hz... Non mi riesce...
Da notare nella funzione che ho scritto: per il buzzer sto usando il canale A, ma nel TCCR0A attivo il COM0B1 che dovrebbe essere per il canale B, ma se attivo quello del canale B il segnale PWM non si genera e il buzzer non suona (è una cosa al quanto strana)...
Potete indicarmi qual è il metodo corretto senza dover spostare i fili sul timer 1?

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)






pigreco]=π

