Modulo 8 Relè

Salve a tutti,

io ho comprato un modulo da 8 relè per pilotare due motori a 24v DC.
Il motore dovrebbe partire quando ad arduino arriva in ingresso una tensione di 5v tramite una fotocellula. E fino a qua va tutto bene. Il problema è che i relè si eccitano subito anche se la fotocellula non fa passare i 5v e quando ai relè arriva tensione si diseccitano.

Come mai?

è un comportamento normale. il relè si eccita quando il comando va in LOW, quindi devi invertire la logica di funzionamento.

ci ho perso un pomeriggio anche io a capire la prima volta :stuck_out_tongue:

approfondimento qui (grazie cyberhs, ti ho fregato il link :wink: )

Non é normale in generale ma é normale per quelle schedine. Non so perché é stato realizzato cosí.
Ciao Uwe

Ok grazie mille! missione compiuta!

Però ora ho un altro problema : Ho montato su breadboard arduino in stand alone con il rispettivo quarzo da 16MHZ e i vari condensatori e per caricare il programma sull'ATMEGA328P-PU utilizzon un cavo FDTI.
Del cavo FDTI ho collegato :
il pin VCC a +5v
il pin GND a massa
il pin rx al tx dell'atmega
il pin tx al rx dell'atmega

Apro l'IDE e carico il programma ma alla fine mi esce un errore che è il seguente:

Arduino:1.6.4 (Windows 7), Scheda:"Arduino Uno"

Lo sketch usa 1.308 byte (4%) dello spazio disponibile per i programmi. Il massimo è 32.256 byte.

Le variabili globali usano 19 byte (0%) di memoria dinamica, lasciando altri 2.029 byte liberi per le variabili locali. Il massimo è 2.048 byte.

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x8b

avrdude: stk500_recv(): programmer is not responding

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x8b

Problema di caricamento sulla scheda. Guarda http://www.arduino.cc/en/Guide/Troubleshooting#upload per suggerimenti

ciao
Direi che manca il segnale di reset e sei sicuro di avere il bootloader caricato nel 328?

ciao
pippo72

Si si il bootloader è presente sul 328. al reset dell'atmega ho collegato una resistenza da 10k che si collega ai 5v e un pulsante.

ciao

Steven94:
Si si il bootloader è presente sul 328. al reset dell'atmega ho collegato una resistenza da 10k che si collega ai 5v e un pulsante.

No, mi sono spiegato male. Intendevo che non hai collegato il pin di reset con l'adattatore FTDI.
Di solito questi adattatori hanno un pin chiamato RTS o DTR e questo va collegato al pin di reset del 328 tramite un condensatore da 100nf.

Se il tuo adattatore (cavo) non ha questo pin devi resettare la scheda a mano ovvero devi premere il pulsante di reset quando l'IDE comincia a caricare il programma sul 328.

ciao
pippo72

Okay grazie mille! me ne procuro uno e provo!