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
Konstanten im EEprom oder RAM speichern?
29.11.2019, 21:36
Beitrag #1
Konstanten im EEprom oder RAM speichern?
Hallo,

Ich will folgendes machen: Eine PMW- Motorsteuerung mit dem Arduino (Frequenz einstellbar) habe ich dazu schon realisiert., hierfür wird am A0 ein Potiwert eingelesen und genutzt. Über A1 lese ich eine Spannung (0-4,7V) ein, die umgekehrt proportional zur Motordrehzahl ist (mit R- Spanungsteiler und Z-Diode 4,7V nebst Elko zur Glättung erzeugt). Die erfassten Spannungswerte werden ebenfalls in den Wertebereich 0-255 gemappt. Die Messung wird zwischen Drain und Source eines N-Fets, welcher den Motor treibt, vorgenommen. Motor ist an +12V und Drain, Source an Masse angeschlossen. Im Oszi ist das sehr gut zu erkennen, dass das eine zuverlässige Erfassung ist. Nun habe ich (im unbelasteten Leerlauf) für alle 256 PWM Stufen die Spannungen zwischen 4,7 und 0V erfasst. Es ergibt sich eine Kurve, die ich mathematisch nicht beschreiben kann. Um eine einigermaßen wirksame Lastregeluung bzw. Drehzahlregelung zu erreichen, will ich diese Leerlaufwerte fest ablegen und mit aktuell gemessenen Werten vergleichen und daraus eine Nachregelung der PWM generieren. Würde es Sinn machen, diese 256 Werte (je 1Byte) ins EEprom zu brennen? Oder reicht es, im RAM?
Gruß Holger
EDIT: Es handelt sich um Arduino UNO bzw. Nano
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.11.2019, 21:43 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2019 21:43 von Tommy56.)
Beitrag #2
RE: Konstanten im EEprom oder RAM speichern?
Das hängt von 2 Sachen ab.

1. Hast Du genug Platz im RAM, dann dort weil schneller
2. im EEPROM, wenn Du es nicht laufend ändern willst (100.000 Schreibzyklen)

Ich würde für ausgetestete Werte 2 wählen, zum austesten 1.

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
29.11.2019, 23:10
Beitrag #3
RE: Konstanten im EEprom oder RAM speichern?
Diese Werte will ich eigentlich nur einmal festlegen, sie sollen nicht laufend geändert werden. Von daher denke ich wäre die EEprom Lösung wohl die praktikabelste. Bin mir aber nicht sicher, wie ich das anstelle. Diese 256 Byte müssen eigenlich nicht im Sketch sein, denn dann würde es ja bei jedem Neustart in das EEprom schreiben. Wie kann ich das unabhängig vom Sketch in's EEprom schreiben?
Bisher habe ich mit Assembler 51er "bearbeitet". Da kann man onBoard separat beschreiben. Müsste doch mit den AVR's auch gehen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.11.2019, 23:14
Beitrag #4
RE: Konstanten im EEprom oder RAM speichern?
(29.11.2019 23:10)HolgerM schrieb:  Diese 256 Byte müssen eigenlich nicht im Sketch sein, denn dann würde es ja bei jedem Neustart in das EEprom schreiben. Wie kann ich das unabhängig vom Sketch in's EEprom schreiben?
Dann prüfst du beim Neustart, ob diese Werte schon vorhanden sind.
Das geht automatisch per "update()".

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.11.2019, 23:18
Beitrag #5
RE: Konstanten im EEprom oder RAM speichern?
Hallo,

die konkrete Frage hat Tommy beantwortet.

Du schreibt, "... Kurve, die ich mathematisch nicht genau beschreiben kann...". Die Spannung sollte doch linear steigen. Ausnahme: In der Beschreibung zum Arduino ist angegeben, dass das für bestimmte PWM-Ausgänge (5 und 6) nicht genau stimmt.

Ziehst Du vielleicht zu viel Strom aus dem Arduino-PWM-Pin?

Gruß GuaAck
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2019, 00:42
Beitrag #6
RE: Konstanten im EEprom oder RAM speichern?
Leider ist diese Spannungskurve eben nicht linear. Dann könnte ich durch einfache Berechnung die PWM nachregeln. Doch dem ist leider nicht so. Deshalb meine Idee mit den festen Konstanten.
Ein Motor startet ja auch erst ab einer bestimmten PWM Stufe (meist bei 20--20) Bis dahin bleibt die Originalspannung bei 12V (also 4,7V), dann sinkt diese erst langsam, dann immer stärker gegenüber der linearen PWM- Linie. Im höheren Bereich gleicht sich diese langsam wieder der PWM Linie an, bis bei PW Max. die Spannung dann bei 0 angekommen ist. Wie schon geschrieben, wird die Spannung durch Spannungsteilung und Z- Diode auf max 4,7V begrenzt und ist umgehrt proportional. Die Software mappt nun diesen Wert auch auf Werte zwischen 0 (bei 4,7V) und 255 (bei 0V). Ich hatte ja auch erhofft, dass diese Werte linear mit der PWM steigen... denkste!
Was meinst du mit "zu viel Strom aus dem Pin?" Der PWM Pin steuert einen Mosfet an, der zieht keinen Strom, A0 und A1 sind Analog Eingänge und werden auch so genutzt. Die Werte, die ich ermittelt und in einer Grafik dargestellt habe, wurden mit dem seriellen Monitor angezeigt. Für jede der 255 PWM Stufen habe ich den gemessenen Spannungswert aufgeschrieben und in der Grafik eingetragen. Es ergibt sich entlang der linearen PWM Linie eine fast sinusartige Kurve, welche zum Ende hin stark verzerrt ist. Eine solche grafische Funktion kenne ich nicht. Das ganze habe ich mit verschiedenen Elektromotoren ausprobiert, um verschiedene Bauarten zu testen. Mit ganz kleinen Abweichungen kommen die gleichen Werte heraus. Und werden die Motoren belastet (Drehzal runter), steigt dieser Spannungswert.
@Dieter: Die update() Lösung werde ich mir mal anschauen, Danke für den Tipp!
Gruß Holger
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2019, 08:55
Beitrag #7
RE: Konstanten im EEprom oder RAM speichern?
Man kann mit Excel die Tabelle in ein Punktdiagramm umsetzen und automatisch eine "Trendlinie" hinzufügen lassen.
Der Clou ist, dass man sich zu dieser Trendlinie dann eine Formel anzeigen lassen kann.Die Kurven können Potenz-, Exponential-, logarithmisch e- Näherungskurcen sein.
Vielleicht bekommst du so eine ausreichende Näherungsformel?

Vorsicht: in den Eigenschaften der Trendlinienformel das Zahlenformat auf wissenschaftlich mit ausreichender Anzahl Stellen konfigurieren.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.11.2019, 10:58
Beitrag #8
RE: Konstanten im EEprom oder RAM speichern?
Hallo MartinZ,
ich kann das ja mal probieren. Ob dafür meine Excel Kenntnisse ausreichen wird sich dann zeigen :-)
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 1 66 Heute 11:01
Letzter Beitrag: Gorathan
  OOP-Elemente wo/wie ablegen/speichern AnFi 3 418 08.09.2019 20:13
Letzter Beitrag: Tommy56
  UDP send oder print ??? Ich kapiers nicht HarryB 5 542 03.09.2019 13:06
Letzter Beitrag: Tommy56
  EEPROM.h Library Rockman 2 830 22.06.2019 18:16
Letzter Beitrag: Rockman
  EEPROM.h Harry 10 1.223 05.05.2019 16:27
Letzter Beitrag: Tommy56
  Typecasting oder nicht? Batucada 1 647 19.02.2019 18:51
Letzter Beitrag: Tommy56
  Drehgeber wie Iduino SE055 - Software- oder Hardware-Problem? Arduinero 12 1.254 24.01.2019 13:55
Letzter Beitrag: Bitklopfer
  Steigenden und/oder Wert erkennen - wie macht man das? Gelegenheitsbastler 2 563 24.01.2019 11:52
Letzter Beitrag: Tommy56
  Alternativen zu Newping oder tone? Arduinero 3 894 23.12.2018 17:33
Letzter Beitrag: Tommy56
  Speichern von Messwerten *Anfänger* wutschler 5 2.528 24.09.2018 20:56
Letzter Beitrag: MicroBahner

Gehe zu:


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