Go Down

Topic: Controllo motori TX seriale con ACK (Read 457 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy