Leone2285 Inserita: sabato alle 02:59 Autore Segnala Inserita: sabato alle 02:59 I moduli sono arrivati. Avevo preso una decina di driver a mosfet ed una scheda di potenza a relè. Pensavo di usare la scheda a relè che se ho capito bene va pilotata in negativo. Allego le foto: Nel caso usassi la scheda a relè va collegata come segue?
Leone2285 Inserita: sabato alle 14:54 Autore Segnala Inserita: sabato alle 14:54 @Livio Orsini Con la scheda relè dovrei usare due alimentazioni: una per arduino e una per la scheda relè. Difatti per innescare tutti quei relè credo non andrebbe bene direttamente per le uscite di Arduino. Inoltre andrebbe cambiato il programma per avere le uscite su high all'inizio.
Livio Orsini Inserita: domenica alle 04:30 Segnala Inserita: domenica alle 04:30 Non conviene mai prelevare l'alimentazione dei relè direttamente da arduino, oltre a sovraccaricare il regolatore della scheda c'è il rischiuo che ad ogni commutazione il programma di arduino vada a farfalle. Invertire lo stato iniziale delle uscite non è un problema, lo stabilisci nella funzione di inizializzazione.
Leone2285 Inserita: domenica alle 06:08 Autore Segnala Inserita: domenica alle 06:08 Grazie Livio, quindi basta impostare le uscite come hight all'inizio e poi mandarle come low. Nel programma che mi funzionava quindi inverto hight con low. Come mai questa scelta dei costruttori di pilotare in negativo? Visto che gnd non andrebbe collegato perché lo mettono?
Livio Orsini Inserita: domenica alle 07:28 Segnala Inserita: domenica alle 07:28 Si basta fare così. Ti metto anche un esempio. void setup() { pinMode(LED, OUTPUT); pinMode(RFM95_RST, OUTPUT); digitalWrite(RFM95_RST, HIGH); while (!Serial); Serial.begin(9600); delay(100); ............ } 1 ora fa, Leone2285 ha scritto: Come mai questa scelta dei costruttori di pilotare in negativo? Visto che gnd non andrebbe collegato perché lo mettono? Non saprei, bisognerebbe avere le specifiche della scheda e gli schemi elettrici. Prova a mettere il link di dove li hai comprati, che do un'occhiata ai dati e, magari, riesco a risalire al sito del produttore e trovare la documentazione.
Leone2285 Inserita: domenica alle 13:11 Autore Segnala Inserita: domenica alle 13:11 Link: https://www.amazon.it/AptoFun-channel-Arduino-Raspberry-channels/dp/B01I41B8H0 Quello preso da me è identico a quello linkato.
Livio Orsini Inserita: domenica alle 14:53 Segnala Inserita: domenica alle 14:53 Sono anche opto isolati, a maggior ragione è da usarsi l'alimentazione separata. Nelle versioni con 1, 2 e 4 relè hanno spazio suffciente per scegliere il comando con livello basso o con livello alto, tramite jumper; qui probabilmente non son riusciti a farci stare la selezione (è solo una mia ipotesi).
Dumah Brazorf Inserita: domenica alle 15:02 Segnala Inserita: domenica alle 15:02 Hai idea del bordello di clickyticlick dai relè? Almeno prendili solid-state.
Leone2285 Inserita: domenica alle 15:38 Autore Segnala Inserita: domenica alle 15:38 34 minuti fa, Livio Orsini ha scritto: Nelle versioni con 1, 2 e 4 relè hanno spazio suffciente per scegliere il comando con livello basso o con livello alto, tramite jumper; qui probabilmente non son riusciti a farci stare la selezione (è solo una mia ipotesi). Avevo visto quello a 4 relè ed era sempre con logica negativa. 27 minuti fa, Dumah Brazorf ha scritto: Hai idea del bordello di clickyticlick dai relè? Almeno prendili solid-state. Ciao Dumah, in realtà quel ciclo vorrei farlo solo all'inizio per poi rimanere sempre accesi. Il ciclo eventualmente lo farei partire come quello di un frigo. Questo per me è un prototipo anche perché non avevo mai usato Arduino. In futuro se farò dei giochi più ripetitivi e variegati terrò a mente questo consiglio.
Leone2285 Inserita: ieri dalle 04:29 Autore Segnala Inserita: ieri dalle 04:29 Grazie al vostro aiuto, Livio in particolare, sono riuscito a pilotare la scheda relè. Lo schema di collegamento è quello che avevo linkato. Alimentazioni separate tra Arduino e scheda relè. Poi aggiungo lo sketch del programma che ho usato.
Livio Orsini Inserita: ieri dalle 05:41 Segnala Inserita: ieri dalle 05:41 1 ora fa, Leone2285 ha scritto: Alimentazioni separate tra Arduino e scheda relè. Hai usato 2 alimentatori differenti? 14 ore fa, Leone2285 ha scritto: Avevo visto quello a 4 relè ed era sempre con logica negativa. Credevo di averne un paio in casa, invece ho solo quelle a 1 e 2 relè; queste sicuramente hanno la scelta tra comando positivo e comando negativa. Comunque hai visto che invertire la logica di comando è semplicissimo quando si usa un sistema programmabile.
Leone2285 Inserita: 19 ore fa Autore Segnala Inserita: 19 ore fa 7 ore fa, Livio Orsini ha scritto: Hai usato 2 alimentatori differenti? Si, una per Arduino e una per la scheda relè. Al pilotaggio della scheda relè ho dato i 5V di Arduino su Vcc mentre i pin digitali da 2 a 9 li ho collegati da in1 a in8, GND di Arduino non è stato collegato. Poi ho tolto il jumper che ponticellava Vcc a jdVcc e ho collegato la seconda alimentazione, negativo su GND e positivo su jdVcc.
Leone2285 Inserita: 8 ore fa Autore Segnala Inserita: 8 ore fa // Definisci i pin per i LED (8 LED) const int ledPin1 = 2; const int ledPin2 = 3; const int ledPin3 = 4; const int ledPin4 = 5; const int ledPin5 = 6; const int ledPin6 = 7; const int ledPin7 = 8; const int ledPin8 = 9; // Array per gestire i pin in modo più efficiente const int ledPins[] = {ledPin1, ledPin2, ledPin3, ledPin4, ledPin5, ledPin6, ledPin7, ledPin8}; int numLeds = sizeof(ledPins) / sizeof(ledPins[0]); void setup() { // Inizializza tutti i pin come OUTPUT for (int i = 0; i < numLeds; i++) { pinMode(ledPins[i], OUTPUT); digitalWrite(ledPins[i], HIGH); // Assicurati che siano spenti all'inizio } } void loop() { // Accendi i LED uno per uno in modo crescente for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], LOW); // Accendi il LED corrente delay(1000); // Attendi un secondo per vedere l'effetto } for (int i = 0; i < numLeds; i++) { digitalWrite(ledPins[i], HIGH); } delay(10000); // Pausa prima di ricominciare Questo è il programma usato. Adesso va adattato alle esigenze personali ma in linea di principio fa quello che mi ero prefissato. Basta eliminare la parte finale per fare stare tutto acceso alla fine del ciclo. In realtà io vorrei mettere un delay ancora più lungo per fargli fare il ciclo dopo svariati minuti evitando il fastidioso ciclaggio dei relè che personalmente a me non dispiace quando fatto ogni tanto.
Livio Orsini Inserita: 3 ore fa Segnala Inserita: 3 ore fa Usa la funzione millis(). Esempio ........ unsigned long lotemp = 0; unsigned long ltemp = 0; .......... ltemp = millis(); if ( ltemp > (lotemp + 30000)) { lotemp = ltemp; ...... } In questo caso esegui qualcosa se sono trascorsi almeno 30" La funzione millis() rende un intero lung0 che indica il tempo trascorso dall'accensione di arduino, espresso in millisecondi
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora