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
A/D auf PWM- Programm
17.03.2017, 22:42
Beitrag #9
RE: A/D auf PWM- Programm
Zitat:Was habe ich falsch gemacht?
Dein Programm (den Sketch) hier nicht bekannt gemacht.
Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.03.2017, 22:46
Beitrag #10
RE: A/D auf PWM- Programm
(17.03.2017 22:42)georg01 schrieb:  
Zitat:Was habe ich falsch gemacht?
Dein Programm (den Sketch) hier nicht bekannt gemacht.
Gruß Georg
Genau das. Woher sollen wir wissen, was in seinem Sketch steht.
Den Sketch bitte in Codetags setzen. 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
18.03.2017, 08:10
Beitrag #11
RE: A/D auf PWM- Programm
Ah ok, das habe ich übersehen...danke für den Hinweis!

Code:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  
}

void loop() {
  // Lesen des analogen Einganssignals:                        
  sensorValue = analogRead(analogInPin);
  // Abfrage, ob Eingangsspannung > 1,8V:
  if (analogRead(analogInPin) > 368)
  //Gebe am Ausgang 0,5V aus
  {analogWrite (analogOutPin, 102);
  }
  // Ordne es dem Bereich des analogen Ausgangs zu:        
  else
  {outputValue = map(sensorValue, 0, 1023, 0, 255  );
  // Gebe es am Ausgang aus:                    
  analogWrite(analogOutPin, outputValue);
  }
}

Ich hoffe so passt es.

Gruß
Yammi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 11:02 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2017 11:14 von Tommy56.)
Beitrag #12
RE: A/D auf PWM- Programm
Ich kann auf den ersten Blick keinen grundlegenden Fehler feststellen. Die Werte habe ich nicht nachgerechnet.

Warum benutzt Du für die if-Abfrage nicht sensorValue? Den hast Du doch gerade vorher ermittelt.

Ich vermisse aber die von mir vorgeschlagenen seriellen Ausgaben von sensorValue und outputValue.
Da könntest Du das Verhalten besser nachverfolgen und uns auch Werte mitteilen.

Gruß Tommy

Edit: Was Du mit 4er Kaskade meinst, verstehe ich nicht. Das mußt Du nochmal anders beschreiben.

"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
18.03.2017, 16:35 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2017 16:43 von Yammi.)
Beitrag #13
RE: A/D auf PWM- Programm
So, habe es geschafft....habe das Ganze mit dem Multimeter überprüft.
Das Programm schiebt die Ausgangsspannung bis 1,8V hoch und springt dann auf 0,5V fest zurück.

Code:
int analogInPin = A0;  // Poti
int analogOutPin = 9;  // PWM

int sensorValue = 0;   // Bereich der Eingangsspannung
int outputValue = 0;   // Bereich der Ausgangsspannung

void setup() {

}

void loop()
{
  // Einlesen der Eingangsspannung
  sensorValue = analogRead(analogInPin);
  // Abfrage, ob die eingelesene Spannung < 1,8V ist
  if (analogRead(analogInPin) < 368)
  //Falls ja,rechne die eingelesene Spannung um
  { outputValue=map(sensorValue, 0, 1023, 0, 255  );
  // Gebe die Spannung am Ausgang aus                    
  analogWrite(analogOutPin, outputValue);
  }
  // Falls die eingelesene Spannung > 1,8V ist
     if (analogRead(analogInPin) > 368)
  // Gebe 0,5V am Ausgang aus
  {analogWrite (analogOutPin, 25);
  }
}

Es fehlte die Eingangsabfrage vor dem if-Befehl

Somit hat das Programm im unteren Bereich keine Spannung ausgegeben und im oberen Bereich nur die 0,5V.

Vielen Dank für die Tipps und Hinweise.

Jetzt fehlt nur noch eine Hysterese...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 17:52
Beitrag #14
RE: A/D auf PWM- Programm
Warum liest Du in jeder if-Abfrage den Analogwert wieder neu ein?
Du hast den doch in sensorValue.
Was soll passieren, wenn der sensorValue = 368 ist? Du wertest nur <368 und > 368 aus.
Mal etwas optimiert:
Code:
int analogInPin = A0;  // Poti
int analogOutPin = 9;  // PWM

int sensorValue = 0;   // Bereich der Eingangsspannung
int outputValue = 0;   // Bereich der Ausgangsspannung

void setup() {

}

void loop()
{
  // Einlesen der Eingangsspannung
  sensorValue = analogRead(analogInPin);
  // Abfrage, ob die eingelesene Spannung < 1,8V ist
  if (sensorValue < 368)
  {
     //Falls ja,rechne die eingelesene Spannung um
     outputValue=map(sensorValue, 0, 1023, 0, 255  );
  }
  else
  {
     // Gebe 0,5V am Ausgang aus
     outputValue= 25;
  }
  // Gebe die Spannung am Ausgang aus                    
  analogWrite(analogOutPin, outputValue);
}

Wofür willst Du eine Hysterese einbauen?

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
18.03.2017, 19:33
Beitrag #15
RE: A/D auf PWM- Programm
Danke Tommy!
Habs gerade ausprobiert, es funktioniert.

Hysterese:
Ich möchten einen "weichen" Übergang bzw. Puffer nach oben und nach unten zwischen den beiden Ausgangsspannung erhalten.

Wahrscheinlich muss ich eine weitere if-Abfrage einfügen!?

Gruß
Sven
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.03.2017, 20:31
Beitrag #16
RE: A/D auf PWM- Programm
(18.03.2017 19:33)Yammi schrieb:  Danke Tommy!
Habs gerade ausprobiert, es funktioniert.

Hysterese:
Ich möchten einen "weichen" Übergang bzw. Puffer nach oben und nach unten zwischen den beiden Ausgangsspannung erhalten.

Wahrscheinlich muss ich eine weitere if-Abfrage einfügen!?

Gruß
Sven
Deine 0,5V und der Wert, der bis dahin aus dem map ausgegeben werden liegen doch weit genug auseinander. Da brauchst Du keine Hysterese.

Ein weicher übergang ist etwas ganz anderes. Da müsstest Du erst mal definieren, was Du darunter verstehen willst. Das ist nicht nur ein weiteres if, das kann beliebig komplex werden. Je nachdem, was Du definierst.
Schreib mal auf, was Du Dir darunter vorstellst und ob dazwischen der Eingangswert wieder alf den linearen Bereich wechseln kann.

Ganz wirst Du Sprünge nicht vermeiden können. Das kaommt auch darauf an, wo die Werte her kommen und was Du steuern willst.
Dazu hast Du bisher noch nichts gesagt.

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
  Programm zur zentralen Ablage von Messwerten Home38 14 6.812 04.09.2015 18:54
Letzter Beitrag: Home38
  WebServer mit Ethernet Shield--->Fehler im Programm Wampo 0 2.381 22.08.2013 13:13
Letzter Beitrag: Wampo

Gehe zu:


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