Go Down

Topic: Controllo motori TX seriale con ACK (Read 439 times) previous topic - next topic

m.alverman

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)

Code: [Select]

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


dove:

Code: [Select]

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


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 

m.alverman


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

Go Up