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
Simpler Fehler bei MAP?
02.10.2016, 11:58
Beitrag #1
Smile Simpler Fehler bei MAP?
Hallo,
habt ihr den Sommer gut überstanden?
Ich so gut, das ich mich wieder an den Arduino traue.
Drei Abende versuche ich das Ausgang 13 schaltet, wenn ein Analog Signal verändert wird.
Als Test habe ich 2 x 4K7 R in Reihe an 5 Volt. In der Mitte also 2,5 Volt. wenn ich einen 4K7 brücke, habe ich am Meßpunkt also 0 oder 5 Volt. 0 Volt und 5 Volt sollen zum Beispiel (an 13) Low sein und 2,5 Volt High.
Map habe ich da drinnen, da zudem noch ein Servo im Spiel ist.
Dieses soll wenn 2,5 Volt anstehen mittig bleiben. Wenn 0 Volt ansteht nach links , wenn 5 Volt anstehen nach rechts laufen.
Dieses funktioniert auch.
Der Grund:
Ein simpler Roboter mit 2 Fühlern als Schalter. Wird kein Schalter geschlossen läuft er geradeaus. Wird einer geschlossen läuft er Rückwärts und das Servo dreht zu einer Seite. Werden beide Schalter geschlossen=Kurzschluß(Ist ja nur der Test).
Später ist die Reihe dann 1K-4K-4K-1K. mit Angleichung in Map.
Aber irgendwo ist ein simpler Fehler. Am Ausgang 13 habe ich immer 180mV?

Code:
const int potPin = 0;    // Potentiometer analog 0
const int ledPin = 13;   //  LED Ausgang


void setup()
{
  pinMode(ledPin, OUTPUT);  //  OUTPUT
}

void loop() {
{
  int val = analogRead(0);// Widertand einlesen
  val = map(val, 0, 1023, 30, 150); //Konfigurieren
if (potPin < 60)//Wenn der Wert unter 60 ist
{
  
digitalWrite(ledPin, HIGH);//Ausgang High
}
if (potPin>120)//Wenn der Wert über 120 ist

{
    digitalWrite(ledPin, HIGH); // Ausgang High
}

else// sonst

   {
    digitalWrite(ledPin, LOW);  //Ausgang Low
  
  }
}
}

Bitte nicht so kompliziert antworten.

Ich komme mit dem Arduino Kochbuch überhaupt nicht klar.
Die Erklärungen sind nicht auf das Grundsätzliche bezogen.
Es wird immer eine Ausführung in jedes Sketch eingearbeitet die ich nicht brauche und mich verwirrt. Zum Beispiel Temperatur schalten. Hier werden nur Werte in den Seriellen Monitor geschrieben. Das nützt mir gar nichts. Auf der nächsten Seite ist zwar als totale Ausnahme mal ein Schalten, aber nur als Schwellwert und nicht als Bereich. Sonst wird irgendwas mit Blinken gemacht. Je höher der Wert desto schneller das Blinken. )Ich müsste dann erstmal das Blinken wegkriegen und dann fehlt mir immer noch das Schalten.
Wenn mir zu einem bestimmten Buch in welchem ganze ´normale` Abläufe beispielhaft erklärt sind, kaufe ich das Gerne.
Dann hört von mir auch die dösige Fragerrei auf.

danke
Achim

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 12:15
Beitrag #2
RE: Simpler Fehler bei MAP?
Hi,
na dann versuche mal das hier....
hinter ##### habe ich die Kommentare von mir eingebaut.
Code:
int potPin = 0;    // Potentiometer analog 0   ##### Variable darf keine Konstante sein.
const int ledPin = 13;   //  LED Ausgang


void setup()
{
  pinMode(ledPin, OUTPUT);  //  OUTPUT
}

void loop() {
{
  int val = analogRead(0);// Widertand einlesen
  potPin = map(val, 0, 1023, 30, 150); //Konfigurieren ##### potPin sollte auch den MAP Wert zugewiesen bekommen.
if (potPin < 60)//Wenn der Wert unter 60 ist
{
  
digitalWrite(ledPin, HIGH);//Ausgang High
}
if (potPin>120)//Wenn der Wert über 120 ist

{
    digitalWrite(ledPin, HIGH); // Ausgang High
}

else// sonst

   {
    digitalWrite(ledPin, LOW);  //Ausgang Low
  
  }
}
}
lgbk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 17:58
Beitrag #3
RE: Simpler Fehler bei MAP?
Hallo Bitklopfer,

danke für deine prompte Hilfe.

Das hatte ich auch gleich getestet.

Das Problem ist, dass wenn ich jetzt positives Potential (+5Volt) auf den A0 lege klappt es.
Wenn ich aber negatives Potential auf den A0 lege hat der Pin 13 nur +100mV.

Zuerst dachte ich: mein Fehler denn der Test Arduino Uno hat noch ein Display anhängig und auch das Servo hing mit dran(Eben an anderen Pins). Aber als ich jetzt einen unbenutzten Arduino Uno, nur mit einem Poti von +5 Volt zu -5Volt und dem Schleifer auf A0 hatte, passierte selbiges?

Danke
Achim

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 18:02
Beitrag #4
RE: Simpler Fehler bei MAP?
Hallo,
Ich hoffe, dir ist bewusst, dass du einen Arduino killen kannst, wenn du eine negative Spannung auf den Eingang legst.
Mindestens der Eingangspin wird zerstört.
Also -5 Volt geht garnicht. 0 - 5 Volt sind ok.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 18:05
Beitrag #5
RE: Simpler Fehler bei MAP?
Nein, vertan, ich habe nur GND draufgelegt.

Danke für den Hinweis

Achim

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 18:06
Beitrag #6
RE: Simpler Fehler bei MAP?
Ok, alles klar.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 18:45 (Dieser Beitrag wurde zuletzt bearbeitet: 02.10.2016 19:20 von malsehen.)
Beitrag #7
RE: Simpler Fehler bei MAP?
Aber was kann das sein, wenn GND auf A0 liegt (obiger Sketch) müsste Digital 13 doch auf High liegen?? und nicht auf nur 100mV.
Ich habe wirklich nur das Poti dran und 12 Volt extern.

Achim

Kennt einer das Buch "Mobiler Eigenbauroboter mit Arduino: Aufbau und Programmierung"
Mechanische Spaß Ideen habe ich jede Menge. Es stehen hier auch einige sinnlose Viecher rum. Alle mit normaler Elektronik (Logik und Analog).
Das passt glaube ich beser zu mir, da Praxisbezogen?

Es scheint daran zu liegen, das ich 2 if Abfragen habe. Wenn ich nur eine, egal welche nehme, funktioniert es.

Wenn ich das Ganze mit zwei else Abfragen entzerre und Delays einfüge, ist der D13 bei 2,5 Volt tatsächlich LOW. Wenn ich den A0 jetzt auf GND oder +5 Volt lege, blinkt die D13 Led. Also liegt der Fehler darin, das keine 2 If Abfragen in einem Sketch gemacht werden können.
In welcher Richtung muss ich jetzt suchen?

Code:
void loop() {
{
  int val = analogRead(0);// Widertand einlesen
  potPin = map(val, 0, 1023, 30, 150); //Konfigurieren ##### potPin sollte auch den MAP Wert zugewiesen bekommen.
if (potPin < 60)//Wenn der Wert unter 60 ist
{
  
digitalWrite(ledPin, HIGH);//Ausgang High

}

else// sonst

   {
    digitalWrite(ledPin, LOW);  //Ausgang Low
  
  }
  delay(100);
if (potPin > 100)
{
digitalWrite(ledPin, HIGH);
}
else
{
  digitalWrite(ledPin, LOW);
}
delay(100);  
}
}

Ooooh![/align]

Ich kann kaum etwas lernen, vergesse das auch wieder. Aber wenn ich etwas immer wieder klar vor Augen habe, kann ich verdammt viel damit anfangen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.10.2016, 19:33
Beitrag #8
RE: Simpler Fehler bei MAP?
(02.10.2016 18:45)malsehen schrieb:  Aber was kann das sein, wenn GND auf A0 liegt (obiger Sketch) müsste Digital 13 doch auf High liegen?? und nicht auf nur 100mV.
Ich habe wirklich nur das Poti dran und 12 Volt extern.

Achim

Kennt einer das Buch "Mobiler Eigenbauroboter mit Arduino: Aufbau und Programmierung"
Mechanische Spaß Ideen habe ich jede Menge. Es stehen hier auch einige sinnlose Viecher rum. Alle mit normaler Elektronik (Logik und Analog).
Das passt glaube ich beser zu mir, da Praxisbezogen?

Es scheint daran zu liegen, das ich 2 if Abfragen habe. Wenn ich nur eine, egal welche nehme, funktioniert es.

Wenn ich das Ganze mit zwei else Abfragen entzerre und Delays einfüge, ist der D13 bei 2,5 Volt tatsächlich LOW. Wenn ich den A0 jetzt auf GND oder +5 Volt lege, blinkt die D13 Led. Also liegt der Fehler darin, das keine 2 If Abfragen in einem Sketch gemacht werden können.
In welcher Richtung muss ich jetzt suchen?

Code:
void loop() {
{
  int val = analogRead(0);// Widertand einlesen
  potPin = map(val, 0, 1023, 30, 150); //Konfigurieren ##### potPin sollte auch den MAP Wert zugewiesen bekommen.
if (potPin < 60)//Wenn der Wert unter 60 ist
{
  
digitalWrite(ledPin, HIGH);//Ausgang High

}

else// sonst

   {
    digitalWrite(ledPin, LOW);  //Ausgang Low
  
  }
  delay(100);
if (potPin > 100)
{
digitalWrite(ledPin, HIGH);
}
else
{
  digitalWrite(ledPin, LOW);
}
delay(100);  
}
}

Ooooh![/align]
Du kannst beliebig viele if im Sketch haben, du musst sie nur richtig einsetzen.
Du kannst die beiden HIGH-Bedingungen zusammenfassen:
Wenn potPin < 60 oder potPin > 100, dann HIGH, sonst LOW
Code:
if ((potPin < 60)) || (potPin > 100)) {
  digitalWrite(ledPin, HIGH);
}
else {
  digitalWrite(ledPin, LOW);
}

Gruß Tommy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Fehler in meinem Programm Franz54 7 153 01.12.2016 23:58
Letzter Beitrag: hotsystems
  Fehler im Programmablauf binderj1 14 350 10.10.2016 10:29
Letzter Beitrag: StephanBuerger
  Fehler beim Kompilieren binderj1 5 293 03.10.2016 21:27
Letzter Beitrag: hotsystems
  Fehler beim Speichern von Projekten Manni66 16 686 23.08.2016 10:05
Letzter Beitrag: hotsystems
  Ausgabe druckt immer 2 Werte anstatt nur einen. Finde den Fehler nicht TimeMen 24 736 02.07.2016 14:18
Letzter Beitrag: hotsystems
  Adafruit SD-master / logger shield: Fehler beim 2. Kompilieren kl-ing 3 334 06.06.2016 16:07
Letzter Beitrag: Bitklopfer
  Fehler beim Kompilieren Rudi 4 893 05.02.2016 19:46
Letzter Beitrag: Rudi
  Fehler in WCharacter.h beim Kompilieren sfl 0 355 04.02.2016 14:52
Letzter Beitrag: sfl
  LCD Display Fehler s_fr 2 632 30.01.2016 10:21
Letzter Beitrag: s_fr
  exit status 1 - Fehler beim kompilieren do1xxy 5 2.676 18.01.2016 17:43
Letzter Beitrag: hotsystems

Gehe zu:


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