Vai al contenuto
PLC Forum


generatore onda quadra arduino (.)


kym

Messaggi consigliati

Quote

Cortocircuitando il piedino 9 con 1’11 e inserendo anche sul piedino 8 un trimmer di 1MΏ e una resistenza di 1KΏ, è possibile ottenere un’uscita quadra con duty cycle variabile. Agendo sul piedino 7 si modifica la durata del livello alto; agendo sul piedino 8 si modifica la durata di quello basso. In uscita si ottiene una forma d’onda impulsiva.

 

Link al commento
Condividi su altri siti


  • Risposte 55
  • Created
  • Ultima risposta

Top Posters In This Topic

  • kym

    19

  • Livio Orsini

    13

  • dott.cicala

    12

  • sx3me

    4

Un circuito simile lo puoi ottenere con il 555. Come ho scritto prima il duty Cycle si varia entro quasi tutta la gamma 0-100%, Poi per variare la frequenza devi agire sul gruppo RC. Avevo già fatto qualche cosa di simile se ritrovo la simulazione metto il circuito a disposizione.

Con arduino puoi, partendo da qualche decina di Hz, con passi discreti che raddoppiano di volta in volta la freqeunza, avere un PWM completo tra 1/255 e 254/255 di duty cycle. per provare i Leds è più che sufficiente e lo realizzi in pochi minuti .

Ad esempio se usci le uscite 3 o 11 Parti da una frequenza di 31250Hz che puoi dividere per 1, 8, 32, 64, 128, 256, 1024 ottenendo un frequenza minima di 30,51 Hz, poi 122 Hz, 244 Hz, etc,

Link al commento
Condividi su altri siti

Quote

Cortocircuitando il piedino 9 con 1’11 e inserendo anche sul piedino 8 un trimmer di 1MΏ e una resistenza di 1KΏ, è possibile ottenere un’uscita quadra con duty cycle variabile. Agendo sul piedino 7 si modifica la durata del livello alto; agendo sul piedino 8 si modifica la durata di quello basso. In uscita si ottiene una forma d’onda impulsiva.

 

http://www.electronics-diy.com/function-generator-kit-xr2206.php

 

Sarebbe da modificare questo in pratica, dici che ottengo un onda quadra con la modifica indipendente tra DC e FREQ ?

Link al commento
Condividi su altri siti

Come è indicato dallo schema, quel circuito è previsto per variare la sola frequenza, mantenendo il rapporto al 50%. Non so se apportando le modifiche suggerite le cose funzionano ancora decentemente.

Link al commento
Condividi su altri siti

l' XR2206 è un completo generatore di funzioni...Può essere considerato il fratello minore del MAX038.

Con l'opportuna componentistica esterna è possibile fare tutto. Modificare il duty cycle, l'offset, la simmetria....

Servono però un po' di componenti esterni.

Con un attiny85 o un pic, oltre al circuito di alimentazione, servono solo 2 potenziometri...per ottenere quanto richiesto inizialmente.

Link al commento
Condividi su altri siti

2 potenziometri, un alimentatore e ....... saper programmare  :-(  ......... da zero una cosa che pare essere un pò complicata.

 

Vorrei provare a fare quello con il display lcd a colori ma non ho nessuno dei componenti richiesti a parte l'arduino.... se poi li prendo e per qualche motivo non funziona come si dice ho perso tempo e denaro (2 mesi circa e 20 euro). Prenderli nelle vicinanze costa tanto quanto quello già fatto da amazon.

Link al commento
Condividi su altri siti

Se hai intenzione di comprare il generatore di funzione fatto con l'avr per variare il duty cycle dell onda quadra portesti mandare in uscita un onda tiangolare e poi compararla con una costante tramite un semplice circuito comparatore e potenziometro.

Link al commento
Condividi su altri siti

Quote

saper programmare 

Dalle prove che ho fatto or ora....non servono grandissime conoscenze. Tanto per capire quanto in basso potevo arrivare

 

2 potenziometri e un 12F1572  modificando 5 o 6 registri.....

 

dc46ef011fbc46cd0df003409f131811.jpg

Qui siama 50sa/s, talmente in basso che il dso non riesce ad esegire la quick measure

 

Salgo un po'

2f2d0ce78cbeffb78853496c98e05a4f.jpg

e modifico D

422516ad420a55c73ae813457f44a52c.jpg

b3f5c781f5d8da3b0e0323aeb35d7b41.jpg

 

Salgo di 3 ordini di grandezza

1dfc78c12433d70e69d6112846209e7d.jpg

 

Più in alto

df496cae025b09fca8a0f7c843f12270.jpg

 

Solo il pic e 2 potenziometri

371e42419a0c6649d593b09d0d94ed3c.JPG

 

E rimangono ancora risorse libere

 

6d00c65f7a69de7ec125e54d5983370c.jpg

 

Link al commento
Condividi su altri siti

Quote

Se hai intenzione di comprare il generatore di funzione fatto con l'avr per variare il duty cycle dell onda quadra portesti mandare in uscita un onda tiangolare e poi compararla con una costante tramite un semplice circuito comparatore e potenziometro.

 

Avevo già provato una soluzione simile dente di sega/quadra avevo trovato uno schema ma alla fine aveva dei buchi.

 

Dott. Cicala non si vede nemmeno una delle immagini.

Ma i comandi che hai usato nel 12F1572  sarebbero gli stessi per un altro PIC? cioè sai che il mio picstart plus non fa il pic che stai usando tu, ma magari con lo stesso programma che hai fatto tu funzionerebbe con qualche pic che posso programmare......  12F508 ?

Link al commento
Condividi su altri siti

Per fare il lavoro con i PIC, ma con sommo dispiacere di Stefano (:)) si può fare egualmente con Arduino, è necessario agire sul clock del contatore che fa il PWM. Invece di usare il clock interno derivato dal clock di macchina si genera un clock variabile usando un secondo timer/counter, l'uscita la si usa come clock del contatore di PWM. I 2 potenziometri letti da 2 A/D_C stabiliscono il duty cycle ed il valore di clock o frequenza di base per il PWM.

Quasi tutti i PIC ammettono questo tipo di configurazione, puoi usare anche il vecchio 12F876; ovviamente ci potrà essere qualche piccola variante sui registri.

Link al commento
Condividi su altri siti

Onestamente....l'avevo detto all'inizio.....Con un arduino da 3€.....il cui punto di forza è il basso costo e la facilità d'uso :whistling: 

gli unici vantaggi che può dare un micro, sono le dimensioni.

Il principio di funzionamento è identico, la sola differenza usando il 1572 è che ha 3 generatori pwm integrati a 16bit quindi il codice si limita a settare il prescaler, scegliere la sorgente del clock, modificare i registri relativi a duty cycle e periodo...e volendo anche la fase, oltre alla lettura delle due analogiche...in ogni caso il 1572 costa 0,7€ :P

 

Il 12F508 non integra i PWM  ma comunque sarebbe possibile usarlo scrivendo tutto quello che serve...più o meno come per arduino

Link al commento
Condividi su altri siti

Quote

scrivendo tutto quello che serve...più o meno come per arduino

Arduino 1 integra 6 canali PWM a 8 bits, che per variare la luminosità di un LED sono anche sovrabbondanti. L'unica casa che non trovi in biblioteca è il generatore di clock esterno per il contatore di PWM, bastan 2-3 righe di programma per farlo. (bisogna saperlo fare però).

poi quei 3€ sono almeno 10...;)

Link al commento
Condividi su altri siti

visto ora le immagini Dott. Cicala, che bella schedona .......... eheh....

Io ho fatto due prove con un arduino ed un programma, questo:    https://www.youtube.com/watch?v=HJpaUEPtrd0

Il codice è qui: http://7imix.github.io/one-phase-rectangle.ino

 

pin 9 uscita e A0 & A1  i due trimmer........

con il prescaler 1 funziona benissimo..... ma a 7khz .....

ho provato a modificare mettendo il 2 o 1 e 2 .... sono arrivato a 10 hertz ma la linearità fa schifo!!!

a 8 hertz si ferma ogni tanto (c'è un led collegato) salendo sembra di no, ma devo ogni volta modificare i prescaler.

 

Comunque non so se il problema è il listato (io sono tremendamente ignorante di arduino) o sono limiti di dell'atmega328 usato per fare questa "cosa"  ma variando con continuità la freq esampio con il prescaler 1 che parte da 7khz in su, si sposta pure il duty cycle ed in alcuni casi non è più usabile tra 1 e 100% ma solo i maniera molto più ristretta, in più modificando molto la frequenza con il trimmer si blocca tutto per qualche istante e riparte, ma lo fa in continuazione, resettando a livello hardware per un pò va bene poi lo fa di nuovo, lo vedo con l'oscilloscopio mi tira dei picchi a 10mhz e poi si ferma tutto a ciclo continuo fa così.

Link al commento
Condividi su altri siti

Duty cycle periodo e prescaler sono legati da una relazione. Quindi uno influenza l'altro, ma da firmware si corregge. Ovviamente quello che ho ottenuto io, cioè da circa 0,5Hz a 124KHz, non lo si può ottenere in una unica portata, sarebbe scomodo.

Per un range così ampio è necessario agire anche sul clock, non solo sul prescaler.

 

Succede anche che si blocchi il generatore pwm se non parametrizzato correttamente, proprio perchè il risultato delle due relazioni che legano periodo a duty cycle e che a grandi linee sono così

 

Periodo= (Periodo_Richiesto * prescaler)/ clock

 

D=D_richiesto/Periodo_Richiesto

 

non danno un risultato coerente

 

Il sorgente di arduino me lo sega l'antivirus.....:superlol:

Link al commento
Condividi su altri siti

Mi sa che alla fine mi compro il pickit3 ed un paio di 12F1572 :roflmao:

 

Ma dimmi, due potenziometri  e basta ci si riesce a fare 1Hz  ----> 10 kHz in un unica portata?

Come le cambi le portate? un dipswitch o ....?

Link al commento
Condividi su altri siti

1..10KHz ?

 

Sì si potrebbe fare, ma sarebbe una mezza porcata

 

Avresti un incremento di 10Hz per ogni count dell' AD. Basterebbe uno starnuto per far variare la frequenza di +/- 100Hz e come t'ho detto, se varia il periodo...varia anche il duty cycle.

Sarebbe meglio aggiungere un altro pot  o meglio, un commutatore con n resistenze, come si fa con arduino...(che costa poco ed è semplice :superlol:)*

e usarlo come moltiplicatore.

 

Prova a dare un'occhiata al datasheet...son solo 308 pagine....ma non serve leggerle tutte :smile:

 

alla fine sono 2 equazioni da soddisfare, la 22-1 e la 22-2

 

Ripeto,  io non ce l'ho e non posso quindi fare prove ma al 99,99% lo puoi fare anche con l' ATtiny85 e ovviamnete anche con.. (*)

Link al commento
Condividi su altri siti

Quindi come lo faresti?   un commutatore con X resistenze per avere diverse portate e poi due potenziometri uno per la frequenza ed uno per il duty?

 

clcxcon e clcxpol ?   ho visto a pagina 163  capitolo 21.1

 

ma non fa per me, complicato, tanto ......... per uno che inizia da zero e non ha mai programmato se non ritoccando qualche listato per cambiare qualche stupidata.....

 

sicuramente si potrà fare con l'attiny85 ..... o con arduino, ma temo sia più complicato, gli esempi che ho trovato non ne funziona bene uno....

voglio provare quello con il display a colori ma ho letto che qualcuno ha già avuto problemi con l'encoder....

 

Poi c'è una cosa che non mi convince: usare uno step-up per pilotare l'amp di un generatore è una buona idea? non crea disturbi?

Io lo voglio provare, curiosità ed è tutta scuola, ma lo vorrei fare con un trasformatore classico da cui poi prelevare 5V per l'atmel (non metterei un arduino ma un autonomo atmel o al limite un mini) e i 24V per l'amp.... tutto in uno scatolotto e via.

 

Ma temo che per oltre 1,5kHz ci sia da rimodificare un pò....

Link al commento
Condividi su altri siti

 //Pgm Timing vars
long previousMillis = ; // will store last time valuse measured
long interval = 100; // interval at which to Measure values (milliseconds)
unsigned long currentMillis = ;

//pwm vars
unsigned pwm1;       // Value read from A1 to give PWM duty cycle output in terms of 0-5V
unsigned pwm2;       // Value read from A2 to give PWM duty cycle output in terms of 0-5V
unsigned pwmSpan;

void setup(){

//Set up PWM
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);

// phase and frequency correct mode. NON-inverted mode
TCCR1A = _BV(COM1A1) | _BV(COM1B1) ;

//phase/frequency correct mode. SELECT THIS FOR INVERTED OUTPUTS.
// TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(COM1A0) | _BV(COM1B0) ;

// Select mode 8 and select divide by 8 on main clock.
TCCR1B = _BV(WGM13) | _BV(CS11);

Serial.begin(9600);
}

void loop(){
currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;

//Use for fixed frequency
//ICR1 = pwmSpan = 10; // 62 for 16.16 KHz // for ICR1 = 1000, frequency = 1kHz.

// Program that lets different values on A3 choose different values of frequency,
// e.g. 100,200,400,500,1k,2k,3k,4k,10k,etc in relation with a free input
// Pot at A3 Use to vary the frequency.

ICR1 = pwmSpan = map(analogRead(A0),,1023,1000,100);

//Set last two valuse in the above map command to set frequency range of Pot A3
//10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps),
//100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps)

pwm1 = analogRead(A1); // read duty from A1 for PWM 1
pwm2 = analogRead(A2); // read duty from A2 for PWM 2

pwm1 = map(pwm1,,1023,,pwmSpan); // map the duty cycle to the available steps
pwm2 = map(pwm2,,1023,,pwmSpan); //map the duty cycle to the available steps

OCR1A = pwm1; // set PWM pin 9
OCR1B = pwm2; // set PWM Pin 10

Serial.println("pwm1 = "+String(pwm1)+" pwm2 = "+String(pwm2)+" pwmSpan = "+String(pwmSpan));

//The following lines can be used in place of the four lines above the Serial.print line
//if Serial print not used: (or if you want to view the A0 and A2 pot outputs)
//OCR1A = map(pwm1,0,1023,0,pwmSpan); //set PWM pin 9
//OCR1B = map(pwm2,0,1023,0,pwmSpan); //set PWM Pin 10

}
}

 

Finalmente si inizia a concludere qualcosa.

Questo listato funziona, son diventato scemo a farlo andare perchè da dove l'ho copiato gli apici ed un paio di trattini - erano di un formato differente (2 ore per capire l'errore che dava in fase di compilazione, nemmeno in visual con atmelstudio l'avevo trovato).

 

L'ho provato e l'ho anche modificato, funziona, si settano i due estremi es. 1000-100 per 1kHz-10kHz  e via dicendo....

 

La cosa strana è che pur avendo due uscite e pur avendo due DC settabili il DC settato con A1 modifica l'uscita sul pin 9 e 10 come se fosse comandata, sarà mica che non ci ho messo nessun potenziometro? non credo.... domani provo meglio.

 

Quello che mi piacerebbe fare sono due cose:

 

1) andare sotto i 100Hz   cioè avere una soglia in più.....  non ho provato se basta mettere più di 10000; TIpo mettere 100000 (1Hz?) ?

 

2) avere la possibilità di selezionare 3 range di frequenza con un selettore  1-100 / 100-1000 / 1000-10000 Hertz   magari usando un ingresso a cui dare 3 valori resistivi che corrispondono ai 3 valori dei 3 fondo scala, si possono sostituire quei due valori con una variabile richiamabile tipo se analogread XX è minore di X usa variabile uno se maggiore di X ma minore di Y variabile due e se maggiore di X variabile tre .... o qualcosa del genere.

 

Non sarebbe male anche avere, visto che ci sono due settaggi per due DC .... due frequenze differenti indipendenti ognuna con il proprio DC ....

 

Ora vado a sognare nel letto, buonanotte :P

 

 

 

visto che a me servono due range di frequenza

Link al commento
Condividi su altri siti

Quote

Quindi uno influenza l'altro, ma da firmware si corregge.

 

Dipende da come lo fai.

Il PWM i mcro lo ottengono facendo contare in continuo un  contatore a 8 o 16 bits. Un registro di comparazione commuta un'uscita quando ilv alore del contatore è => di quello del registro.

Per esempio.

Se ho un contatore a 8 bits e carico il registo con valore di 150, per tutto il conteggio con valore <150, l'uscita è alta, da 151 a 255 l'uscita è bassa. Al 256 clock il contatore si azzera e riparte, l'uscita torna alta. Variando il valore di comparazione cambia il duty cycle, da qui la modulazione di PWM.

La frequenza di base è stabilita dal clok del contatore. Se voglio una frequenza di 1 kHz dovrò dare un clock di 256 kHz perchè il contatore conta da 0 a 255.

Normalemente si usa il clock interno del micro diviso da un prescaler fisso seguito da uno impostabile, che è la tecnica seguita da Kym.

Arduino prevede altre modalità particolari: fast PWM, PWM in fase in modo da avere sempre i segali di PWM che partono in fase.

Poi c'è una modalità poco nota, valida solo per il timer2 in cui si può modificare anche la frequenza di base con continuità. Io non ho mai avuto necessità di usarla quidi non lo mai provata.

 

Con il 12F876, per risolvere un determinato problema ho usato il modo PWM dando un clock esterno al contatore. Nel mio caso era derivato proprio da un oscillatore esterno perchè così era necessario. Però è possibile derivarlo dall'interno usando un altro timer come generatore di frequenza variabile dividenndo per n la frequenza del quarzo.

Link al commento
Condividi su altri siti

Sì, dipende da come lo si fa.

 

Nel caso che ho citato mi riferivo all'uso dei generatori pwm hardware dove periodo, fase, prescaler, duty cycle e clock di sistema sono legati da due relazioni specifiche.

Può essere una limitazione per alcuni versi, ma per altri, semplifica di molto il lavoro, specialmente ad un novizio, perché per ottenete il segnale che ci serve, basta scrivere il valore opportuno in alcuni registri.

Link al commento
Condividi su altri siti

Quote

1) andare sotto i 100Hz   cioè avere una soglia in più.....  non ho provato se basta mettere più di 10000; TIpo mettere 100000 (1Hz?) ?

 

mettere cosa e dove? Bisogna usare soggetto, predicato e complemento se si vuol essere compresi.

In un precedente messaggio avevo scritto:

" Ad esempio se usi le uscite 3 o 11 Parti da una frequenza di 31250Hz che puoi dividere per 1, 8, 32, 64, 128, 256, 1024 ottenendo un frequenza minima di 30,51 Hz, poi 122 Hz, 244 Hz, etc, " Questi sono i limiti con tier2, timer 1, quello che usi tu, è più veloce, perchè parte da 16MHz, invece che da 8MHz, ed ha 2 rapporti di divisione in meno (sto citando a memoria perchè dovrei andare a rivedermi la documentazione). Se parti con prescalere a 1024 dovresti avere una prequenza di PWM pari a 61,035 HZ

Link al commento
Condividi su altri siti

Livio, mi riferivo al listato che ho postato ieri notte. Nel campo ICR1  regoli il range.

 

ICR1 = pwmSpan = map(analogRead(A0),0,1023,1000,100);

 

//Set last two valuse in the above map command to set frequency range of Pot A3
//10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps),
//100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps)

 

Se metto 1000,100 negli ultimi due valori  ho un range tra 1kHz e 10kHz  etc.

Occhio che il listato non funziona così come incollato, mancano gli zeri.... non so perchè ho fatto copia incolla ed è venuto tutto sballato.

Livio per favore edita il messaggio e cancella il listato lo riporto qui nuovamente in formato testo classico:

 

 //Pgm Timing vars
long previousMillis = 0; // will store last time valuse measured
long interval = 100; // interval at which to Measure values (milliseconds)
unsigned long currentMillis = 0;

//pwm vars
unsigned pwm1;       // Value read from A1 to give PWM duty cycle output in terms of 0-5V
unsigned pwm2;       // Value read from A2 to give PWM duty cycle output in terms of 0-5V
unsigned pwmSpan;

void setup(){

//Set up PWM
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);

// phase and frequency correct mode. NON-inverted mode
TCCR1A = _BV(COM1A1) | _BV(COM1B1) ;

//phase/frequency correct mode. SELECT THIS FOR INVERTED OUTPUTS.
// TCCR1A = _BV(COM1A1) | _BV(COM1B1) | _BV(COM1A0) | _BV(COM1B0) ;

// Select mode 8 and select divide by 8 on main clock.
TCCR1B = _BV(WGM13) | _BV(CS11);

Serial.begin(9600);
}

void loop(){
currentMillis = millis();
if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;

//Use for fixed frequency
//ICR1 = pwmSpan = 10; // 62 for 16.16 KHz // for ICR1 = 1000, frequency = 1kHz.

// Program that lets different values on A3 choose different values of frequency,
// e.g. 100,200,400,500,1k,2k,3k,4k,10k,etc in relation with a free input
// Pot at A3 Use to vary the frequency.

ICR1 = pwmSpan = map(analogRead(A0),0,1023,1000,100);

//Set last two valuse in the above map command to set frequency range of Pot A3
//10000 = 100 Hz (10,000 PWM steps), 1000 = 1 kHz (1000 PWM Stemps),
//100 = 10 khz (100 PWM steps), 10 = 100khz (10 pwm steps)

pwm1 = analogRead(A1); // read duty from A1 for PWM 1
pwm2 = analogRead(A2); // read duty from A2 for PWM 2

pwm1 = map(pwm1,0,1023,0,pwmSpan); // map the duty cycle to the available steps
pwm2 = map(pwm2,0,1023,0,pwmSpan); //map the duty cycle to the available steps

OCR1A = pwm1; // set PWM pin 9
OCR1B = pwm2; // set PWM Pin 10

Serial.println("pwm1 = "+String(pwm1)+" pwm2 = "+String(pwm2)+" pwmSpan = "+String(pwmSpan));

//The following lines can be used in place of the four lines above the Serial.print line
//if Serial print not used: (or if you want to view the A0 and A2 pot outputs)
//OCR1A = map(pwm1,0,1023,0,pwmSpan); //set PWM pin 9
//OCR1B = map(pwm2,0,1023,0,pwmSpan); //set PWM Pin 10

}
}

 

 

Incollato come codice mi piaceva che manteneva l'impostazione come la vedo nell'ide ma ha tolto un sacco di zeri nelle linee.

Link al commento
Condividi su altri siti

con quello però vari solo il duty cycle. Quella è la scalatura perchè tu leggi un valore compreso tra 0 e 1023, mentre il duty lo regoli con un valore compreso tra 0 e 255. In pratica è come se dividessi la lettura dell'analogico per 4 (1024/256 = 4), che il rapporto che esiste tra 10 bits e 8 bits.

Puoi anche fare 2 shift a dx della lettura analogica ed ottieni la stessa cosa.

La fequenza la cambi agendo sul prescaler.

Link al commento
Condividi su altri siti

Allora, recapitoliamo che mi sa che stiamo facendo confusione.

Il programma che ho postato per ultimo fa:

 

con un potenziometro regola la frequenza

con altri due regola il DC su due canali diversi che hanno la stessa frequenza.

 

E' esattamente come volevo io, solo che devi scegliere un range tramite il ricaricamento del programma.

 

Ho provato che mettendo 65000,10000 (ho tra i 15Hz e i 100Hz)   sotto i 15 non ci va, magari è solo un fatto di minima resistenza tra le connessioni, in fondo ci sono ben 6 contatti precari a chiudere la catena tra massa e A0 dell'atmel.

 

Inserendo un range più elevato diventa ingestibile con un trimmer multigiro, figuriamoci con un potenziometro.

 

Ora avendo ben due scelte di duty cycle su due canali differenti..... mi chiedo la logica: a questo punto perchè non fare due canali con due frequenze differenti?

 

Il bello sarebbe rendere il tutto autonomo, poter cambiare i 4 range  0-100Hz / 100-1000Hz / 1kHz-10kHz / 10kHz-100kHz  con un commutatore (per farla semplice) mettendo delle variabili che cambino in funzione di alto/basso su qualche ingresso tipo interruttori e via dicendo.

 

 

Link al commento
Condividi su altri siti

  • Livio Orsini locked this discussione
Ospite
Questa discussione è chiusa alle risposte.

×
×
  • Crea nuovo/a...