Show Posts
Pages: 1 [2] 3 4 ... 11
16  International / Software / Re: Ricordo ultimo stato on: September 03, 2014, 06:09:17 am

Quote
Circa 100.000 cicli.

a quanto corrispondono in maniera quantitativa 100.000 cicli? dopo di che bisogna resettare l'arduino affinchè torni questa possibilità???

I cicli di lettura7scrittura massima sono assoluti, non è che resettando tornano disponibili, dopo un certo numero di letture/scritture la cella di memoria arriva al termine della sua vita utile, quindi non è che è possibile leggere/scrivere ad ogni ciclo di loop (ad esempio) perchè uccideresti la cella in pochissimo tempo, diverso è se vai a leggere/scrivere solo quando è necessario (power down, power up di arduino) ma anche qui dipende molto da quante volte e in quanto tempo questi eventi si manifestano, ad esempio se l'alimentazione va giù ogni anno allora il problema non sussite, se va giù 5 volte al minuti allora  non è una soluzione percorribile.
Per l'esempio che hai fatto tu dovresti memorizzare ao ogni accensione spegnimento della luce e quindi la scrittura nella memoria interna è sicuramente da scartare
17  International / Hardware / Re: Pilotare relay 24VAC da arduino on: September 03, 2014, 05:39:50 am
Innanzitutto grazie per le risposte e le correzioni suggerite, e correggo anche una mia frase del post prima, lo snubber mi è stato spiegato che serve a non ricevere disturbi sulla linea e non a non emetterne, ma essendo posizionato dopo un trasformatore questo fa già da filtro.
Quote
-la resistenza sul gate del triac mettila da 100 ohm non 1K
Ho modificato secondo la tua indicazione, ma avendo prelevato quest'informazione su una scheda ABC (http://forum.arduino.cc/index.php?topic=146152.msg1850436#msg1850436) dici che è errata la scheda e conviene segnalare la cosa al mitico pighixxx o no?
Allego il nuovo schema aggiornato per completezza d'informazione del topic.
Inoltre mi è stato indicato, e lo riporto a benificio di chi eventualmente leggerà, che pilotando bobine fino a 2,4W (100mA) il triac a valle del MOC3020 non serve.
Di nuovo grazie mille dei preziosi suggerimenti forniti!
18  International / Hardware / Pilotare relay 24VAC da arduino on: September 01, 2014, 04:28:13 am
Ciao a tutti, volevo affiancare arduino più relativa scheda di rete a normali pulsanti che comandano alcuni relay (luci) a 24 V AC.
Chiaramente sfruttando altri relè a 5V con relativo stadio pilota il probloema sarebbe presto risolto, ma non volendo introdurre altri apparati elettromeccanici mi sono documentato e ho pensato di utilizzare uno o più 74LS995 che pilotano dei MOC3020 che a loro volta pilotano un triac ciascuno che va ad comandare il relay 24VAC, per chiarezza allego lo schema del circuito fatto con eagle.
Il mio dubbio è se a valle del triac finale serve il relativo circuito snubber (condensatore+resistenza) come ho visto essere necessario in caso di pilotaggio di utente sulla 240AC per non introdurre disturbi sulla linea. Il mio circuito è posto a valle di un trasformatore quindi non dovrebbe essere necessario giusto? Se serve posso utilizzare i soliti componenti che si usano per la 240AC o occorre ridimensionarli?
Se poi vi fossero errori nel circuito e sistemi migliori per effettuare quanto necessario sarei felicissimo di ricevere sritiche o suggerimenti.
Grazie in anticipo
19  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 29, 2014, 01:06:13 pm
Ciao, ho provato il seguente codice
Code:
#define led 8
#define accendi 2
#define spegni 3

unsigned long secondi = 40000L;
unsigned long inizio = millis();

void setup(){
  pinMode (led, OUTPUT);
  pinMode (accendi, INPUT);
  pinMode (spegni, INPUT);
  digitalWrite(led, LOW);
}

void loop(){
  if (digitalRead(accendi)  == HIGH){
    if(millis() - inizio >= secondi){
      digitalWrite (led, HIGH);
    }
  }
  else{
    inizio = millis();
  }
  if (digitalRead(spegni)  == HIGH){
    digitalWrite (led, LOW);
  }
}

come ultima prova sono arrivato a 15 minuti (nell'esempio sopra una versione più "dinamica" che risponde dopo 40 secondi) e funziona correttamente, se vuoi/puoi provalo sul tuo progetto e fammi sapere
Ciao
20  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 29, 2014, 05:21:43 am
No in pratica ho provato ad aumentare il tempo di premuta del bottone da 5 secondi a 10 poi a 20 poi a 30 eccecc. Col tuo sketch quando imposto 40 secondi il led nn misi accende piu mentre con lo sketch di brado sono arrivato dino a 15 minuti (k era il tempo k serviva a me) e mi sonofermato. Sinceramente neanche io riesco a spoegarmi il xk fat k concettualmente sono quadi uguali idue sketch, ma riporto ciò k mi è successo empiricamente facendo le diverse prove!
Ciao, non so se hai tempo di fare questa prova, anche considerando che con l'altro skecth il tuo progetto funziona; ho notato che nello sketch con il mio algoritmo la variabile tempo non è di tipo unsigned long ma int, potresti provare a modificare il tipo così come hai fatto nellop skecth di Brado e verificare se così funziona anche il mio per ogni intervallo di tempo? E' solo per mia curiosità di capire come mai c'è quest'anomalia di funzionamento.
21  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 28, 2014, 02:18:06 pm
Ciao, non mi spiego come faccia a non funzionare ma non avendolo provato non so dirti di più, a livello logico tutto torna, evidentemente c'è qualcosa in esecuzione che non fa funzionare qualcosa, ma per provare a capire meglio cosa intendi per lassi di tempo maggiori di 40 secondi? Accendi spegni e se riprovi dopo 40 secondi non funziona più?
Se hai modo potresti provare a mettere delle scritture in console di debug per capire i valori delle variabili e da dove passa per comprendere meglio il problema.
22  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 28, 2014, 10:02:47 am
Per la storia del debounce in realtà serve sempre in linea generale anche in questo caso perché non hai considerato il caso in cui il led è acceso e viene sfiorato il pulsante spegnimento, sena la debounce si rischi di spegnere il led anche se l'utente in realtà non voleva farlo per una semplice lettura sporca.. ad ogni modo vedi tu se introdurre il debounce o meno  smiley-wink
Ciao
23  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 28, 2014, 09:58:02 am
Ciao, il codice di fabpolli mi sembra corretto tuttavia a me non funziona smiley-cry smiley-cry
probabilmente ho dichiarato male qualcosa (ho allegato mio codice).
Code:
#define led 8
#define accendi 2
#define spegni 3

void setup(){
  pinMode (led, OUTPUT);
  pinMode (accendi, INPUT);
  pinMode (spegni, INPUT);
  digitalWrite(led, LOW);
}

void loop(){
  int secondi = 5*1000;
  unsigned long inizio = millis();
if (digitalRead(accendi)  == HIGH){
   if(millis() - inizio >= secondi){
       digitalWrite (led, HIGH);
   }
}
else{
  inizio = millis();
}
if (digitalRead(spegni)  == HIGH){
  digitalWrite (led, LOW);
}
}


Quote
Inoltre ti consiglio di integrare il codice con il deBounce per la lettura dello stato dei pulsanti per evitare letture sporche
in questo caso il deBounce non dovrebbe servire visto che gli eventuali 'rimbalzi' del pulsante accendi sarebbero inferiori ai 5 secondi e quelli del pulsante spegni farebbero spegnere il led che però è già spento.



Ciao, non ti funziona perché l'inizializzazione e la dichiarazione della variabile inizio non è da mettere nel loop ma nel setup altrimenti ad ogni giro si reinizializza e il tempo "non passa mai"!
Avevo riportato la dichiarazione per il problema del tipo che non doveva essere float ma unsigned long

MOD
  Anche l'altra variabile (ma in generale tutte le variabili) devi dichiararla al di fuori del loop, altrimenti non ha molto senso definire una variabile che di fatto diventa come una costante
24  International / Software / Re: Pulsante premuto per un tot. di tempo on: August 28, 2014, 09:24:42 am
Ciao, volevo dare anche un mio piccolo contributo.
Due suggerimenti, il primo è che le variabili contenente il valore di millis() dovrebbero essere unsigned long per non incorrere in potenziali problemi.
Il secondo consiglio è volto alla semplificazione del codice anche se ti costringerà a rivedere molto di quanto già scritto, ovvero visto che premendo il pulsante di accensione devi attendere N secondi prima di accendere effettivamente il led e che se il pulsante viene rilasciato prima di questo tempo N non deve accadere nulla ti consiglierei di non utilizzare tutte quelle variabili ma semplicemente azzerare la variabile inizio quando il pulsante viene rilasciato ovvero:
Code:
unsigned long inizio = millis();
if (digitalRead(accendi)  == HIGH){
   if(millis() - inizio >= secondi){
       digitalWrite (led, HIGH);
   }
}
else{
  inizio = millis();
}
if (digitalRead(spegni)  == HIGH){
  digitalWrite (led, LOW);
}

In questo modo fai tutto con due variabili, il codice a mio parere è molto più intuitivo da capire, eviti di fare un sacco di digitalWrite che non servono a nulla.
Inoltre ti consiglio di integrare il codice con il deBounce per la lettura dello stato dei pulsanti per evitare letture sporche
Ciao
25  International / Software / Re: problema con semplice timer conta pezzi. on: July 24, 2014, 06:59:46 am
Ciao, è normale appena viene valutata la condizione di conta diverso da zero fallisce e esce con errore.
Per fare quello che dici tu ti conviene spostare il controllo del tempo massimo trascorso in un if dentro al while, nel while lasci solo una vriabile come test che inizializareai opportunamente (Es. true) all'interno del while se è trascorso troppo tempo metti la variabile a false e il ciclo termina.
Ciao
26  International / Software / Re: IF nidificato on: July 24, 2014, 05:53:02 am
Per come è strutturato il codice non appena teminato Inizio va di nuovo a testare il pulsante e se ancora premuto (come probabilmente accade nella realtà visti i tempi ridotti) esegue l'else in quanto l'alra variabile a quel punto vale 1.
Esiste una libreria Debounce per fare il controllo dei pulsanti, prova ad usare quella.
EDIT: Ad ogni modo dovresti memorizzarti in una variabile lo stato del pulsante nel loop e entrare nell'if solo se il suo stato cambia o assume il valore premuto e rientra solo se prima il tatso è stato rilasciato
Ciao
27  International / Generale / Re: Sono nuovo, non riesco ad accendere il mio LED RGB come vorrei con pulsanti on: February 24, 2014, 05:13:02 am
Ciao, hai collegato il cavo che va da gnd nella solita fila del cavo che va al pin di arduino, questo fa si che il pulsante è come se non ci fosse, tutti e tre i pin di arduino sono costantemente a massa. Devi spostare i cavi che vanno da gnd al pulsante sull'altro piedino del pulsante o se ti torna meglio sposta i cavi che vanno ai pin di arduino sull'altro piedino del pulsante
28  International / Hardware / Re: Arduino + RGB Stip on: February 01, 2014, 02:01:42 am
Il mio consiglio è di usare il IRL540 ... non fosse altro per il nettamente più basso "Gate-Source Threshold Voltage" e il "Gate-Source Voltage" ... quindi la "maggiore facilità" a pilotarlo con i 5v di Arduino ...

Puoi comparare i datasheet due componenti ... IRF540 e IRL540 smiley

Guglielmo
Grazie mille per la delucidazione cambio il mio progetto per utilizzare gli IRL. Fortuna che è arrivata questa discussione stavo per accingermi all'acquisto (dopo un anno che il progetto è fermo).
29  International / Hardware / Re: Arduino + RGB Stip on: January 30, 2014, 10:38:55 am
Salve, vorrei un chiarimento. Tempo fa ho iniziato un progettino per pilotare una strip led e uwe mi consiglio di utilizzare dei IRF540 per pilotare la strip dal pwm. nella scheda di pighixxx si consiglia di utilizzare gli IRL540. Dai datasheet sembrano uguali come caratteristiche tranne per i livelli ttl del gate.
La mia domanda è: è possibile utilizzare uno o l'altro indifferentemente pilotabndolo da arduino? Io penso di si ma vorrei, se possibile, una conferma.
Ciao
30  International / Generale / Re: OBD-II con STN1110 on: December 12, 2013, 03:27:06 am
x iscrizione
Pages: 1 [2] 3 4 ... 11