• Die Forumsregeln und Nutzungsbedingungen findet ihr in der Navbar unter Impressum !
    Bitte unbedingt beachten!
    Wie überall im Leben gibt es Spielregeln, so auch hier!
    Die Datenschutzerklärung zum DSGVO findet ihr ebenfalls in der Navbar unter Datenschutzerklärung !
    Hinweis nach DSGVO :
    Es ist hier keinerlei Angabe erforderlich. Alle Angaben in diesem Bereich sind öffentlich sichtbar und werden freiwillig gemacht. Mit einem Eintrag in diesem Bereich erkenne ich dieses an, und bestätige die Datenschutzerklärung zur DSGVO für das Forum gelesen zu haben.

    Danke

Volkswagen Delivery Guincho Plataforma 3D-Druck

Ja Franz,

ich bin gerade dabei im Forum die erlaubten Bildgrößen zu ändern.
dabei warst du eher da, als ich sie neu gespeichert habe, aber die kleinen schon gelöscht hatte.
Aber jetzt sind sie da.

Danke für die Info :thx
 
Servus Winni ,
ein sehr cooles Fahrzeug :ok:ok:ok

:winker
 
Der ist echt eine Augenweide geworden und macht sich spitze auf dem Parcours. :ok:ok:ok Jetzt fehlt aber dazu dein Daimler Brasil-Hauber ;)

:winker
Horst
 
Dem kann ich mich voll und ganz anschließen. Ist wirklich ein richtig schönes und vor allem seltenes Fahrzeug geworden. Was rede ich hier eigentlich von selten? Gibt es wohl kaum noch einen zweiten, oder? :ok :winker
 
:thx euch Peter, Horst und Sven.
Ja Sven, ich waage es auch zu behaupten den gibt´s weltweit nur einmal.
 
Hier veröffentliche ich noch nachträglich den Code für die Plattformsteuerung mittels Arduino Pro-Minni.


Code:
// Winnis Arduino Pro-Minni für VW Delivery Plataforma, Plateausteuerung
// © by Winfried Schmickler 2018
// Dieses Programm ist lizenziert unter einer 
// Creative Commons Namensnennung-Nicht kommerziell 4.0 International Lizenz.
// Die gewerbliche Nutzung ist nicht gestattet.
// Dieser Textteil darf nicht entfernt werden und bei Weitergabe des Programms ist die Quelle zu nennen.
//-----------------------------------------------------------------
// Die beiden Motoren werden über einer H-Brücke Pololu DRV8835 betrieben
// H-Brück Motorkanal Kanal A = Verschiebeantrieb Getriebemotor N20
// H-Brück Motorkanal Kanal B = Hubzylinder (e-Motor in 7 mm Zylinderatrappe)
//-----------------------------------------------------------------
// Beginn Deklaration für Motor-H-Brücke
// int aPhase = 7;    //Pin APHASE des Motortreibers an digital Pin 7 vom Arduino
// int aEnable = 8;   //Pin AENABLE des Motortreibers an digital Pin 8 vom Arduino
// int bPhase = 9;    //Pin BPHASE des Motortreibers an digital Pin 9 vom Arduino
// int bEnable = 10;   //Pin BENABLE des Motortreibers an digital Pin 10 vom Arduino
// Ende Deklaration für Motor-H-Brücke
//-------------------------------------------------------------------------
// Beginn Deklaration Pinzuweisungen
int pw = 1;          // Steuerknüppel-Poti waagerecht
int pb = 2;          // Steuerknüppel-Poti senkrecht
int psch = 3;        // Plateau-Steuerknüppel-Poti Signal vom Empfänger
int pwswitch = 4;    // Plateau waagerecht switch
int plvo = 5;        // Plateau vorne switch
int plhi = 6;        // Plateau hinten switch
int aPhase = 7;      // Pin APHASE des Motortreibers an digital Pin 7 vom Arduino
int aEnable = 8;     // Pin AENABLE des Motortreibers an digital Pin 8 vom Arduino
int bPhase = 9;      // Pin BPHASE des Motortreibers an digital Pin 9 vom Arduino
int bEnable = 10;    // Pin BENABLE des Motortreibers an digital Pin 10 vom Arduinov
int rk = 11;         // Rundumkennleuchte Ausgang
int zukoswitch = 12; // Zugkolben-Schalter Eingang
int ar = 13;         // Arbeitsscheinwerfer Ausgang
//---------------------------------------------------------------------------------------
// Wertzuweisungen
byte vb = 75;
byte vw = 75;
byte dvpsch = 75;
byte rkon = 0;
byte aron = 0;
byte wbon = 0;
int FlagAbladen = 0;
int FlagHeben = 0;
int FlagPlattform = 0;
int rpwswitch = 0;         // Plattform Unten switsch Startwert = LOW
//int zukoswitch = 0;
int rzukoswitch = 0;
int rplvo = 0;             // read Plattform vorne
int rplhi = 0;             // read plattform hinten
unsigned long db;
unsigned long dw;
unsigned long dpsch;



// Ende Deklaration
//------------------------------------------------------------------------------//
//                                                                              //
//                                   SETUP                                      //
//==============================================================================//

void setup()
{
  pinMode(pb, INPUT);
  pinMode(pw, INPUT);
  pinMode(psch, INPUT);
  pinMode(pwswitch, INPUT);
  pinMode(plvo, INPUT);
  pinMode(plhi, INPUT);
  pinMode(aPhase, OUTPUT);
  pinMode(aEnable, OUTPUT);
  pinMode(bPhase, OUTPUT);
  pinMode(bEnable, OUTPUT);
  pinMode(rk, OUTPUT);
  pinMode(zukoswitch, INPUT);
  pinMode(ar, OUTPUT);

  // Beginn Startkontrolle Position der Plattform
  rplvo = digitalRead(plvo);               // rplvo = read Plattform vorne Schalter, Lese Schalterstellung
  if (rplvo == HIGH)                       // Wenn der Schalter offen ist.....
  {
    grundstellung();                       // gehe zu Unterroutine "grundstellung()" darin zu Unterroutine "aufladen()"
  }
}                                          // danach wird die Programmschleife ausgeführt.
//
//
//================================================================================

void loop()                                // Beginn Programmroutine-Schleife
{
  dpsch = pulseIn(psch, HIGH, 20000);      // Daten-Poti-Steuerknüpplel = pulseIn
  dvpsch = map(dpsch, 944, 2039, 0, 150);  // ursprünglischer Wert: vb = map(db, 1090, 1929, 0, 150);
  delay(100);                              // 100 ms warten
  if (dvpsch > 150)                        // wenn Daten-vom-Poti-Steuerknüpel größer als 150 nach vorne geneigt
  {
    rundumlicht();                         // gehe zu Unterroutine Rundumlicht()
  }
  if (dvpsch < 30 && FlagPlattform == 2)   // wenn Hebel in Mittelstellung und die Plattform in Abladestellung ist
  {
    aufladen();                            // gehe zu Unterroutine aufladen()
  }
  if (dvpsch < 30 || FlagAbladen == 1)
  {
    if (rkon == 0)
    {
      rundumlicht();
    }
    if (aron == 0)
    {
      arbeitslicht();
    }
    abladen();
  }
}
// Programmschleife Ende
//
//========================================================================
void grundstellung()           // Sicherstellung, das beim Einschalten das Plateau in Ruhelage fährt
{
digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)Sicherheitsmaßnahme
digitalWrite(bEnable, LOW);    // Kanal B deaktivieren (Hubzylinder ausschalten)
digitalWrite(bPhase, LOW);     // Richtung B Hub-Spindel hereinfahren, Rechtslauf einstellen
digitalWrite(bEnable, HIGH);   // Kanal B aktivieren (Hubzylinder einschalten)
FlagHeben = 3;                 // Hub-Zylinder fährt ein
do
{ 
  rpwswitch = digitalRead(pwswitch); // Schleife read Plattform waagerecht Schalter (Schalterstellung auslesen)
}
while (rpwswitch == HIGH);     // bis das Ergebnis == HIGH (offen) ist...dann
digitalWrite(bEnable, LOW);    // Kanal B deaktivieren (Hubzylinder ausschalten)
digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
digitalWrite(aPhase, LOW);     // Richtung B Verschiebe-Spindel hereinfahren, Rechtslauf einstellen
digitalWrite(aEnable, HIGH);   // Kanal A aktivieren (Verschiebemotor einschalten)
FlagAbladen = 3;               // Plattform wird nach vorne verschoben
do
{
  rplvo = digitalRead(plvo);   // Schleife read Plattformschalter vorne. Endschalterstellung auslesen
}
while (rplvo == HIGH);         // bis das Ergebnis == HIGH (offen) ist...dann
digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
FlagAbladen = 0;               // Flags zurücksetzen
FlagHeben = 0;
FlagPlattform = 0;
}                              // Return zu void loop()
// Programmroutine Ende
//========================================================================================================
void aufladen()
// Kanal A = Verschiebeantrieb
// Kanal B = Hubzylinder
// pwswitch = plattform-waagerecht-switch
// plvo = plattform-vorne-switch
// plhi = plattform-hinten-switch
// zukoswitch = zug-kolben- switch
// rzukoswitch = read-zug-kolben-switch
// FlagPlattform = 2 wird in Routine "abladen()" oder "grundstellung()" auf 2 eingestellt, wenn
// das Plateau in Ladeposition steht.
{
  rzukoswitch = digitalRead(zukoswitch);
  if (rzukoswitch == HIGH && FlagPlattform == 2) // wenn Endschalter Plattform oben betätigt ist, und ....
    //                                              das Plateau ist in Ladeposition
  {
    digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
    digitalWrite(aPhase, LOW);     // Richtung B Verschiebe-Spindel hereinfahren, Rechtslauf einstellen
    digitalWrite(aEnable, HIGH);   // Kanal A aktivieren (Verschiebemotor einschalten)
    FlagAbladen = 2;               // Aufladevorgang läuft Plattform wird nach vorne verschoben
    FlagPlattform = 3;             // die Plattform befindet sich irgendwo zwischen vorne und hinten
    delay (5000);                  // 5 sec warten bis Plattform ein Stück vorgefahren ist
    digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
    //                                Die Plattform wird ca. in der Mitte, auf dem Weg nach vorne, angehalten
    digitalWrite(bEnable, LOW);    // Kanal B deaktivieren (Hubzylinder ausschalten)
    digitalWrite(bPhase, LOW);     // Richtung B Hub-Spindel hereinfahren, Rechtslauf einstellen
    digitalWrite(bEnable, HIGH);   // Kanal B aktivieren (Hubzylinder einschalten)
    FlagHeben = 3;                 // Hub-Zylinder fährt ein
    do
    {
      rpwswitch = digitalRead(pwswitch); // read Plattform waagerecht Schalter (Schalterstellung auslesen)
    }
    while (rpwswitch == HIGH);     // falls das Ergebnis == HIGH (offen) ist...
    digitalWrite(bEnable, LOW);    // Kanal B deaktivieren (Hubzylinder ausschalten)
    digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
    digitalWrite(aPhase, LOW);     // Richtung B Verschiebe-Spindel hereinfahren, Rechtslauf einstellen
    digitalWrite(aEnable, HIGH);   // Kanal A aktivieren (Verschiebemotor wieder einschalten)
    FlagAbladen = 3;               // Aufladevorgang läuft Plattform wird nach vorne verschoben
    do
    {
      rplvo = digitalRead(plvo);   // read Plattformschalter vorne. Endschalterstellung auslesen
    }
    while (rplvo == HIGH);         // falls das Ergebnis == HIGH (offen) ist...
    digitalWrite(aEnable, LOW);    // Kanal A deaktivieren (Verschiebemotor ausschalten)
    arbeitslicht();                // gehe zu Unterroutine "arbeitslicht" Arbeitslicht ausschalten wenn es noch an ist
  }
  dpsch = pulseIn(psch, HIGH, 20000);
  dvpsch = map(dpsch, 944, 2039, 0, 150);
  //if (dvpsch > 30)
  //{
  FlagAbladen = 0;               // Flags zurücksetzen
  FlagHeben = 0;
  FlagPlattform = 0;
  // }
}                              // Return 
// Programmroutine Ende
//=================================================================================================
void abladen()
// Kanal A = Verschiebeantrieb
// Kanal B = Hubzylinder
// pwswitch = plattform-waagerecht-switch
// plvo = plattform-vorne-switch
// plhi = plattform-hinten-switch
{
  rplvo = digitalRead(plvo);
  if (rplvo == LOW && FlagAbladen == 0) // Endschalter vorne ist betätigt, Plateau bewegt sich nicht
  {
    rpwswitch = digitalRead(pwswitch);
    if (rpwswitch == LOW) // Plateau ist unten
    {
      //Serial.print("Testpunkt go");
      digitalWrite(aEnable, LOW);    // Kanal A deaktivieren
      digitalWrite(aPhase, HIGH);    // Richtung A Spindel herausfahren linkslauf
      digitalWrite(aEnable, HIGH);   // Kanal A aktivieren
      // FlagAbladen = 1; //Abladevorgang läuft Plattform wird nach hinten verschoben
      do
      {
        rplhi = digitalRead(plhi);
      }
      while (rplhi == HIGH);         // verlässt Schleife wenn Bedingung nicht Wahr (False)
      digitalWrite(aEnable, LOW);    // Kanal A deaktivieren
      digitalWrite(bEnable, LOW);    // Kanal B deaktivieren
      digitalWrite(bPhase, HIGH);    // Richtung A Spindel herausfahren linkslauf
      digitalWrite(bEnable, HIGH);   // Kanal B aktivieren
      do
      {
        //Serial.println("warten");
        rzukoswitch = digitalRead(zukoswitch);
      }
      while (rzukoswitch == LOW);   // Zugkolbenschalter hat nach LOW geschaltet
      digitalWrite(bEnable, LOW);    // Kanal B deaktivieren
      FlagPlattform = 2;             // Plateau steht in Ladeposition
      FlagAbladen = 2;               // Verhindert weiteren Lauf in die Funktion abladen
      FlagHeben = 2;                 // Hubzylinder ist voll ausgefahren
    }
  }
}                              // Return 
// Programmroutine Ende
//==============================================================================================
void arbeitslicht()
{
  if (aron == 0)
  {
    digitalWrite(ar, HIGH);
    aron = 1;
    delay(2000);
  }
  else
  {
    digitalWrite(ar, LOW);
aron = 0;
    //delay(1200);
  }

}                              // Return
// Programmroutine Ende
//==============================================================================================
void rundumlicht()
{
  if (rkon == 0)
  {
    digitalWrite(rk, HIGH);
    rkon = 1;
    delay(2000); // zwei Sekunden warten bevor die Plattform nach hinten fährt
  }
  else
  {
    digitalWrite(rk, LOW);
    rkon = 0;
    delay(1200);
  }

}                              // Return 
// Programmroutine Ende
//=============================================================================================
 

Servonaut
Zurück
Oben Unten