Hilfe bei Erweiterung meines DAVID 3D Drehtellers

OP #4510185
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.
#4510256
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)
Gast #4510295
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
#4510534
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.