Go Down

Topic: Prezzemolo! (Read 6076 times) previous topic - next topic

dalubar

Già...scaricando la tua versione in effetti si vede chiaramente che nell'immagine mancano, oltre alla stanghetta verticale che forma il "+",  diverse altre linee verticali (vedi connettori P1 e P2)... Scherzi della risoluzione JPG.

Posto la versione in PDF, cosi non dovrebbero esserci problemi.

Michele Menniti

Bene, grazie, io intanto ho rimosso la mia immagine, meglio evitare possibili errori...
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

amario57

Ho provato a compilare il tuo sketch per l'uso "crepuscolare" , e proverò con una simulazione l'uso.
Posta anche gli altri sketch, se vuoi, così tutti possono apportare eventuali miglioramenti o spunti per altri usi.
Ottimo lavoro

acik

#18
Apr 22, 2012, 11:51 am Last Edit: Apr 22, 2012, 01:20 pm by acik Reason: 1

@ acik: lo stesso vale per te, se ti va di condividere il tuo lavoro.


ATTENZIONE, QUESTO PROGETTO E' PERICOLOSO. SCONSIGLIO A CHIUNQUE DI REALIZZARLO: NON MI ASSUMO NESSUNA RESPONSABILITA' IN CASO DI DANNI A PERSONE O COSE.
Il mio progetto e' minimalissimo.
Ridotto tutto all' osso per farlo stare in una "scatola" dell' impianto elettrico.
La millefori che ho realizzato qualche setimana fa misura 3cm x 6cm.

Eccolo qui:





CIAO

.

leo72

@acik:
non è pericoloso ponticellare con fili di rami scoperti?   :smiley-sweat:

acik


@acik:
non è pericoloso ponticellare con fili di rami scoperti?   :smiley-sweat:


Tutto e' pericoloso in questo circuito.
La 220V la trovi ovunque.
Il circuito va isolato completamente prima di essere collegato alla 220V.

dalubar

*** SENSORE DI MOVIMENTO CREPUSCOLARE ***

E' la versione di prezzemolo attualmente in "servizio" a casa mia nella mia camera da letto...e funziona egregiamente :-)
Accende una luce al passaggio di qualcuno, ma solo se la luminosità ambientale è al di sotto di una certa soglia. Si possono impostare le soglie minima e massima per la fotoresistenza, la sensibilità del PIR e i tempi (due) rispettivamente per la durata dell'accensione dovuta al movimento e per l'accensione forzata tramite la pressione di un tasto.
La luce della lampada non interferisce con la fotoresistenza, in quanto durante l'accensione del carico essa viene disattivata.
E' previsto un tempo di 30secondi di "preriscaldamento" del PIR all'avvio per evitare accensioni casuali.
N.B. Il programma è "tarato" per la sensibilità del mio mini PIR 8100, ma credo non ci siano grossi problemi ad adattarlo ad altri modelli.


Michele Menniti

#22
Apr 22, 2012, 02:23 pm Last Edit: Apr 22, 2012, 02:24 pm by Michele Menniti Reason: 1


@acik:
non è pericoloso ponticellare con fili di rami scoperti?   :smiley-sweat:


Tutto e' pericoloso in questo circuito.
La 220V la trovi ovunque.
Il circuito va isolato completamente prima di essere collegato alla 220V.

azz, una trappola letale, perché non l'hai consigliato nel Topic schiatta-formiche?  :smiley-mr-green:  non per le formiche, ma per lui che passandoci di sopra avrebbe imparato ad evitare la zona e le formiche non le avrebbe viste più  :smiley-yell:

@ Leo: prima di arrivare a toccare quei fili avrai beccato la 220 in mille altri modi.

@ acik: ma anche nel tuo caso vanno rispettate fase e neutro o hai trovato degli ATmega328P-AS? $$
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72


@ Leo: prima di arrivare a toccare quei fili avrai beccato la 220 in mille altri modi.

La paura non è beccare la 220 ma far fare per caso corto con un qualcosa di metallico che mette in corto uno di quei fili con qualche altro componente.

Michele Menniti



@ Leo: prima di arrivare a toccare quei fili avrai beccato la 220 in mille altri modi.

La paura non è beccare la 220 ma far fare per caso corto con un qualcosa di metallico che mette in corto uno di quei fili con qualche altro componente.

sì, infatti non c'è componente che non sia sotto tensione, pensa a quel blocco di triac :smiley-eek-blue:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

dalubar

...e per completare l'esemplificazione degli sketch dedicati a prezzemolo:

**** RITARDO DI ACCENSIONE AL RIPRISTINO AC 230V ****
Indicato per apparecchiature (come motori, autoclavi, etc.) che potrebbero risentire degli sbalzi dovuti agli "assestamenti" di tensione durante un ripristino dell'energia elettrica dopo un blackout. Il ritardo è programmabile tramite dei jumper posti sugli ingressi.

Dato che mi ero scocciato di vedere sempre "millis()" piedi piedi, ho deciso che questa volta avrei usato un Timer...così, tanto per cambiare.

Code: [Select]

/*
* ** PREZZEMOLO ** APPLICAZIONE #3: RITARDO DI ACCENSIONE AL RIPRISTINO AC 230V
* ================================================================================
* Programma per generare un ritardo di n secondi prima dell'attivazione di un utilizzatore.
* Esempio tipico: attivazione di una POMPA con ritardo dopo un ripristino di corrente per evitare danneggiamenti.
* Hardware: nessuno. la posizione di jumper sulle porte determina i secondi di ritardo.
* Tempi:
*   JP2 | JP1 | JP0 |  Tempo = [valore] * SCALE_TIMER (2s)
*  --------------------------
*    0  |  0  |  0  |   1s
*    0  |  0  |  1  |   2s
*    0  |  1  |  0  |   4s
*    0  |  1  |  1  |   6s
*    1  |  0  |  0  |   8s
*    1  |  0  |  1  |   10s
*    1  |  1  |  0  |   12s
*    1  |  1  |  1  |   14s
* Senza jumper sarà impostato automaticamente il valore massimo
*/ 
#define LED     DDB3
#define TRIAC   DDB4
#define LED_TOGGLE    PORTB ^= (1 << DDB3)
#define JP0           0                    // fpin 5 (SENS1)
#define JP1           1                    // fpin 6 (SENS2)
#define JP2           2                    // fpin 7 (ANALOG1)
#define SCALE_TIMER 2000                   // costante di moltiplicazione del valore dei jumper in ms

unsigned volatile int tick;
unsigned volatile int delay_time;

void setup() { 

  cli();
  TCCR0A &= ~(1<<WGM00);                        // Timer0 in modalità CTC
  TCCR0A |= (1<<WGM01);
  TCCR0B &= ~(1<<WGM02); 
  TCCR0A &= ~((1<<COM0A1) | (1<<COM0A0));       // porta OC2A (PB2) in toggle mode (pin fisico 5)
  TCCR0B |= (1<<CS00)  | (1<<CS01);             // PRESCALER 64
  TCCR0B &= ~(1<<CS02);             
  OCR0A = 124;                                  // 1 ms (1000Hz)
  TIMSK |= (1<<OCIE0A);                         // attiva interrupt (TIM0_COMPA_vect)
 
  DDRB  |= (1<<LED) | (1<<TRIAC);               // PB3 e PB4 output (pin fisici 2, 3)
  PORTB |= (1<<TRIAC);                          // uscita triac HIGH (dopo il delay diventa LOW)
  DDRB &= ~((1<<DDB2) | (1<<DDB1) | (1<<DDB0)); // 3 input per la programmazione del delay (da 000 = 1s a 111 = 14s)
  digitalWrite(JP2, HIGH);                      // pull UP dei tre ingressi
  digitalWrite(JP1, HIGH);
  digitalWrite(JP0, HIGH);
 
  // programma valore del ritardo in base alla posizione binaria dei 3 ingressi (dip-switch)
  delay_time = (((byte)digitalRead(JP2)<<2) | ((byte)digitalRead(JP1)<<1) | ((byte)digitalRead(JP0)<<0)) * SCALE_TIMER;
  if (delay_time == 0) delay_time = 1000;      // se dip-switch 000 allora ritardo = 1 secondo
 
  sei();                                       // attiva interrupt (partenza timer)


/* Interrupt Service Routine (ISR) per CTC Match A */   
ISR(TIM0_COMPA_vect) {
  if (tick++ >= delay_time) {     // aspetta n secondi
    TCCR0B = 0;                   // ferma Timer (prescaler no clock)
    PORTB &= ~(1<<TRIAC);         // porta uscita triac a LOW per attivare il carico
  }
  else if (tick % 100 == 0)
          LED_TOGGLE;             // lampeggia LED con frequenza 5 Hz
}   
 
 
void loop() { 
  // loop vuoto



E con questo credo di aver condiviso tutto il "prezzemolo" che avevo in casa :-)
Non pubblicherò i programmini per ottenere "lampeggiatori" o "temporizzatori luce scala" perchè credo siano alla portata di chiunque.

E poi, in confidenza, non vedo l'ora di iniziare la sperimentazione con il componente LTSR 25-NP arrivato fresco fresco (http://media.digikey.com/pdf/Data%20Sheets/LEM%20USA%20PDFs/LTSR%2025-NP%20E.pdf) per tenere con precisione sotto controllo i consumi dell'impianto di casa, cercando di convincere un ATtiny84 a calcolare nel più breve tempo possibile la radice della media dei quadrati, per gli amici "RMS". Ma questa è un'altra storia...ops, un altro post.


cgs64

#26
Apr 22, 2012, 07:30 pm Last Edit: Apr 22, 2012, 07:43 pm by cgs64 Reason: 1
@dalubar: BRAVO, bel lavoretto, utile e semplice da realizzare, ma ..... la lista della spesa (elenco componenti) ?
Non l'ho vista io o non l'hai pubblicata  ?

@acik: Un BRAVO anche per Te, ma anche per Te......... la lista della spesa (elenco componenti) ?
(Nello schema pubblicato mancano alcuni valori, il tipo di IC, ...)

dalubar

@cgs64: non l'hai vista perchè non l'ho pubblicata...diciamo che trattandosi di pochi componenti, con il valore ben specificato nello schema, non ho ritenuto necessario pubblicare la lista, comunque se può essere utile...eccola:
Quote

C1 100nF
C4 1000uF elettrol. 16v
C5 1uF poliestere 600v
C6 100nF
D1 LED
D3 zener 5.1V_1/2W
D4 1N4007
D5 1N4007
IC1 ATTINY85-P
P1 Bornier2 (morsettiera)
P2 Bornier2 (morsettiera)
R1 10K
R2 330
R3 1K
R4 10K
R5 330
R6 100K 1W
R7 82 1/2W
R8 390 1/2W
R9 330 1/2W
R10 390 1/2W
Analog1 PIN_ARRAY_3X1
Sens1 PIN_ARRAY_3X1
Sens2 PIN_ARRAY_3X1
U2 MOC3063
U3 TRIAC BTA06 600V


Le sigle dei componenti possono non seguire una numerazione strettamente crescente.

acik


@ acik: ma anche nel tuo caso vanno rispettate fase e neutro o hai trovato degli ATmega328P-AS? $$

Io l' ho progettato cosi:
La morsettiera in alto a sinistra serve per i pulsanti 220V, che sono poi sempre collegati alla fase.
La morsettiera in alto a destra va alle lampade, che sono poi sempre collegati al neutro.
La morsettiera in basso va a fase (sx) e neutro (dx).

In realta' ... Neutro - Fase, tra di loro c'e' una differenza di potenziale alternata... puoi invertirle senza problemi.
Guardando lo schema qui' sotto vedi come collegare una lampada.
H3 e H4 sono l' ingresso 220V.
Qui puoi collegare neutro e fase come vuoi.


acik

#29
Apr 22, 2012, 08:34 pm Last Edit: Apr 22, 2012, 08:35 pm by acik Reason: 1

ma anche per Te......... la lista della spesa (elenco componenti) ?
(Nello schema pubblicato mancano alcuni valori, il tipo di IC, ...)

IC = Atmega328 (come scritto nel secondo post)
Il diodo che manca e' un comune 1N4007

Il resto lo vedi sullo schema (lo correggero' a breve)

Go Up