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
Pulse zählen
22.12.2013, 22:01
Beitrag #1
Pulse zählen
Hi, zusammen

Habe eine Gabellichtschranke, damit will ich die Drehzahl eines Motors (PWM) überwachen.
Also die Idee ist so, dass alle 10 Sekunden die gesamte Anzahl an Impulsen (pro Sekunde) , die die Lichtschranke liefert gezählt werden. Kann mir da jemand helfen eine Funktion zu erstellen.

Danke schon mal
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.12.2013, 14:18 (Dieser Beitrag wurde zuletzt bearbeitet: 31.12.2013 14:20 von investmentclub.)
Beitrag #2
RE: Pulse zählen
Wie sieht denn Deine Schaltung aus?

Gruß
Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.12.2013, 18:56
Beitrag #3
RE: Pulse zählen
(31.12.2013 14:18)investmentclub schrieb:  Wie sieht denn Deine Schaltung aus?

Der Motor ist an den Treibermodul angeschlossen. Habe dran eine Scheibe mit fehlendem Segment angeschlossen. Die Lichtschranke kommt an den Interrupt Pin 2.
Die Interruptfunktion zählt die Pulse bei steigender Flanke.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2014, 12:18 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2014 12:18 von investmentclub.)
Beitrag #4
RE: Pulse zählen
würde hiermit versuchen:
Code:
int puls= 0;

void setup()
{
Serial.begin(9600);
attachInterrupt(0, pulsZahl, HIGH);
}

void loop()
{
delay (10000)
Serial.println (puls, DEC);
puls= 0;
}

void pulsZahl()
{
  noInterrupts();
  puls++;
  interrupts();
}

Gruß
Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2014, 17:26
Beitrag #5
RE: Pulse zählen
(01.01.2014 12:18)investmentclub schrieb:  würde hiermit versuchen:
Code:
int puls= 0;

void setup()
{
Serial.begin(9600);
attachInterrupt(0, pulsZahl, HIGH);
}

void loop()
{
puls_gesamt=puls_alt+puls;
delay (10000)
Serial.println (puls, DEC);
puls= 0;
}

void pulsZahl()
{
  noInterrupts();
  puls++;
  interrupts();
}

Super, danke dir. Und bevor ich die Variable Puls auf 0 setze kann ich den Wert speichern, damit ich auch gesamte Anzahl an Impulsen habe? Sowas wie puls_gesamt=puls_alt+puls,
Wenn ich puls_alt=o setze als Startwert bei setup, wird die Variable dann immer o sein?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.01.2014, 19:57 (Dieser Beitrag wurde zuletzt bearbeitet: 01.01.2014 20:00 von investmentclub.)
Beitrag #6
RE: Pulse zählen
Zitat:Super, danke dir. Und bevor ich die Variable Puls auf 0 setze kann ich den Wert speichern, damit ich auch gesamte Anzahl an Impulsen habe? Sowas wie puls_gesamt=puls_alt+puls,
Wenn ich puls_alt=o setze als Startwert bei setup, wird die Variable dann immer o sein?

Mit
Code:
int pulsAlt = 0;
bekommt die Variable eine Typ zugeordnet und wird auf 0 gesetzt,
kann auf jeden Wert geändert werden (=Variable).
Code:
...
pulsAlt = 4711;
....

Die Anweisung darf nicht im setup() stehen, wenn sie im loop() gesetzt werden soll, sondern am Anfang des Codes.[/quote]

Gruß
Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.01.2014, 09:17
Beitrag #7
RE: Pulse zählen
(01.01.2014 19:57)investmentclub schrieb:  
Zitat:Super, danke dir. Und bevor ich die Variable Puls auf 0 setze kann ich den Wert speichern, damit ich auch gesamte Anzahl an Impulsen habe? Sowas wie puls_gesamt=puls_alt+puls,
Wenn ich puls_alt=o setze als Startwert bei setup, wird die Variable dann immer o sein?

Mit
Code:
int pulsAlt = 0;
bekommt die Variable eine Typ zugeordnet und wird auf 0 gesetzt,
kann auf jeden Wert geändert werden (=Variable).
Code:
...
pulsAlt = 4711;
....

Die Anweisung darf nicht im setup() stehen, wenn sie im loop() gesetzt werden soll, sondern am Anfang des Codes.
[/quote]

So wird wird es auch funktionieren?
int Altpuls=0;
int puls= 0;

void setup()
{
Serial.begin(9600);
attachInterrupt(0, pulsZahl, HIGH);
}

void loop()
{
pulsAlt=puls;
delay (10000)
Serial.println (puls, DEC);
puls= 0;
}

void pulsZahl()
{
noInterrupts();
puls++;
interrupts();
}

Also wenn ich sage PulsAlt=puls wird da jedesmal ein Wert angezeigt, der nach 10 Sekunden gezählt wurde und nicht die gesamte Pulszahl?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.01.2014, 20:21
Beitrag #8
RE: Pulse zählen
(03.01.2014 09:17)Coleby schrieb:  
(01.01.2014 19:57)investmentclub schrieb:  
Zitat:Super, danke dir. Und bevor ich die Variable Puls auf 0 setze kann ich den Wert speichern, damit ich auch gesamte Anzahl an Impulsen habe? Sowas wie puls_gesamt=puls_alt+puls,
Wenn ich puls_alt=o setze als Startwert bei setup, wird die Variable dann immer o sein?

Mit
Code:
int pulsAlt = 0;
bekommt die Variable eine Typ zugeordnet und wird auf 0 gesetzt,
kann auf jeden Wert geändert werden (=Variable).
Code:
...
pulsAlt = 4711;
....

Die Anweisung darf nicht im setup() stehen, wenn sie im loop() gesetzt werden soll, sondern am Anfang des Codes.

So wird wird es auch funktionieren?
int Altpuls=0;
int puls= 0;

void setup()
{
Serial.begin(9600);
attachInterrupt(0, pulsZahl, HIGH);
}

void loop()
{
pulsAlt=puls;
delay (10000)
Serial.println (puls, DEC);
puls= 0;
}

void pulsZahl()
{
noInterrupts();
puls++;
interrupts();
}

Also wenn ich sage PulsAlt=puls wird da jedesmal ein Wert angezeigt, der nach 10 Sekunden gezählt wurde und nicht die gesamte Pulszahl?
[/quote]
Versuch es mal mit:
pulsGes += puls;

Gruß
Hans-Jürgen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  4 Anzeigen mit unterschiedlichen zufälligen Zahlen Gravia 4 433 10.02.2016 06:05
Letzter Beitrag: Gravia
  Problem mit Division zweier Zahlen torsten_156 3 459 18.12.2015 22:09
Letzter Beitrag: Bitklopfer
  analogRead: Pin-Nummern zählen? HaWe 4 826 14.06.2015 12:01
Letzter Beitrag: HaWe
  Serial Monitor Zahlen Senden über 9 paq 7 2.026 18.05.2015 08:48
Letzter Beitrag: Scherheinz
  LCD Zahlen Formatierung Kaito164 24 5.224 21.02.2015 13:23
Letzter Beitrag: Kaito164
  .read() liest nur zahlen anstatt character kraweuschuasta 1 1.248 27.02.2014 21:10
Letzter Beitrag: kraweuschuasta
  Zahlen vom Serieller Monitor verarbeiten Sascha87 1 1.276 16.01.2014 10:47
Letzter Beitrag: Stefan
  10er zahlen in binärzahlen - noobfrage schatten14 9 3.817 14.01.2014 12:17
Letzter Beitrag: Stefan
  Große Zahlen und kein Punkt Xwill 2 1.704 27.10.2013 21:10
Letzter Beitrag: Xwill

Gehe zu:


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