Pages: [1]   Go Down
Author Topic: Controllo motori TX seriale con ACK  (Read 411 times)
0 Members and 1 Guest are viewing this topic.
Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
sendMSG(0,48,49,5,68,48,49,32,48,48,48,49,3,X,X);

dove:

Code:
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

Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21879
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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   
Logged

Cremona
Offline Offline
Full Member
***
Karma: 2
Posts: 148
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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à smiley
Solo che i motori sono una ventina e fanno movimentazioni scenografiche.

magari fosse una serranda
Logged

Pages: [1]   Go Up
Jump to: