Sivu 1/1

Traction control

ViestiLähetetty: Su Joulu 03, 2017 15:57
Kirjoittaja The Reaper
Tavoitteena on rakentaa "luistonesto", joskin hyvin yksinkertainen sellainen. Projektina on auto, jossa on hydraulisesti ohjattu lukittuva tasauspyörästö. Tilanteessa, jossa takapyörät pyörivät lujempaa kuin etupyörät, ajetaan painetta tasauspyörästölle joka lukittaa takapyörät. Painetta tuottaa sähköinen pumppu, jota ohjataan tarvittaessa painetta. Vaihtoehtoisesti se kävisi koko ajan ja venttiilillä ohjattaisiin painetta tasauspyörästölle. Jälkimmäinen vaihtoehto on huonompi, koska pumpun tuottamalle paineelle ei ole muuta käyttöä.

Tasauspyörästössä on ABS-anturi, kuten myös etupyörissä. ABS-jarrujärjestelmää ei ole autossa, joten sen toiminta ei siten vaarannu. Tasauspyörästö lukittaa ilman painetta 25% ja paineella 75%. Alkuperäisenä painetta ohjaa pulssimoduloitu venttiili. En tiedä onko alkuperäinen ohjaus lineaarinen 25-75, vai vaiheittain esim 25-45-60-75. Tässä vaiheessa ohjaus olisi vain on-off, 25-75

Ongelmia aiheuttaa toteutus. Millaisella piirillä saan verrattua etu ja takapyörien pyörimisnopeuden eroa? Onko mahdollista verrata kahta signaalia (etupyörät) yhteen signaaliin? Vai joudunko ottamaan vaan toisen etupyöristä?

Tarve on siis kahdelle/kolmelle sisääntulolle ja yhdelle ulostulolle. VR-signaali pitänee muuttaa kantiksi. Mikropiiri laskisi signaalien prosentuaalista eroa ja asetetun arvon ylityttyä ulostulo=1

Re: Traction control

ViestiLähetetty: Su Joulu 10, 2017 19:19
Kirjoittaja The Reaper
Koodi: Valitse kaikki
int sensorpin1 = 1;
int sensorpin2 = 2;
const int relaypin = 3;
unsigned long duration1;
unsigned long duration2;

void setup() {
pinMode(sensorpin1, INPUT);
pinMode (sensorpin2, INPUT);
pinMode (relaypin, OUTPUT);


 

}

void loop() {
  duration1 = pulseIn(sensorpin1, HIGH); //Mittaa HIGH-LOW-HIGH pulssin pituuden etupyörältä
  duration2 = pulseIn (sensorpin2, HIGH);//Sama takapyöriltä
  if (duration1*1,15 == duration2)//Vertaa pulssien pituuksia, jos ero yli 15%
  digitalWrite(relaypin, HIGH);//Ohjataan ulostulo=HIGH
  else
  digitalWrite(relaypin, LOW);//Muussa tilanteessa ulostulo=LOW
 
}


Eli ABS-antureilta tieto muunninpiirin kautta, joka muuttaa signaalin 0-5V kantiksi levylle. Ulostuloon vaadittavat kytkennät releen ohjaukseen. Voiko se olla näin yksinkertainen? Arduinoa ei ole vielä ja kenttätestauksia ei ole tehty, tämä vain teoriatasolla.

Re: Traction control

ViestiLähetetty: Su Joulu 10, 2017 19:54
Kirjoittaja peran
The Reaper kirjoitti:
Koodi: Valitse kaikki
int sensorpin1 = 1;
int sensorpin2 = 2;
const int relaypin = 3;
unsigned long duration1;
unsigned long duration2;

void setup() {
pinMode(sensorpin1, INPUT);
pinMode (sensorpin2, INPUT);
pinMode (relaypin, OUTPUT);


 

}

void loop() {
  duration1 = pulseIn(sensorpin1, HIGH); //Mittaa HIGH-LOW-HIGH pulssin pituuden etupyörältä
  duration2 = pulseIn (sensorpin2, HIGH);//Sama takapyöriltä
  if (duration1*1,15 == duration2)//Vertaa pulssien pituuksia, jos ero yli 15%
  digitalWrite(relaypin, HIGH);//Ohjataan ulostulo=HIGH
  else
  digitalWrite(relaypin, LOW);//Muussa tilanteessa ulostulo=LOW
 
}


Eli ABS-antureilta tieto muunninpiirin kautta, joka muuttaa signaalin 0-5V kantiksi levylle. Ulostuloon vaadittavat kytkennät releen ohjaukseen. Voiko se olla näin yksinkertainen? Arduinoa ei ole vielä ja kenttätestauksia ei ole tehty, tämä vain teoriatasolla.

Eikös tuon if-lauseen kuuluisi olla ???
Koodi: Valitse kaikki
 if (duration1*1,15 <= duration2)//Vertaa pulssien pituuksia, jos ero yli 15%


Meniköhän minullakaan pienempi kuin merkki oikein päin ?

minulle tuo pulseIn käsky on tuntematon, enkä jaksa googlettaa...

Re: Traction control

ViestiLähetetty: Su Joulu 10, 2017 21:04
Kirjoittaja The Reaper
peran kirjoitti:
The Reaper kirjoitti:
Koodi: Valitse kaikki
int sensorpin1 = 1;
int sensorpin2 = 2;
const int relaypin = 3;
unsigned long duration1;
unsigned long duration2;

void setup() {
pinMode(sensorpin1, INPUT);
pinMode (sensorpin2, INPUT);
pinMode (relaypin, OUTPUT);


 

}

void loop() {
  duration1 = pulseIn(sensorpin1, HIGH); //Mittaa HIGH-LOW-HIGH pulssin pituuden etupyörältä
  duration2 = pulseIn (sensorpin2, HIGH);//Sama takapyöriltä
  if (duration1*1,15 == duration2)//Vertaa pulssien pituuksia, jos ero yli 15%
  digitalWrite(relaypin, HIGH);//Ohjataan ulostulo=HIGH
  else
  digitalWrite(relaypin, LOW);//Muussa tilanteessa ulostulo=LOW
 
}


Eli ABS-antureilta tieto muunninpiirin kautta, joka muuttaa signaalin 0-5V kantiksi levylle. Ulostuloon vaadittavat kytkennät releen ohjaukseen. Voiko se olla näin yksinkertainen? Arduinoa ei ole vielä ja kenttätestauksia ei ole tehty, tämä vain teoriatasolla.

Eikös tuon if-lauseen kuuluisi olla ???
Koodi: Valitse kaikki
 if (duration1*1,15 <= duration2)//Vertaa pulssien pituuksia, jos ero yli 15%


Meniköhän minullakaan pienempi kuin merkki oikein päin ?

minulle tuo pulseIn käsky on tuntematon, enkä jaksa googlettaa...


Näyttäis olevan ainakin oikeaan suuntaan :lol: . Tämä oli lähinnä karkea kokeilu jonka tavoitteena oli aloittaa keskustelu aiheesta 8) Tilasin Arduinon ja pientä tilpehööriä, saa nähdä koska pääsee käytännössä kokeilemaan virityksiä. Mielessä kävi testipenkin rakentaminen johon sais kaksi hammaspyörää pyörimään säädettävällä nopeudella, jossa voisi testata järjestelmän toimintaa ennen autoon laittamista.

Re: Traction control

ViestiLähetetty: Su Joulu 10, 2017 21:22
Kirjoittaja peran
The Reaper kirjoitti:Näyttäis olevan ainakin oikeaan suuntaan :lol: . Tämä oli lähinnä karkea kokeilu jonka tavoitteena oli aloittaa keskustelu aiheesta 8) Tilasin Arduinon ja pientä tilpehööriä, saa nähdä koska pääsee käytännössä kokeilemaan virityksiä. Mielessä kävi testipenkin rakentaminen johon sais kaksi hammaspyörää pyörimään säädettävällä nopeudella, jossa voisi testata järjestelmän toimintaa ennen autoon laittamista.


Näky siinä olevan toinenkin bugi, jota en heti huomannut. Toi 1,15 tulee olla 1.15, koska Arduinon ohjelmointikielessä . toimii desimaalipilkkuna kuten monissa muissakin ohjelmointikielissä.

Mukavaahan on vähän piristää keskustelufoorumia, kun ei tämä liian aktiivinen ole.

Re: Traction control

ViestiLähetetty: Ma Joulu 11, 2017 20:10
Kirjoittaja The Reaper
peran kirjoitti:
The Reaper kirjoitti:Näyttäis olevan ainakin oikeaan suuntaan :lol: . Tämä oli lähinnä karkea kokeilu jonka tavoitteena oli aloittaa keskustelu aiheesta 8) Tilasin Arduinon ja pientä tilpehööriä, saa nähdä koska pääsee käytännössä kokeilemaan virityksiä. Mielessä kävi testipenkin rakentaminen johon sais kaksi hammaspyörää pyörimään säädettävällä nopeudella, jossa voisi testata järjestelmän toimintaa ennen autoon laittamista.


Näky siinä olevan toinenkin bugi, jota en heti huomannut. Toi 1,15 tulee olla 1.15, koska Arduinon ohjelmointikielessä . toimii desimaalipilkkuna kuten monissa muissakin ohjelmointikielissä.

Mukavaahan on vähän piristää keskustelufoorumia, kun ei tämä liian aktiivinen ole.


Noniin taas oppi jotain uutta! Tottunu exceliin kun se haluaa pilkun aina pisteen sijaan :roll:

Re: Traction control

ViestiLähetetty: Ma Joulu 11, 2017 20:40
Kirjoittaja peran
The Reaper kirjoitti:Noniin taas oppi jotain uutta! Tottunu exceliin kun se haluaa pilkun aina pisteen sijaan :roll:


Excelissä taidetaan valita pisteen ja pilkun välillä kielen mukaan. Suomessahan virallisesti käytetään desimaalipilkkua pisteen sijaan. Tosin en ole käyttänyt Exceliä pitkään aikaan, kun LibreOfficekin on olemassa, ja siinäkin suomalaisessa käytetään desimaalipilkkua. 8)