INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Differenz untereinander gestaffelter Werte an Steppermotor vermitteln
22.10.2018, 11:27
Beitrag #1
Differenz untereinander gestaffelter Werte an Steppermotor vermitteln
Hallo erstmal,

ich bin momentan sehr am verzweifeln. Im Rahmen eines Projektes muss ich es irgendwie schaffen Daten eines Sensors auf einer SD Karte in .txt form zu speichern. Anschließend sollen diese Werte (bzw. jeweils die Differenz zum vorigen) als Steps an einen Steppermotor weitergegeben werden.

Speichern und erneutes aufrufen der Werte ist kein Problem gewesen, da es viele Beispiele im Internet gibt, aber ich bin absoluter Neuling und komme einfach nicht drauf wie ich nun die Differenz der untereinander stehenden Werte in der Textdatei als Steps für den Motor definiere. Undecided

Ein Codebeispiel für die Berechnung der Differenzen würde mir sehr weiterhelfen, den Rest bekomme ich dann schon alleine auf die Reihe! Smile

Im Anhang ein Beispiel einer Textdatei und wie die Funktion ablaufen sollte.

Vielen Dank schonmal!

[Bild: TEObE9W.jpg]


Angehängte Datei(en)
.txt  pic.txt.txt (Größe: 38 Bytes / Downloads: 33)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2018, 11:54
Beitrag #2
RE: Differenz untereinander gestaffelter Werte an Steppermotor vermitteln
Kannst Du die Datei schon auslesen?
Zeige doch mal Deinen Sketch, mit dem Du die Daten von der SD liest.
Stelle Deinen Sketch bitte in Codetags.
Wie das geht, steht hier.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2018, 12:00
Beitrag #3
RE: Differenz untereinander gestaffelter Werte an Steppermotor vermitteln
Code:
// defines pins numbers
const int stepPin = 3;
const int dirPin = 4;
const int stepper = 5;
const int direc = 6;
#include <stdio.h>
#include <stdlib.h>
#include <SPI.h>
#include <SD.h>
File dataFile;
const int chipSelect = 10;

//Die Funktion str2Double koennt ihr aufrufen, wenn ihr aus einem String z.B. "0.01303" einen double Wert machen wollt
double str2Double(String val) {

  char buf[256];
  strcpy(buf, val.c_str());
  double x = atof(buf);
  return x;
}

//Die Funktion str2Int koennt ihr aufrufen, wenn ihr aus einem String z.B. "243" einen int Wert machen wollt
int str2Int(String val) {

  char buf[256];
  strcpy(buf, val.c_str());
  int x = atoi(buf);
  return x;
}
void setup() {
  
  //Motor pins
  pinMode(stepPin,OUTPUT);
  pinMode(dirPin,OUTPUT);
  pinMode(stepper, OUTPUT);
  pinMode(direc, OUTPUT);
  Serial.begin(9600);

  //versuche die SD-Karte zu initialisieren
  if (!SD.begin(chipSelect)){
    Serial.println("Card failed or not present");
    return;
  }

  Serial.println("card initialized.");

  //Name der Datei, die geoeffnet werden soll
  String fileName = "pic.txt";

  //versuche die Datei zu oeffnen, wenn sie existiert
  if (SD.exists(fileName)) {
    Serial.println("file exists.");
  } else {
    Serial.println("file doesn't exist.");
  }
  File dataFile = SD.open(fileName);
  if(dataFile) {
    Serial.println("file is available");
    
    //lese bis zum Ende der Datei aus
    while (dataFile.available()){


      //lese bis zum naechsten Zeilenumsprung
      String y = dataFile.readStringUntil('\n');

      //mache aus den Strings Int Werte
  
      int dy = str2Int(y);
      
  
      
      Serial.println(dy, DEC);

    }
  
  }
  else {
    Serial.println("error opening datalog.txt");
  }
dataFile.close();
}
void loop() {
File dataFile = SD.open("pic.txt");

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.10.2018, 12:34
Beitrag #4
RE: Differenz untereinander gestaffelter Werte an Steppermotor vermitteln
Ich würde Dir empfehlen jede Benutzung der Klasse String auf einem Arduino aus dem Sketch zu verbannen. Nutze readBytesUntil.
Ansonsten führe eine Zählvariable mit. Wenn die gerade ist, schreibst Du die Zahl in zahl1, sonst in zahl2. Die Differenz ist dann zahl2 - zahl1.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  zwei Werte im Eeprom ablegen senseman 2 314 14.12.2019 22:50
Letzter Beitrag: senseman
  DS3234 Werte auf Nextion Kurt 10 552 01.12.2019 16:27
Letzter Beitrag: Kurt
  Werte in Arduino mittels Drucktaster eingeben und mittels Formel Wert berechnen Pauli33_student 5 402 04.11.2019 13:20
Letzter Beitrag: Peter_hno3
  Falsche Werte im Array semmelsamu 6 474 27.10.2019 18:45
Letzter Beitrag: semmelsamu
  Pointer auf Struct-Werte im PROGMEM rkuehle 2 683 30.09.2018 18:15
Letzter Beitrag: rkuehle
  Mehrere Werte "ungefähr" vergleichen DL1AKP 8 2.031 06.09.2018 14:48
Letzter Beitrag: ardu_arne
  Analog Eingang _ Werte verfälscht Traktor 16 3.360 30.03.2018 08:36
Letzter Beitrag: Bitklopfer
  Countdown - Werte ändern am Touchscreen ElAleMaNo 2 1.501 04.07.2017 18:43
Letzter Beitrag: Tommy56
  Motor Steuerung durch Sensoren Werte Zerebrator 14 3.443 12.06.2017 14:36
Letzter Beitrag: Franz54
  Arduino Sensor zeigt falsche Werte an Sandro2504 4 2.010 04.06.2017 09:03
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste