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
Strombegrenzung mit ATTiny85
20.02.2016, 15:52
Beitrag #1
Strombegrenzung mit ATTiny85
Hallo,

habe da mal wieder eine kleine Frage, die ich mir so nicht beantworten kann....

Einen Wert Analog abfragen und über einen PWM wieder ausgeben habe ich hinbekommen...

Wie sieht das aber aus, wenn man 2 Analogwerte vergleichen möchte und aus der differenz das PWM angesteuert werden soll!?

Bin ich da so aufm Holzweg ?

Zitat:// Strombegrenzung über ATTiny85

const int analogPin1 = 2; //Analog Pin Shunt Eingang
const int analogPin2 = 3; //Analog Pin Shunt Ausgang
const int S1 = 0; //Analoger Ausgang PWM

int sensorValue = 0; //Eingelesener Wert (Soll sein: (analogPin2 > analogPin1-100)
int outputValue =0; //PWM-Ausgangssignal


// Setup routine for digital port configuration

void setup()
{ // Port as output

}


// Main programm

void loop()
{
sensorValue = analogRead(analogPin2 > analogPin1-100);
outputValue = map(sensorValue, 0, 100, 0, 255); //Für analoge Ausgabe Skalieren
analogWrite(S1, outputValue); //Analoger Wert schreiben
}

Danke schonmal Angel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2016, 20:57
Beitrag #2
RE: Strombegrenzung mit ATTiny85
Das geht so nicht:

Code:
sensorValue = analogRead(analogPin2 > analogPin1-100);

Du musst die Werte einzeln in Variable legen und danach verarbeiten.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2016, 23:11
Beitrag #3
RE: Strombegrenzung mit ATTiny85
Würdest du mir da mal Starthilfe geben ? Bin noch ein leidiger Anfänger...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 11:13
Beitrag #4
RE: Strombegrenzung mit ATTiny85
Wenn du deinen obigen Sketch selbst geschrieben hast, solltest du das eigentlich wissen, das sind Grundlagen.

Beispiel-Code, nicht getestet:
Code:
int sValue1 = analogRead(analogPin1);
int sValue2 = analogRead(analogPin2);
sensorValue = (sValue2 > sValue1 - 100);

Jetzt kommt es noch darauf an, ob der Wert 100 nach dem Vergleich oder vorher vom Wert "sValue1" abgezogen werden muss, danach muss evtl. noch eine Klammer gesetzt werden.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 16:05
Beitrag #5
RE: Strombegrenzung mit ATTiny85
Hallo,

ja ich hab das schon geschrieben mit einer Vorlage... jedoch ist die etwas anderst.... ja man sollte das verstehen, was man da schreibt... bei mir beläuft sich das aber gerade eher noch in probierphase...

Funktion soll nachher sein, dass der Chip einen FET ansteuert, der dann den Strom begrenzt...

Messquelle ist ein Shunt mit 0,1 Ohm

(Schaltplan steht schon) kann ich mal Posten, wenn dir das weiter hilft...

Danke für deine Hilft
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
21.02.2016, 16:22
Beitrag #6
RE: Strombegrenzung mit ATTiny85
(21.02.2016 16:05)Chef_2 schrieb:  Hallo,

ja ich hab das schon geschrieben mit einer Vorlage... jedoch ist die etwas anderst.... ja man sollte das verstehen, was man da schreibt... bei mir beläuft sich das aber gerade eher noch in probierphase...

Funktion soll nachher sein, dass der Chip einen FET ansteuert, der dann den Strom begrenzt...

Messquelle ist ein Shunt mit 0,1 Ohm

(Schaltplan steht schon) kann ich mal Posten, wenn dir das weiter hilft...

Danke für deine Hilft

Ok, wichtig ist dabei, man sollte auch in der Probierphase versuchen, den Sketch zu verstehen, dann klappt es auch mit der Programmierung. Und bei Fragen sind wir ja auch da.

Wenn die Messquelle für beide Messungen ein 0,1 Ohm Shunt ist, muss das Ergebnis durch 100 geteilt werden.
Code:
sensorValue = (sValue2 > sValue1) / 100;
So sollte das dan klappen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2016, 20:53 (Dieser Beitrag wurde zuletzt bearbeitet: 29.02.2016 22:09 von Chef_2.)
Beitrag #7
RE: Strombegrenzung mit ATTiny85
Sooo,

also das Prinzip hab ich jetzt glaub verstanden...

man liest 2 Werte aus... fast diese zusammen und lasst die differenz berechnen

Ich bin nun so weit gekommen, dass wenn ich jeweils Poti1 oder Poti2 einzeln bei:

Zitat:const int analogInPin = (PotiA);

oder

Zitat:const int analogInPin = (PotiB);

geht beides...

komme ich nun mit:

Zitat:const int analogInPin = (PotiB - PotiA);

bleibt das ganze recht ohne funktion...

was mache ich nun wieder falsch ? Ich checks wohl doch noch nicht so ganz

Gesamtes Programm:

Zitat:// Strombegrenzung über ATTiny85


int PotiA = 2;
int PotiB = 3;
const int S1 = 0; //Analoger Ausgang PWM

const int analogInPin = (PotiA - PotiB); //Bsp. 50V Eingang - 49,3V Ausgang = 0,7V Diff. = 143 von 1023

int sensorValue = analogInPin; //Von Poti1 und Poti2 Verglichener Wert
int outputValue = analogInPin; //PWM-Ausgangssignal


// Setup routine for digital port configuration

void setup()
{ // Port as output

}


// Main programm

void loop()
{
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 90, 233, 0, 255); //Für analoge Ausgabe Skalieren Diff. max 0,7V
analogWrite(S1, outputValue); //Analoger Wert schreiben

Bitte Köpft mich nicht Angel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.02.2016, 23:22
Beitrag #8
RE: Strombegrenzung mit ATTiny85
(29.02.2016 20:53)Chef_2 schrieb:  also das Prinzip hab ich jetzt glaub verstanden...

Ich glaube das noch nicht. Wink

Zitat:man liest 2 Werte aus... fast diese zusammen und lasst die differenz berechnen
Ich bin nun so weit gekommen, dass wenn ich jeweils Poti1 oder Poti2 einzeln bei:
Zitat:const int analogInPin = (PotiA);
oder
Zitat:const int analogInPin = (PotiB);
geht beides...

Da sehe ich aber keinen Sinn drin, was möchtest du damit erreichen?
Und warum die Klammern?

Zitat:komme ich nun mit:
Zitat:const int analogInPin = (PotiB - PotiA);
bleibt das ganze recht ohne funktion...
was mache ich nun wieder falsch ? Ich checks wohl doch noch nicht so ganz

Hier willst du einem analogen Eingang eine Berechnung zweier Pin-Nummern zuweisen. Macht auch keinen Sinn.
Zudem verwendest du eine "const" Definition, das bedeutet soviel wie eine Konstante, die sich im Wert nicht ändert.

Bitte befasse dich mit den Grundlagen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Attiny85 bergfrei 3 125 17.11.2016 21:33
Letzter Beitrag: bergfrei
  mit Attiny85 Feuchtigkeitssensor auslesen toto1975 17 554 19.08.2016 22:40
Letzter Beitrag: hotsystems
  Probleme mit Attiny85 raubein01 14 2.127 28.07.2015 07:07
Letzter Beitrag: Bitklopfer
  Attiny85 via Arduino ISP MeisterQ 2 1.056 27.07.2015 17:17
Letzter Beitrag: MeisterQ
  AtTiny85 spielt Code nicht ab?!? Wampo 0 720 05.08.2014 17:50
Letzter Beitrag: Wampo

Gehe zu:


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