Salve a tutti,
Premetto che sono web Developer e di hardware me ne intendo veramente pochissimo (perdono)
Vi chiedo un semplice consiglio visto che a provare a fare da solo mi sono complicato la vita oltremodo.
Nel mio progetto ho un modulo wifly che invia al mio server i dati letti dai vari sensori, questo funziona e non ho problemi. Per fare il debug e qundi stampare i dati che tornano dal server utilizzo la softSerial ed il relativo hardware di arduino che ho comprato a parte
Per il sensore di temperatura ne ho uno che torna valori in analogico e non ho problemi e non ho ovviamente utilizzato nessuna libreria.
Fino a qui funziona tutto
I PROBLEMI
il risultato che voglio ottenere è quello di comandare dei relè e quindi delle prese di corrente in base allo stato dei sensori, siccome non volevo fare esplodere tutto collegando il pc ad arduino e arduino al 220v ho pensato bene di comandare un interruttore con un servo quindi ho comprato tutta l'attrezzatura e ho montato la scatolina con sopra il sensore.
qui il video del servo ed interruttore:
Utilizzando la libreria dei servi però siccome utilizza anche lei gli interrupt delirio, non funziona più niente, dovrei quindi o utilizzare sensori che tornino valori in analogico o utilizzare relais veri ( non saprei quali acquistare)
Mi potete consigliare una soluzione valida per terminare il mio progetto!!
Vi ringrazio tantissimo.
uhmm più che interrupt, direi che la libreria sta giocando con i timer. La micros però potrebbe continuare a funzionare: quindi è facile scrivere il codice per comandare un servo. Invii un segnale alto che va da 1000 a 1500 microsec, seguito da X micros di segnale basso dove X = 2000-durata segnale alto
stai dicendo di fare cosi per simulare il pwm praticamente, ma lo vedo un po' macchinoso poi si perde il concetto di gradi, poi lo dovrei fare per 3 o 4 servi dovrei mettere diversi contatori... preferirei inserire un sensore che dia come risultato un vaolore analogico!!!
si, un segnale ppm in pratica è un segnale pwm con dei parametri ben definiti, per sapere come passare da ms a gradi osserva la Servo.h! resterai sosrpreso di scoprire che è una proporzione e quindi "spannometrica"
hai ragione per l'array di contatori, ma se vuoi la mia NOn userei la libreria per gli interrup, ma userei uno dei 2 attachInterrupt() messi a disposizione da arduino IDE. così risparmi una libreria, e tutte la servo funzionana senza problemi
mi stai allora consigliando di usare le funzioni per attivare la lettura di un cambio di stato sui due piedini messi a disposizione da arduino, è la prima cosa che ho fatto con poca luce funziona ma con tanta questo indiavolato oscilla da paura e mi rallenta tutto e praticamente si inceppa il sistema di interrupt e se non gli rifaccio un po di ombra non riparte, per questo motivo trovai quella libreria!! come potrei diminuire le oscillazioni? non c'è modo è qualche resistenzina transistorino condensatorino ??? sto dicendo a caso.. ho visto che qualcuno dice che ci sono dei demoltiplicatori per perdere delle oscillazioni ma mi pare di complicarmi sempre di piu la vita, penso che la cosa migliore sia partire dal componente giusto ed evidentemente questo non lo è!!!
FreqCounter::f_comp=10; // Cal Value / Calibrate with professional Freq Counter
FreqCounter::start(100); // 100 ms Gate Time
while (FreqCounter::f_ready == 0){
lightValue = FreqCounter::f_freq;
}
//Smooth
light1Tot -= light1Smooth[smoothIndex];
light1Smooth[smoothIndex] = lightValue;
light1Tot += light1Smooth[smoothIndex];