IPB

Benvenuto Visitatore ( Log In | Registrati )

Registrati per comunicare con gli altri e per accedere a tutte le altre funzionalità del sito!
Per qualsiasi info scrivi a staff [AT] ferraraforum [PUNTO] it.


NOTA Il forum è offline ormai da parecchi anni, rimane online solo per archivio. Per informazioni contattare guidopotena@gmail.com

> [ing. Informazione] - Ing. E Tecnologia Dei Sist. Di Controllo, con il prof. Bonfè
Ale83
messaggio 4 May 2007 - 12:07
Messaggio #1


Magister Equitum
Gruppo icone

Gruppo: Utente
Messaggi: 1051
Iscritto il: 30 October 2005
Età: 41
Da: Ferrara
Utente Nr.: 381



Ciao, per il mese prossimo (diciamo a cavallo tra maggio e giugno) vorrei preparare l'esame di Bonfè, Ingegneria e Tecnologia dei Sistemi di Controllo. C'è qualcuno che ha in programma di darlo? In particolare, potendo sostituire una buona fetta di teoria con una tesina/progettino a scelta da un elenco di temi proposti, qualcuno sarebbe interessato? C'è la possibilità di fare la tesina in coppia, per questo chiedo (IMG:http://www.ferraraforum.it/style_emoticons/default/icon_smile.gif)

Link al sito ufficiale del corso.
Go to the top of the page
+Quote Post
 
Start new topic
Risposte
Ale83
messaggio 30 Nov 2007 - 17:40
Messaggio #2


Magister Equitum
Gruppo icone

Gruppo: Utente
Messaggi: 1051
Iscritto il: 30 October 2005
Età: 41
Da: Ferrara
Utente Nr.: 381



CITAZIONE (axettone @ 30 Nov 2007 - 16:44) *
Domanda preliminare prima di scendere nel tecnico: non è che da qualche parte si fa paciugo tra gradi Fahrenheit e Celsius?
x quanto riguarda uart: non ho mai usato quelle librerie, ma di solito quelle porte sono bufferizzate, quindi per leggere dovresti fare un while() che verifichi che il carattere non sia un terminatore ('\0', EOF..).
Spero di non aver detto delle castronerie eccessive...


Con variabili e calcoli opportuni, mappo correttamente la tensione in gradi C, seguendo pari pari le caratteristiche del datasheet. Finchè non intervengo sui sensori, dà anche dei risultati giusti o cmq consistenti (es.: dice 27 gradi quando in lab ce ne sono 25-26).

Per la lettura, pensavo proprio a un
CODICE
while ( (c=Uartgetc()) =! '\0' ) {//istruzioni}
però ora non posso provarlo, la scheda è in lab e posso lavorarci solo lì...


CITAZIONE (graograman @ 30 Nov 2007 - 16:47) *
probabilmente l'accoppiamento sensore luce e temp è dovuto alle dita


Magari fosse così semplice... ho provato coprendo con un foglio di carta anzichè il dito, e non cambia assolutamente niente. Inoltre, la tensione (quindi quando i valori dei sensori sono ancora ANALOGICI) ai pin di uscita del sensore di temperatura non fluttua se uso il dito per oscurare il light sensor (o fluttua di pochissimo, ma nell'ordine della frazione di grado)

CITAZIONE
Un'altra ipotesi è che i cavi non siano schermati, se hai i sensori lontani, usa un accoppiamento cavo segnale-massa per pulirti da eventuali loop elettromagnetici.

I sensori sono vicinissimi, ma la tensione che ciascuno da in output è giusta (misurato in diverse condizioni col multimetro), e fatto la conversione in °C con calcoli a mano: è giusta, e comunque le due tensioni non si mostrano accoppiate.


Un attimo che cerco uartgetc e simili.

Intanto, grazie mille.

EDIT

Il registro ADCON0 configura alcune cose, in particolare dice al convertitore A/D quale ingresso analogico usare (ce ne sono 8 di ingressi, da AN0 a AN7)

I registri ADRESH e ADRESL sono entrambi a 8 bit.

Il convertitore A/D è a 10 bit e, per come l'ho impostato, mette i primi 8 bit in ADRESL e i rimanenti 2 bit occupano le due posizioni meno significative di ADRESH. Chiaro?

CODICE
while(1)
    {
        ADCON0 = 0b01000001;    //f_clock di ADC = 1/8 f_clock di sistema
                                //Ora imposto AN0 (da reimpostare con anche AN1!!)
                                //Convertitore abilitato
                                
        ADRESH = ADRESL = 0b00000000;
        
        /*CONVERSIONE DEL SEGNALE DI TEMPERATURA*/
        ADGO = 1;
        while(ADGO)        // Attesa della fine di ADC
            continue;

        temp = ADRESL + (ADRESH<<8);    // Salvo nella variabile temp
        /****************************************/
        
        ADRESH = ADRESL = 0b00000000;
        
        /*CONVERSIONE DEL SEGNALE DI LUMINOSITA'*/
        ADCON0 = 0b01001001;    //Switch dell'ingresso da AN0 a AN1
        
        ADGO = 1;        // Partenza ADC
        while(ADGO)        // Attesa della fine di ADC
            continue;

        light = ADRESL + (ADRESH<<8);    // Salvo nella variabile light
        /****************************************/
        
        // SEGUE L'OPPORTUNA CONVERSIONE DI TEMP E LIGHT IN GRADI E IRRADIANZA SECONDO LE INDICAZIONI DEI DATASHEET...


Ho anche provato a ripulire i registri ADRES dopo la conversione (con ADRESH = ADRESL = 0b00000000; ) per sicurezza, ma.... nada.

Mi pare proprio un problema di interferenza tra le linee del pic.

Messaggio modificato da Ale83 il 30 Nov 2007 - 17:42
Go to the top of the page
+Quote Post

Inserisci in questo messaggio
- Ale83   [ing. Informazione] - Ing. E Tecnologia Dei Sist. Di Controllo   4 May 2007 - 12:07
- - pasqui   Tu cosa avresti intenzione di fare? Fai bene a far...   14 May 2007 - 17:13
- - Ale83   Pensavo ad una tesina con labview: il motivo è che...   16 May 2007 - 11:21
- - pasqui   Si, potresti fare anke così per risparmiare un pò ...   16 May 2007 - 17:34
- - Ale83   Ah tu sei di automazione quindi... questo giustifi...   30 May 2007 - 21:48
- - pasqui   No, sono di Elettronica e Tlc!!!!...   31 May 2007 - 18:16
- - Ale83   Bene bene, alla fine ho fatto slittare ITSC come p...   30 Nov 2007 - 15:02
|- - pasqui   CITAZIONE (Ale83 @ 30 Nov 2007 - 15...   30 Nov 2007 - 21:39
- - axettone   Domanda preliminare prima di scendere nel tecnico:...   30 Nov 2007 - 16:44
- - graograman   probabilmente l'accoppiamento sensore luce e t...   30 Nov 2007 - 16:47
- - Ale83   CITAZIONE (axettone @ 30 Nov 2007 - 16...   30 Nov 2007 - 17:40
- - axettone   Non è che si è rotto il PIC? Scusa, non ho proprio...   30 Nov 2007 - 17:57
- - Ale83   Generatore di segnali attaccato alle linee di ingr...   30 Nov 2007 - 18:09
- - axettone   Scusa...ma facendo uno shift di 8 bit non cancelli...   30 Nov 2007 - 18:25
- - graograman   più che altro, sicuro che uno <<8 sia uno sh...   30 Nov 2007 - 20:07
- - Ale83   b<<n significa moltiplicare per 2^n un nume...   30 Nov 2007 - 21:07
- - Ale83   Ciao pasqui, e grazie anche a te per essere interv...   1 Dec 2007 - 16:30
|- - pasqui   CITAZIONE (Ale83 @ 1 Dec 2007 - 16:3...   1 Dec 2007 - 21:14
- - Ale83   Ma settando a 0000 i 4 bit meno significativi di A...   2 Dec 2007 - 16:39
|- - pasqui   CITAZIONE (Ale83 @ 2 Dec 2007 - 16:3...   8 Dec 2007 - 14:13
- - Ale83   Ok, ho capito come funziona! Grazie 1000.   11 Dec 2007 - 11:11


Reply to this topicStart new topic
2 utenti stanno leggendo questa discussione (2 visitatori e 0 utenti anonimi)
0 utenti:

 

Modalità di visualizzazione: Passa a: Normale · Passa a: Lineare · Outline




Versione Lo-Fi Oggi è il: 16 Jun 2024 - 17:59


Page top
Contattaci a staff@ferraraforum.it - visitatori dal 25 Marzo 2005 ( oggi)