Fehler im Programm ADXL345

Hallo zusammen,

Ich habe doch nochmal eine Frage. Ich habe es geschafft mit dem ADXL345 eine LED in die X-Richtung leuchten zu lassen. Danke an euch alle für die Hilfe. Jetzt leuchtet die LED in eine Richtung, aber nicht in die andere. Kann mir jemand sagen warum? Ich finde den Fehler nicht. auch wenn ich HIGH und LOW vertausche, tut sich nichts. Hier ist der kurze Ausschnitt. Ich dachte das < -1 das ganze umkehren würde. Ist nicht in Codetags, aber müsste man lesen können.

if(sensor.acceleration.x > 1) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

if(sensor.acceleration.x < -1) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

Warum ein neuer Thread?

Zeig doch bitte den ganzen Code. Mit dem Schnippsel kann keiner was anfangen.

Und bitte in Code-Tags

nicht in code-tags, aber vielleicht geht es.

#include <Adafruit_ADXL345_U.h>
#include <Adafruit_Sensor.h>
Adafruit_ADXL345_Unified access = Adafruit_ADXL345_Unified();

#define led 8

void setup()
{
pinMode(led, OUTPUT);

access.begin();
}

void loop(void)
{
sensors_event_t sensor;
access.getEvent(&sensor);

if(sensor.acceleration.x > 1) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

if(sensor.acceleration.x < -1) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);
}

Warum nicht?

Gruß Tommy

bekomme ich nicht hin. Habe mir die Anleitung durchgelesen und nichts verstanden.

Die LED glimmt leicht in die andere Richtung.

Du fragst eine Variable zweimal gefolgt nacheinander ab, ob sie in einem Bereich liegt. Wenn nicht schaltest du sie aus. Da fast immer einer der beiden Bereiche nicht erfüllt ist, schaltest du deinen Ausgang immer ganz schnell an und aus. Dadurch erscheint dir die LED glimmend.

Ok, ich habe gerade versucht eine Oder Funktion einzufügen. Ging aber auch nicht. Ich weiß nicht, wie ich die Programmierung ändere, um die LED in die andere Richtung leuchten zu lassen.

Ich dachte das der andere dann nicht mehr angesehen wird. Deshalb ein neuer Thread

Wenn Du damit schon überfordert bist, solltest Du überlegen, ob Programmierung die richtige Beschäftigung für Dich ist.

Gruß Tommy

Welche Werte hat denn sensor.acceleration.x ?

Hast du dir das mal auf dem SerialMonitor ausgeben lassen? Nicht das die Werte einen weiten Bereich haben, und es schwer wird die LED wieder zu deaktivieren.

#include <Adafruit_ADXL345_U.h>
#include <Adafruit_Sensor.h>
Adafruit_ADXL345_Unified access = Adafruit_ADXL345_Unified();

#define led 8

void setup()
{
  Serial.begin(9600);
  pinMode(led, OUTPUT);
  access.begin();
}

void loop(void)
{
  sensors_event_t sensor;
  access.getEvent(&sensor);
  if(sensor.acceleration.x > 1 || sensor.acceleration.x < -1) digitalWrite(led,HIGH);
  else digitalWrite(led,LOW);

  Serial.println(sensor.acceleration.x);
}

(Vom Handy getippt)

Ich gebe dazu mal ein paar Zeilen ein, um es mir anzeigen zu lassen.

Dann schaue mal auf die Verhaltensregeln und dann ist es scheinbar dein Problem, das Du damit nicht umgehen kannst, wenn ich normale fragen stelle und erst damit angefangen habe.

Lernresistent und Tschüß.

Gruß Tommy

Kritik geht wohl nicht. Aber auch Du hast deine Schwächen.

Ok, danke Dir. Ich gucke es mir an und melde mich, was dabei herauskam. Ach, ich sehe schon, es sind die Doppelstriche und nicht irgendwelche Befehle wie "or". Ich komme aus der SPS-Technik und habe versucht ähnliche Ansätze zu finden. Hat funktioniert. Vielen Dank

Diese Dinge sind Grundlagen die dir Tutorials und/oder Bücher beibringen. Es ist ermüdend, dies immer und immer wieder in Foren zu erklären.

Bitte nutze Tutorials/Bücher, genau dafür sind sie gemacht.

z.B. https://www.arduinoforum.de/arduino_referenz_down.php

Danke für die höfliche Rückmeldung. Aber bin ich dann als Anfänger falsch hier?

Danke, das kannte ich noch nicht. Ich gucke es mir durch. Vielen Dank.

Es wäre noch interessant zu wissen, was daran nicht verständlich ist. Du bekommst viel weniger Hilfe, wenn du Code nicht in Code Tags legen kannst.

Ausschnitt Wie man dieses Forum benutzt - bitte lesen: