magloman skrev:Janson1 skrev:En "spinoffeffekt" av att jag håller på med ett annat projekt med en Arduino enchipsprocessor är: Jag gjorde en liten PWM styrning för en joystik och fyra elventiler. Jag gjorde ett par säkerhetsfunktioner så vald funktion stoppar om det blir kortslutning mot jord eller mot drivspänning eller avbrott i kablaget, det ger också stopp och läget fryser. Vad har man normalt sett för säkerhetsfunktioner på en elstyrd del i tex rototilt mm?
Now you´re talking
Janson1 skrev:Ingen som känner till säkerhetsfunktioner på elstyrda joystickar? Lämnar dom en digital signal ut eller är det med potar, i så fall, har dom dubbla potar per kanal som jämförelse?
int utv=3; //pvm utgång vänster pin 3
int uth=10; //pvm utgång höger pin 10 obs: pin 5, 6 har 980 hz i PVM medans dom andra har 490 hz...
int rotv=11; //pvm utgång rotera vänster pin 11
int roth=9; //pvm rotera höger pin 9
int x; //tillfällig räknare
int y; //tillfällig räknare
int z; //tillfällig räknare
int a; //tillfällig räknare
void setup() {
pinMode(utv, OUTPUT); // dom fyra pinnarna satta som utgångar
pinMode(uth, OUTPUT);
pinMode(rotv, OUTPUT);
pinMode(roth, OUTPUT);
Serial.begin(9600); // bra att kunna se värden...
}
void loop() {
int sensorValue = (analogRead(A0) >>2); // ett 10 bitars värde omgjort till 8 bit från poten ansluten via A0 (från 1024 steg till 256)
if (sensorValue <=115) { // värde 3 till 115 OBS: om mittpunkten på poten upplevs som för smal, ändra 115 till 110-100 detta hör ihop med rad 33
x = map(sensorValue, 115, 0, 1, 255); // görs om till 1-255 pvm via mapfunktionen. värdet 115 behöver ev också ändras
analogWrite(utv, x); //pulsas ut här
}
if (sensorValue >=116 || sensorValue <=2) { // om över 116 eller under 2 (säkerhetsfunktion)
digitalWrite(utv, LOW); // lämna utgången låg
}
if (sensorValue >=140) { // värde 140 till 253 OBS: om mittpunkten på poten upplev som för smal, ändra 140 till 145-155 detta hör ihop med rad 24
y = map(sensorValue, 140, 255, 1, 255); // görs om till 1-255 pvm via mapfunktionen. värdet 140 behöver ev också ändras
analogWrite(uth, y); //pulsas ut här
}
if (sensorValue <=139 || sensorValue >= 254) { //om under 139 eller över 254 (säkerhetsfunktion)
digitalWrite(uth, LOW); // lämna utgången låg
}
//-------------------------------------------------------------------------------
int sensorValue1 = (analogRead(A1) >>2); // här samma funktion som ovan men poten ansluten till A1
if (sensorValue1 <=115) {
z = map(sensorValue1, 115, 0, 1, 255);
analogWrite(rotv, z);
}
if (sensorValue1 >=116 || sensorValue1 <=2) {
digitalWrite(rotv, LOW);
}
if (sensorValue1 >=140) {
a = map(sensorValue1, 140, 255, 1, 255);
analogWrite(roth, a);
}
if (sensorValue1 <=139 || sensorValue1 >= 254) {
digitalWrite(roth, LOW);
}
delay(10); // håller borta spikar vid över/under tal.(säkerhetsfunktionen)
}
Återgå till Grävredskap och fästen
Användare som besöker denna kategori: Inga registrerade användare och 21 gäster