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
Drezahl messen mit Arduino Due
12.12.2018, 12:02 (Dieser Beitrag wurde zuletzt bearbeitet: 12.12.2018 12:04 von MicroBahner.)
Beitrag #9
RE: Drezahl messen mit Arduino Due
Hallo Idefix,
Tommy hat ja schon einiges zu den Problemen in deinem letzten Sketch geschrieben. Die Sache mit dem 'zaehler' macht auch keinen Sinn, wenn man es dann nicht auswertet. Das Ergebnis wird aber genauer, wenn man den Mittelwert über die Auswerteperiode nimmt. Hier mal ein Vorschlag. Ich habe die Impulse mit einem Funktionsgenerator erzeugt, und die Ergebnisse sind dabei absolut stabil von 1Hz bis über 100kHz. Wenn es bei dir schwankt, sind deine erzeugten Impulse nicht in Ordnung.
Code:
#include <Arduino.h>//################################################################################​​#####

const int intPin = 2;               // Interruptpin
const uint32_t messperiode = 1000;   // in ms
volatile uint32_t impulse;
volatile uint32_t messzeit = 1000000;
uint32_t impulszeit;
uint32_t messdauer;
uint32_t messstart;
uint32_t Timestamp;
float frequenz;
float drehzahl;

volatile uint32_t zaehler;
volatile uint32_t timer;
volatile uint32_t timerOld;
volatile uint32_t startzeit;

void setup() {
  Serial.begin(115200);
  pinMode(intPin, INPUT_PULLUP);          //Pinmod einstellungen
  attachInterrupt(2, Messung, FALLING);   //Interrupt declaration
}


void Messung()
{
  uint32_t temp = micros();
  if ( zaehler++ == 0 ) {
    timerOld = temp;
  } else {
    timer = temp - timerOld;
  }
}


void loop() {

  if ((micros() - startzeit) >= messzeit)
  {
    noInterrupts();
    if  (zaehler > 1 ) {
      float p = timer / (float)(zaehler - 1); //Datentyp 'float', wegen untenstehender Division
      uint32_t t = timer;
      uint32_t z = zaehler;
      zaehler = 0; //Frequenzzähler zurücksetzen
      interrupts();
      frequenz = 1000000 / p; //Aus Periodendauer Frequenz berechnen
      char txtBuf[80];
      sprintf( txtBuf, "timer=%d, zaehler=%d, p=%6.3f, f=%5.3f", t, z, p, frequenz );
      Serial.println(txtBuf);
    }
    interrupts();
    startzeit = micros(); //Zeitpunkt der letzten Ausgabe speichern

  }
}

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2019, 11:12
Beitrag #10
RE: Drezahl messen mit Arduino Due
Vielen Dank für eure Antworten,

ich habe die Impulse durch das Entstören des Motors sauber bekommen.

Jetzt funktioniert es!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2019, 11:14
Beitrag #11
RE: Drezahl messen mit Arduino Due
Schön, dass es funktioniert.
Kannst Du für die Nachwelt bitte noch Deine Entstörung beschreiben und die endgültige Fassung des funktionierenden Sketchs veröffentlichen?

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
Question Spannungen unter 5V messen phischmi 6 718 06.04.2018 19:48
Letzter Beitrag: phischmi
  Die Frequenz von der Lichtmaschine, Klemme W messen torwart0306 7 2.062 13.09.2017 17:53
Letzter Beitrag: georg01
  Aufwachen und Spannung messen ardun 5 1.025 26.05.2017 10:36
Letzter Beitrag: Franz54
  Firmata (Daten senden an den Arduino und empfangen vom Arduino) comfan 6 2.742 29.04.2017 14:29
Letzter Beitrag: hotsystems
  Schallgeschwindigkeit mit digitalen Mikrofonen messen scritch 2 1.518 27.11.2015 11:56
Letzter Beitrag: a.part
  Arduino Druck Messen GaLeMa00 17 4.889 18.09.2015 20:12
Letzter Beitrag: GaLeMa00
  Arduino Ethernet mit USB 2 Serial Converter/Welche Einstellungen im Arduino-Sketch lociluke 1 2.627 05.05.2015 13:40
Letzter Beitrag: Bitklopfer
  Arduino Mega-Projekt mit EEPROM auf Arduino Due portieren Foto-Ralf 17 7.702 16.03.2015 12:06
Letzter Beitrag: Foto-Ralf
  Zeit eines anliegenden analogen Signals messen scritch 11 5.922 15.12.2014 17:26
Letzter Beitrag: scritch
Question Stromsensor ACS758 - AC messen bis 32A fobi 1 2.301 22.08.2014 20:24
Letzter Beitrag: ardu_arne

Gehe zu:


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