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
  PWM-Steuerung mit 15 KHz oder höher ingo46 8 504 26.06.2020 14:21
Letzter Beitrag: ingo46
  Aktion bei Wert über- oder unterschreiten Kleingärtner 18 930 05.05.2020 20:19
Letzter Beitrag: hotsystems
  Funk Fernbedienung Taster Abfrage kurz oder lange gedrückt Michi_exe 15 749 16.04.2020 17:19
Letzter Beitrag: Tommy56
  Auf oder Abzählen stoppen Lampe 11 672 07.04.2020 19:38
Letzter Beitrag: Tommy56
  String von SD Lesen und speichern zur Weiterverarbeitung volvodidi 1 584 11.02.2020 12:00
Letzter Beitrag: Tommy56
  mp3 auf Arduino Nano speichern und abspielen Thor Wallhall 9 1.087 15.01.2020 22:04
Letzter Beitrag: Tommy56
  zwei Werte im Eeprom ablegen senseman 2 783 14.12.2019 22:50
Letzter Beitrag: senseman
  OOP-Elemente wo/wie ablegen/speichern AnFi 3 843 08.09.2019 20:13
Letzter Beitrag: Tommy56
  UDP send oder print ??? Ich kapiers nicht HarryB 5 1.038 03.09.2019 13:06
Letzter Beitrag: Tommy56
  EEPROM.h Library Rockman 2 1.370 22.06.2019 18:16
Letzter Beitrag: Rockman

Gehe zu:


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