Visualizza un messaggio singolo
Vecchio 03-05-2015, 01:18   #4
supermonte
Guppy
 
Registrato: May 2015
Città: strona
Acquariofilo: Marino
N° Acquari: 1
Età : 50
Messaggi: 131
Foto: 0 Albums: 0
Post "Grazie" / "Mi Piace"
Grazie (Dati):
Grazie (Ricev.):
Mi piace (Dati):
Mi piace (Ricev.):
Mentioned: 1 Post(s)
Feedback 0/0%

Annunci Mercatino: 0
CENTRALINA LUCI
Per progettare la centralina luci decido di utilizzare un ARDUINO UNO, un circuito basato su un processore Atmel con le seguenti caratteristiche:

6 uscite PWM
6 ingressi analogici
10 uscite digitali
1 seriale con UART programmabile
1 interfaccia I2C

le 6 uscite PWM verranno utilizzate per comandare i 6 canali di controllo dei led
2 uscite digitali verranno utilizzate per illuminare la vasca di quarantena e i filtri quando devo fare manutenzione
l'interfaccia I2C verrà programmata per fungere da SLAVE sul bus... (tutte le centraline saranno degli slave su indirizzi diversi comandate da un MASTER che verrà creato con un RASPBERRY 2 con un display touch screen
La porta seriale verrà utilizzata per pilotare un display seriale sul quale visualizzerò l'ora, lo stato del sistema e la potenza sui 6 canali
Un chip DS1307 verrà collegato su altre 2 uscite/ingressi digitali, questo chip non è altro che un orologio indipendente che può essere letto con il protocollo I2C.
Poichè sono pessimista oltre che Murphiano, le centraline devono essere in grado di funzionare anche in assenza di supervisione, perciò ho bisogno che la centrale luci sia in grado di leggere l'ora in I2c in mancanza del master, per cui dovrò avere 2 bus indipendenti, uno in cui l'arduino è un Master e legge l'ora dal DS1307 e un altro in cui l'arduino è uno SALAVE e viene comandato dal raspberry che può interrogare e ottenere l'ora dall'arduino per fornirla al resto del sistema.

Ho quindi montato una protoshield (una scheda millefori che si aggancia direttamente sull'arduino) alla quale ho saldato il chip orologio con la sua batteria, 6 led collegati alle 6 uscite pwm e ho iniziato a scrivere il programma...



ho collegato attraverso un bus I2C l'arduino al raspberry



e ho iniziato a scrivere in contemporanea il programma del controllore e quello del controllo luci.
Ho collegato un display seriale all'arduino per rendere completamente indipendente questa centralina.



ho scelto di non montare una tastiera, la programmazione della centralina avviene solo dal supervisore, ma il display permette di vedere cosa sta facendo anche se il controllore è off line

Ho programmato sul controllore una schermata principale dalla quale accedere al controllo luci, al controllo temperature, alla gestione del pH e dei flussi



Da li premendo sulla lampadina si accede al menu luci:



In questa schermata posso vedere lo stato del sistema, in particolare lo stato delle luci dell'acquario che può essere ON OFF o AUTO, lo stato della luce dei filtri che può essere ON e OFF e lo stato della luce della vasca di quarantena che può essere OFF ON o AUTO, premendo sulla relativa icona cambio lo stato sequenzialmente...

Quando il sistema è in automatico la luce sui vari canali viene regolata in base all'orario, una tabella editabile permette di variare la potenza a passi di mezz'ora, la potenza varia con continuità ogni minuto interpolando in modo lineare senza fare scatti nel modo più naturale possibile.
Per facilitare la comprensione del programma impostato è possibile visualizzare il grafico delle potenze:



inoltre se mi accorgo di aver creato una luce cromaticamente sbagliata posso variare percentualmente la potenza di ogni singolo canale con un correttore.

come ho detto la comunicazione tra controllore e centralina è in I2C, ho creato un protocollo di comunicazione dove il controllore regolarmente dice alla centralina luci lo stato che deve tenere, i correttori di potenza, la tabela oraria.. per gli appassionati di elettronica qui di seguito la schermata di comunicazione:

supermonte non è in linea   Rispondi quotando
 
Page generated in 0,15363 seconds with 14 queries