Atmega328 - Invertire polarità

Buonasera, vorrei sapere se c'è modo di invertire la polarità dei pin digitali in output senza usare componenti esterni. Il microcontrollore in questione è l'Atmega328. Grazie.

Cosa intendi con "invertire la polarità" ? ? ? :o :o :o

Spiega cosa vuoi ottenere.

Guglielmo

Al posto di far uscire 5 volt, vorrei -5 volt, cioè una tensione negativa.

NO, non è possibile, devi aggiungere un hardware esterno ... e fai anche attenzione ... i pin del ATmega328P reggono al massimo -0.5V rispetto a GND.

Comunque ... sarebbe il caso [u]che ti studi[/u] il datasheet !!! :smiling_imp:

Guglielmo

Sicuramente approfondirò. Comunque -0.5 volt sono veramente pochi forse è il caso di guardare a qualche AVR più prestazionale.

No, non hai capito .. gli AVR NON lavorano con tensioni negative ... lavorano da 0 a +Vcc (... che tipicamente è 5V o meno) e ... non è che in uscita ti da -0.5V !

Se TU mandi su un pin in ingresso un valore inferiore ai -0.5V distruggi il chip ! In output gli AVR ti danno sempre da 0 a +Vcc.

Continuo ad insistere che, se vuoi capirci qualche cosa e non fare danni ... devi andare sul sito di Atmel, scaricarti di datasheet e [u]STUDIARE[/u] !

Guglielmo

Dico cosa volevo fare: volevo creare una corrente alternata, una sinusoide fra -5 volt e +5 volt, sfruttando solo il microcontrollore, senza usare circuiti esterni. Ho capito che non si può.

In ogni caso NON avresti mai potuto creare una sinusoide dato che ... l'ATmega328P NON ha dei DAC ... :smiling_imp:

Guglielmo

Potresti ottenere qualcosa di simile usando un'uscita PWM, con un'integratore che converta il PWM in una tensione proporzionale al duty-cycle, seguito da un'operazionale con doppia alimentazione che sposti l'offset dell'ingresso di mezza tensione, in modo da darti in uscita una pseudo-sinusoide con la massa come valore centrale ... ma di sicuro NON con il solo micro ...

Etem,
però dice chiaramente :

ultrasound91:
… volevo creare una corrente alternata, una sinusoide fra -5 volt e +5 volt, sfruttando solo il microcontrollore, senza usare circuiti esterni.

… quindi … nisba :wink:

Guglielmo

Prova allora con la Teensy 3.1 Ha un pin da cui puoi tirare fuori un segnale sinusoidale (ha un DAC interno), se non erro

Emmm ... Nid, la Teensy 3.1 monta una MCU MK20DX256VLH7 Cortex-M4 ... con le annesse e connesse difficoltà come ti allontani da ... un "Blink" :grin: :grin: :grin:

Guglielmo

ultrasound91: Sicuramente approfondirò. Comunque -0.5 volt sono veramente pochi forse è il caso di guardare a qualche AVR più prestazionale.

Visto che vuole passare ad un'altra MCU... :grin: Almeno la Teensy 3.1 usa un IDE e istruzioni Arduino-Like

Per ora rimango con quello che ho. Naturalmente voglio imparare a controllare circuiti in corrente alternata, quindi cercherò l'hardware esterno.

IDE e istruzioni Arduino-Like

Non c'è bisogno, programmo in C ad occhi chiusi.

ultrasound91: ... programmo in C ad occhi chiusi.

Ehm ... io quando li scrivo ad occhi chiusi, poi in genere i programmi non funzionano ...

(sto scherzando :P :D :D :D)

nid69ita: Prova allora con la Teensy 3.1 Ha un pin da cui puoi tirare fuori un segnale sinusoidale (ha un DAC interno), se non erro

Se è per questo anche la DUE ha 2 DAC integrati, non c'è bisogno di cambiare piattaforma. Ma resta il problema che sia la Teensy che la DUE non possono lavorare con tensioni negative per cui resta il problema che se non fa come dice Etem il problema non lo risolve.