Salve ragazzi! Vi espongo il problema:
Ho un pic con un ingresso analogico e molti digitali. Dovrei collegare ad esso 8 segnali analogici, come faccio? uso un mux a
8 ingressi direte voi, ok! Usiamo il mux a 8 ingressi, ma come si usa? :) Io ho capito che i segnali analogici devono andare all'ingresso del mux, poi da esso esce un'uscita anche essa analogica e 3 digitali. Collego l'uscita analogica del mux al piedino di ingresso analogico del pic e le tre uscite digitali del mux a 3 piedini di ingresso digitale. OK?Poi viene la parte tozza: il software del pic! Se volessi ad esempio sapere che valore ha la terza entrata? come devo fare a livello di software? In particolare mi servirebbe un algoritmo che tiene sotto controllo tutte e 8 le entrate (che dovrebbero rimanere costantemente basse) appena una di esse sale sopra una certa soglia dovrebbe accorgersi e mandare un segnale, poi nonappena questa torna bassa come era prima dovrebbe rimandare un altro segnale. Il diagramma a blocchi sarebbe:
1) controlla che tutte le entrate siano basse 2) se un'entrata si alza manda un determinato segnale (in funzione di quale e' l'entrata che si e' alzata) 3) quando l'entrata si riabbassa manda un altro segnale (smpre in funzione dell'entrata) 4) torna a 1Nel caso di una sola entrata (senza usare il mux quindi) le cose son piu' facili e in C il programmino ha questo aspetto:
void main() { int value=0; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); set_adc_channel(0); while (TRUE) { while (value128) {value=read_adc();} } }
Come posso generalizzare la cosa con 8 entrate muxate? Grazie
Mic