di ciao,
sono un ragazzo frequentante la 5 iti e per l'esame avevo in mente un progetto relativo al controllo di liminosità per grandi ambienti industriali e scolastici. Il progetto consiste nella regolazione automatica dell'illuminazione di ambienti chiusi,tramite l'utilizzo di un trasduttore di luminosità,sarei in grado di permettere l'accensione della luce quando essa è insufficiente per lavoro e studio e viceversa spegnerla nel caso in cui la luce in una stanza è soddisfacente e rispetti i valori in lux stabiliti dalla legge..Tutto ciò ovviamente è inutile se prima non verifichiamo la presenza di persone in una stanza, perché rischieremo di accendere automaticamente la luce anche quando non c'è nessuno, allora pensavo di inserirci altri due sensori( tipici dei volumetrici per antifurto a doppia tecnologia) che mi permettano di rilevare il calore e il movimento in una stanza e identificare, prima dell'eventuale accensione automatica delle luci, se effettivamente è presente qualcuno..e ovviamente nel momento in cui la persona esce dalla stanza di spegnere tutte le eventuali luci accese. Inoltre l'utente deve essere comunque in grado di forzare l'accensione delle luci manualmente con un semplice interruttore.
il progetto potrebbe essere esteso con la possibilità di parzializzare l'accensione delle luci, ovvero:
nel totale rilevare tre soglie di luminosità dell'ambiente differenti:
- buio notte - luce parziale - luce piena
a questo punto possiamo dire che per il buio si devono accendere tutte le luci della stanza, per la luce parziale si devono accendere una parte delle luci della stanza e per piena luce non si deve accendere niente.
tutta l'elaborazione di questa dati pensavo di realizzarla con un microcontrollore( del tipo pic16f84 e suoi fratelli )..
1)riuscireste a fornirmi qualche programma da compilare nel microcontrollore che sia in grado o che si avvicini a grosso mondo al mio progetto?
INTANTO VI RINGRAZIO DELLA VOLTRA DISPONIBILITà
controllo di luminosità finalizzato al risparmio energetico
Moderatore:
Paolino
5 messaggi
• Pagina 1 di 1
0
voti
Ciao e benvenuto nel forum,
tanto per cominciare il pic16f84A non va bene in quanto poco potente e non ha al proprio interno convertitori A/D al suo interno, sceglierei quindi un pic16f876A o 877A.
Dopodiche' occorrera' scegliere i tipi di sensori con i loro protocolli di comunicazione (I2C, SPI ecc..) dopodiche' io ti consiglio di scaricarti un compilatore free in funzione della tua esperienza di programmazione.
Se sei agli inizi, come suppongo, ti consiglio di leggerti i datasheet del PIC scelto e cominciare magari con un compilatore basic free (fino a 2K di memoria) che ha una notevole libreria e molti esempi.
Chiaramente, non puoi pensare che ti si faccia il progetto di sana pianta ma qualche aiuto si'.
Ti consiglio di cominciare per moduli.
Prima il controllo del sensore di luminosita', il volumetrico e poi la semplice logica di attivazione lampade.
Ciao
Antonio
tanto per cominciare il pic16f84A non va bene in quanto poco potente e non ha al proprio interno convertitori A/D al suo interno, sceglierei quindi un pic16f876A o 877A.
Dopodiche' occorrera' scegliere i tipi di sensori con i loro protocolli di comunicazione (I2C, SPI ecc..) dopodiche' io ti consiglio di scaricarti un compilatore free in funzione della tua esperienza di programmazione.
Se sei agli inizi, come suppongo, ti consiglio di leggerti i datasheet del PIC scelto e cominciare magari con un compilatore basic free (fino a 2K di memoria) che ha una notevole libreria e molti esempi.
Chiaramente, non puoi pensare che ti si faccia il progetto di sana pianta ma qualche aiuto si'.
Ti consiglio di cominciare per moduli.
Prima il controllo del sensore di luminosita', il volumetrico e poi la semplice logica di attivazione lampade.
Ciao
Antonio
0
voti
Ti voglio dare uno spunto.
Con questo codice gestisci una ldr (fotoresistenza) che ha un'uscita in tensione che andra' all'ingresso del convertitore A/D del PIC.
Ti ho commentato i passaggi ma ora devi andare avanti tu......
D'ora in poi posta solo qua e non in piu' parti di questo forum.
ciao
Antonio
Con questo codice gestisci una ldr (fotoresistenza) che ha un'uscita in tensione che andra' all'ingresso del convertitore A/D del PIC.
Ti ho commentato i passaggi ma ora devi andare avanti tu......
D'ora in poi posta solo qua e non in piu' parti di questo forum.
ciao
Antonio
- Codice: Seleziona tutto
program LDR
dim k as word
main:
ADCON0 = %11000001 'setto i registri
ADCON1 = %10001110
TRISB = %00000000 'porta B tutte uscite
TRISA = %00000001 'porta A 1 ingresso analogico
while true ' fino a che cio' che segue e' vero....
Delay_ms(100) 'ritardo
k = adc_read(0) 'procedura di conversione A/D
if k < 512 then ' se siamo sotto a un certo valore....
portb.1 = 1 ' LED acceso
else
portb.1 = 0 ' LED spento
end if
wend
end.
0
voti
ciao Antonio, intanto grazie per la tua disponibilità.
Volevo comunicarti che come compilatore uso MPLAB e con quello sono abbastanza pratico, quindi se hai qualcosa su di quello va bene... intanto io un abbozzo di schemi a blocchi li sto facendo che mi possano aiutare ad organizzare il mio programma.
Per il resto parlavamo di una fotoresistenza, ma non sarebbe meglio un fototransistor o fotodiodo che mi danno in uscita una corrente variabile, la quale la posso fare circolare su una resistenza fissa e in uscita ottengo una tensione?
Possiedo un volumetrico che rileva il calore in movimento, questo quando va in ''allarme'', mi da in uscita sulla morsettiera un contatto aperto, mentre quando è a riposo mi da un contatto chiuso NC. Quindi lo posso utilizzare come se fosse un pulsante di imput sul PIC giusto?
ciao, grazie ancora
Volevo comunicarti che come compilatore uso MPLAB e con quello sono abbastanza pratico, quindi se hai qualcosa su di quello va bene... intanto io un abbozzo di schemi a blocchi li sto facendo che mi possano aiutare ad organizzare il mio programma.
Per il resto parlavamo di una fotoresistenza, ma non sarebbe meglio un fototransistor o fotodiodo che mi danno in uscita una corrente variabile, la quale la posso fare circolare su una resistenza fissa e in uscita ottengo una tensione?
Possiedo un volumetrico che rileva il calore in movimento, questo quando va in ''allarme'', mi da in uscita sulla morsettiera un contatto aperto, mentre quando è a riposo mi da un contatto chiuso NC. Quindi lo posso utilizzare come se fosse un pulsante di imput sul PIC giusto?
ciao, grazie ancora
0
voti
Certo il PIC accetta livello alto +5V e livello basso a massa.
Attento a non superare i 5V.
Anche per cio' che riguarda il convertitore A/D interno al PIC non puoi superare i 5V pena ....butar via il PIC.
Il sw non cambia in quanto il conv. A/D lavora sempre su una tensione come hai detto tu.
MPLAB serve per programmare in assembler e generare il codice da caricare sul PIC.
Com Mikrobasic o altri compilatori ottieni direttamente il codice macchina e mplab non e' ncessario.
Ciao
Attento a non superare i 5V.
Anche per cio' che riguarda il convertitore A/D interno al PIC non puoi superare i 5V pena ....butar via il PIC.
Il sw non cambia in quanto il conv. A/D lavora sempre su una tensione come hai detto tu.
MPLAB serve per programmare in assembler e generare il codice da caricare sul PIC.
Com Mikrobasic o altri compilatori ottieni direttamente il codice macchina e mplab non e' ncessario.
Ciao
5 messaggi
• Pagina 1 di 1
Torna a Realizzazioni, interfacciamento e nozioni generali.
Chi c’è in linea
Visitano il forum: Nessuno e 4 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

