stevelep a écrit:USBAnalogic=AA,BB
sert à déclarer les entrées analogiques de la carte où tu peux brancher des potentiomètres
par exemple pour des mesure de position. les moteurs doivent fonctionner sans ça.
le device 0 n'est pas obligatoire, par défaut toute variable SIOC dont le device est pas spécifié = 0
Peu de risque de court circuit ...
Est tu sûr d'avoir bien branché l'alim sur le connecteur J2 et respecté le +/- ?
J'ai fait un test avec une source à 9v branchée sur J2 respectant la polarité
stevelep a écrit:Qu'est ce que tu utilises comme moteur ? il faut des moteurs à courant continu DC pas des pas-à-pas
jusqu'à 36V maxi 1 ampère au total pour les 6 moteurs, (2 ampères en pointe)
J'utilise une gauge sperry VSI modifiée pour fonctionner avec une carte DC motors
J'ai testé le moteur dans les deux sens en lui envoyant 9v DC, il fonctionne proprement
stevelep a écrit:Est-ce que tu a mis le bon n° d'output pour le moteur ?
J'utilise l'output 1 et je branche les deux fils moteurs sur les deux premiers pins du connecteur J6.
stevelep a écrit:Comment tu testes ?
Avec ce script
- Code: Tout sélectionner
Var 0000, Value 0
{
&VSMotor_C = 0
&VSObj_C = 132
}
Var 1013, name VSMotor_C, static, Link USB_DCMOTOR, Output 1 // motor control (0-127) 0=Left, +128 = Right
Var 1014, name VSAd_C, static, Link USB_ANALOGIC, Input 1, PosL 0, PosC 127, PosR 255 // Potentiometer value
Var 9000, name VSOffst, Link FSUIPC_IN, Offset $02C8, Length 4
{
L0 = &VSOffst * 60 // FSUIPC conversion, L0=VS
L0 = L0 * 3.28084 // FSUIPC conversion, L0=VS
L0 = L0 / 256 // FSUIPC conversion, L0=VS
L0 = ROUND L0 // Let's round the decimal value
&VS = L0
CALL &VSScale_C
}
Var 9001, name V_S
Var 9002, name VSScale_C, Link SUBRUTINE // Calculation all the ranges
{
L0 = &V_S
L2 = L0
IF L0 <= -6000 // Value greater than - 6000
{
L1 = 11 // pot 11
}
ELSE
{
L2 = L0 + 6000
IF L0 <= -4000 // 1th sector, value between -6000 and - 4000
{
L1 = L2 / 95.2380
L1 = ROUND L1
L1 = L1 + 11 // pot 32
L1 = ABS L1
}
ELSE
{
L2 = L0 + 4000
IF L0 <= -2000 // 2th sector, value between -4000 and - 2000
{
L1 = L2 / 71.4285
L1 = ROUND L1
L1 = L1 + 32 // pot 60
L1 = ABS L1
}
ELSE
{
L2 = L0 + 2000
IF L0 <= -1000 // 3th sector, value between -2000 and -1000
{
L1 = L2 / 55.5555
L1 = ROUND L1
L1 = L1 + 60 // pot 78
L1 = ABS L1
}
ELSE
{
L2 = L0 + 1000
IF L0 <= -500 // 4th sector, value between -1000 and -500
{
L1 = L2 / 17.8571
L1 = ROUND L1
L1 = L1 + 78 // pot 106
L1 = ABS L1
}
ELSE
{
L2 = L0 + 500
IF L0 < 0 // 5th sector. value between -500 and 0
{
L1 = L2 / 19.2307
L1 = ROUND L1
L1 = L1 + 106 // pot 132
L1 = ABS L1
}
ELSE
{
L2 = L0
IF L0 = 0 // Value 0
{
L1 = 132
}
ELSE
{
L2 = L0
IF L0 <= 500 // 6th sector, value between 0 and +500
{
L1 = L2 / 19.2307
L1 = ROUND L1
L1 = L1 + 132 // pot 158
}
ELSE
{
L2 = L0 - 500
IF L0 <= 1000 // 7th sector, value between +500 and +1000
{
L1 = L2 / 18.5185
L1 = ROUND L1
L1 = L1 + 158 // pot 185
}
ELSE
{
L2 = L0 - 1000
IF L0 <= 2000 // 8th sector, value between +1000 and +2000
{
L1 = L2 / 58.8235
L1 = ROUND L1
L1 = L1 + 185 // pot 202
}
ELSE
{
L2 = L0 - 2000
IF L0 <= 4000 // 9th sector, value between +2000 and +4000
{
L1 = L2 / 71.4285
L1 = ROUND L1
L1 = L1 + 202 // pot 230
}
ELSE
{
L2 = L0 - 4000
IF L0 <= 6000 // 10th sector, value between +4000 and +6000
{
L1 = L2 / 100
L1 = ROUND L1
L1 = L1 + 230 // pot 250
}
ELSE // Out of range
{
IF L0 > 6000 // Value greater than +6000
{
L1 = 250 // pot 250
}
}
}
}
}
}
}
}
}
}
}
}
}
&VSObj_C = L1
}
Var 9003, name VSControl_C, Link SUBRUTINE // Subrutine for Control (each 20ms)
{
L0 = &VSObj_C - &VSAd_C
L1 = 0
IF L0 < 0
{
L1 = 128
}
L0 = ABS L0
L2 = &VSVelMax + L1
IF L0 <= &VSAprox5
{
L2 = &VSVel5 + L1
}
IF L0 <= &VSAprox4
{
L2 = &VSVel4 + L1
}
IF L0 <= &VSAprox3
{
L2 = &VSVel3 + L1
}
IF L0 <= &VSAprox2
{
L2 = &VSVel2 + L1
}
IF L0 <= &VSAprox1
{
L2 = &VSVel1 + L1
}
IF L0 <= &VSAproxSlow
{
L2 = &VSVelMin + L1
}
IF &VSObj_C = &VSAd_C
{
&VSMargen_C = 1
}
ELSE
{
IF L0 >= 2
{
&VSMargen_C = 0
}
}
IF L0 <= &VSMargen_C
{
L2 = 0
}
&VSMotor_C = L2
}
Var 9004, name VSObj_C // objective position
Var 9005, name VSMargen_C, Value 0 // %error
Var 9018, name VSAprox5, Value 10
Var 9006, name VSAprox4, Value 8
Var 9007, name VSAprox3, Value 6
Var 9008, name VSAprox2, Value 4
Var 9009, name VSAprox1, Value 2
Var 9010, name VSAproxSlow, Value 1 // Value approaching target
Var 9011, name VSVelMax, Value 60 // Max Speed for follow objective
Var 9019, name VSVel5, Value 32
Var 9012, name VSVel4, Value 24
Var 9013, name VSVel3, Value 20
Var 9014, name VSVel2, Value 16
Var 9015, name VSVel1, Value 12
Var 9016, name VSVelMin, Value 6 // Speed approaching target
Jean