Forum: Mikrocontroller und Digitale Elektronik Hilfe bei Erweiterung meines DAVID 3D Drehtellers


von Kai W. (doityourself)


Lesenswert?

Hallo,

bin hier neu und suche jemanden von Euch, der mit bei der Erweiterung 
meiner Drehtellersteuerung behilflich sein kann. Habe ein Projekt mit 
Anleitung Für den DAVID 3D Scanner erfolgreich umgesetzt, stoße aber nun 
an meiner technischen Grenzen. Möchte meinen Drehteller mit zwei Tasten 
so erweitern, dass man nicht mehr über das Arduino Board die Anzahl der 
Teildrehungen eingibt, sondern direkt über zwei Tasten und einem 
Ausgabedisplay.

Benutze eine Arduino Uno + Motorshield V2 und Schrittmotor.

Hier der Code:

  #include <Wire.h>
    #include <Adafruit_MotorShield.h>
    #include <Adafruit_PWMServoDriver.h>

    int val; //Variable to store the content of the COM port
    int count = 0; // Variable to count the scans
    int limit =   8; // Means the number of scans/round
    int StepsPerRound = 200;  // Depends on the stepper's + gear's 
resolution

    // Create the motor shield object with the default I2C address
    Adafruit_MotorShield AFMS = Adafruit_MotorShield();
    // Or, create it with a different I2C address (say for stacking)
    // Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

    // Connect a stepper motor with 200 steps per revolution (1.8 
degree)
    // to motor port #2 (M3 and M4)
    Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);


    void setup() {
      Serial.begin(9600);           // set up Serial library at 9600 bps

      AFMS.begin();  // create with the default frequency 1.6KHz
      //AFMS.begin(1000);  // OR with a different frequency, say 1KHz

      myMotor->setSpeed(10);  // 10 rpm
    }

    void loop() {
      if (Serial.available() > 0) {
        val = Serial.read();  // read if theres a message in the port 
and store it in the communication variable
      }
      if (val == 'T' && count < limit){
        myMotor->step(StepsPerRound/limit, FORWARD, SINGLE); //Performs 
a turntable motion - This is needed for my Adafruit MotorShield on the 
Arduino
        myMotor->release(); // Releases the stepper - This is needed for 
my Adafruit MotorShield on the Arduino
        count +=1; //
      }
      if (val == '2' && count > 0 && count < limit){
        Serial.println("S"); // Triggers the next scan when DAVID has 
sent its "ready" message
      }
      if (val == '2' && count == limit){
        count = 0; //Just to reset things when you finished a whole 
round
      }
      if (val == '1'){
        count = 0; //To reset the counter after a faulty try switch to 
DAVID#s Calibration mode and return to ScanningMode
      }
      val = 0; // To refresh the COM port input
    }

Bin gerne bereit auch das ganze zu entlohnen. bitte nur seriöse 
Angebote.

von Alexander K. (alex_k111)


Lesenswert?

Hi,

du möchtest also die variable limit nicht mehr im Quellcode definieren 
sondern über 2 tasten hoch zählen bzw runter zählen und das an ein 
Display geben?

was für ein Display schwebt dir vor? (7 Segment anzeige z.b.)

Eine Möglichkeit in die Scanner Software einzugreifen gibt es nicht? (Um 
den Wert für limit über die serielle Schnittstelle übertragen)

von Kai (Gast)


Lesenswert?

Hi,

Genau so. Das display soll anzeigen wieviele umdrehungen gerade getätigt 
werden. Der Drehteller wird über com4 aus gesteuert und funktioniert 
sobald der erste scan gestartet wird übernimmt der Arduino die 
Steuerung. Möchte halt nur die Anzahl der Drehungen eingeben können und 
auf dem Display ausgeben.

Gruss. Kai

von Alexander K. (alex_k111)


Lesenswert?

Ja das ist doch ein ideales Einstiegsprojekt in die Arduino Welt!

Wieviele Pins sind noch frei? Du kannst dich bei adafruit (unter led
oder lcd & displays) nach displays umschauen, vllt. nicht direkt
übertreiben mit nem vollfarb tft display aber für die Displays von
adafruit sollte es im großen und ganzen fertige bibliotheken zur
ansteuerung geben, also nicht viel aufwand bei der implementierung. Das
wäre doch sicher was für den Anfang:
https://www.adafruit.com/products/878

Dazu noch 2 Taster und es kann losgehen.

von Kai W. (doityourself)


Angehängte Dateien:

Lesenswert?

Hi Alexander,

genau.. so etwas . würde vollkommen reichen. Poste dir mal den Arduino 
und das Motorshield.

Frage. wärst Du an der Realisierung diese Projektes interessiert und was 
würde mich der Spaß kosten?

Gruss

Kai

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.