Controllo motori TX seriale con ACK

Buona Domenica a tutti.

Sono sempre qui con lo stesso scopo: Creare un controllo motori (salita e discesa) con 2 arduino

Non riuscendo a creare un protocollo ho spulciato per 3 giorni il codice proposto in questo thred: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1245014666/all

e sono riuscito ad adattarlo alle seriali di arduino senza usare il max, anche perchè ho bisogno di trasmettere e ricevere solo ad uno slave.

L'arduino master manda una trama di byte allo slave in questo formato (lo stesso del post a cui ho fatto riferimento)

sendMSG(0,48,49,5,68,48,49,32,48,48,48,49,3,X,X);

dove:

 1 (0,BYTE)                       // Byte START
 2 (address1,BYTE)                // Parte 0 ID SLAVE
 3 (address2,BYTE)                // Parte 1 ID SLAVE
 4 (type,BYTE)                    // Byte ENQ, ACK O NAK (0x05h, 0x06h E 0x15h)
 5 (data_type,BYTE)               // FUNCTION
 6 (code1,BYTE)                   // FUNCTION CODE
 7 (code2,BYTE)                   // FUNCTION CODE
 8 (Sign,BYTE)                    // SIGN
 9 (data1,BYTE)                   // ASCII (0x00h-0xFFFFh)
10 (data2,BYTE)                   // ASCII (0x00h-0xFFFFh)
11 (data3,BYTE)                   // ASCII (0x00h-0xFFFFh)
12 (data4,BYTE)                   // ASCII (0x00h-0xFFFFh)
13 (3,BYTE)                       // ETX Byte di fine testo (0x03h)
14 (((checksum_ACK>>8)&255),BYTE) // CHECKSUM
15 (((checksum_ACK)& 255),BYTE)   // CHECKSUM

Riepilogando il funzionamento del comando io dovrei avere due relè per ogni motore

1 per la salita 1 per la discesa.

Quindi io invierei:

1 per la salita 2 per la discesa 0 per farlo stare fermo

Per il controllo dei relè (che non ho ancora) vorrei usare questo shield: http://mayhewlabs.com/products/arduino-mux-shield

Avendo quattro BYTE dati per inviare questi comandi come strutturo i dati.

Grazie, Alberto

Sei ancora a lottare con la serranda del garage?

Ti consiglio di interbloccare i relé. Visto che il caso dove sia il relá salita che quello di discesa é un corto ti consiglio di usare 2 relé con 2 contatti separati e di mettere un contatto normalmente chiuso in serie alla bobbina del altro relé. cosí se un é ecitato l' altro non puó essere azionato.

Ciao Uwe

uwefed: Sei ancora a lottare con la serranda del garage?

Ti consiglio di interbloccare i relé. Visto che il caso dove sia il relá salita che quello di discesa é un corto ti consiglio di usare 2 relé con 2 contatti separati e di mettere un contatto normalmente chiuso in serie alla bobbina del altro relé. cosí se un é ecitato l' altro non puó essere azionato.

Ciao Uwe

Già :) Solo che i motori sono una ventina e fanno movimentazioni scenografiche.

magari fosse una serranda