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);
Plumps
August 15, 2022, 7:05pm
2
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);
}
bekomme ich nicht hin. Habe mir die Anleitung durchgelesen und nichts verstanden.
Die LED glimmt leicht in die andere Richtung.
Plumps
August 15, 2022, 7:17pm
9
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
Plumps
August 15, 2022, 7:30pm
13
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
Plumps
August 15, 2022, 7:39pm
19
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.
Plumps
August 15, 2022, 7:45pm
22
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 :
Ohne Ihren Code, und zwar Ihren gesamten Code, können wir keine Antworten zu Ihrem Code geben, abgesehen von vagen und wahrscheinlich wenig hilfreichen Antworten. Eines der frustrierenden Dinge beim Schreiben von Code ist, dass ein Fehler an einer Stelle ein Fehlverhalten an einer scheinbar völlig anderen, nicht verwandten Stelle hervorrufen kann. Wenn man neu im Schreiben von Code ist, ist das ist ein Albtraum, es ist aber oft leicht zu erkennen für jemanden, der Erfahrung mit solchen Problemen hat. Aus diesem Grund wollen wir Ihren gesamten Code, nicht nur den Teil mit dem Fehler oder den Teil, von dem Sie glauben, dass er das Problem verursacht..
Bevor Sie Ihren Code für das Forum kopieren, schauen Sie in der Menüleiste der Arduino IDE unter Tools nach und wählen Sie Auto Format. Dadurch wird der Code korrekt formatiert. Wenn Sie es vorziehen, können Sie auch Strg+T drücken, um dasselbe zu tun. Nach der Formatierung können Sie Ihren Code mit Code-Tags kopieren und einfügen.
Der Code sollte in Code-Tags stehen, das erreichen Sie mit dem Button </> in der Symbolleiste über der Stelle, an der Sie Ihren Beitrag bearbeiten. Außerdem sollte es korrekt formatiert sein, etwa so:
char message[][4] = { "hi", "bye" };
void setup() {
//Serial.begin() configures the serial port
Serial.begin(9600);
}
void loop() {
for (byte x = 0; x < 2; x++) {
Serial.println(message[x]);
delay(1000);
}
}
Wenn Sie keine Code-Tags verwenden, sieht das Ganze so aus:
char message[4] = { "hi", "bye" }; // <---- Da ist jetzt eine box
void setup() {
//Serial.begin () configures the serial port // <---- Ein merkwürdiger Link
Serial.begin(9600); // <---- Einzug verschwunden
}
void loop() {
for (byte x = 0; x < 2; x++) {
Serial.println(message); // <---- Da ist jetzt eine checkbox
delay(1000);
}
}
Es gibt mehr als eine Möglichkeit, Code-Tags hinzuzufügen:
Fügen Sie Ihren Code in das Feld ein, in dem Sie Ihren Beitrag bearbeiten, markieren Sie den gesamten Code und klicken Sie auf den Button </> .
In der Arduino-IDE gibt es im Menü "Bearbeiten" die Option "Für das Forum kopieren", mit der Sie Ihren Code in die Zwischenablage kopieren können, um ihn in Ihre Frage einzufügen.