C3PO
October 13, 2022, 9:35pm
1
Hallo liebe Gemeinde,
wer kann mir hier helfen ich erhalte eine Fehlermeldung.
Über zwei Magnestsensoren sollen zwei LEDs zum Leuchten gebracht werden.
//Sensor 1
const int switchPin1 = 1;
const int ledPin11 = 11;
//Sensor 2
const int switchPin2 = 2;
const int ledPin12 = 12;
void setup() {
pinMode(switchPin1, INPUT);
pinMode(12, OUTPUT);
digitalWrite(switchPin1, HIGH);
}
void loop() {
// Sensor 1
if(digitalRead(switchPin1) == HIGH){
digitalWrite(ledPin11, LOW);
if(digitalRead(switchPin1) == HIGH){
digitalWrite(ledPin11, LOW);
// Sensor 2
if(digitalRead(switchPin2) == HIGH){
digitalWrite(ledPin12, LOW);
if(digitalRead(switchPin2) == HIGH){
digitalWrite(ledPin12, LOW);
}
else{
digitalWrite(ledPin12, HIGH);
digitalWrite(ledPin11, HIGH);
}
Danke und Liebe Grüsse
C3PO
combie
October 13, 2022, 9:48pm
2
Hi!
Leider kann ich die Fehlermeldung nicht übersetzen.
Sicher, dass Pin 1 frei ist?
1 Like
Die wie lautet?
Wenn Du STRG-T drückst wirst Du merken, das Dir ein Haufen schliessende Klammern fehlen.
Mir fehlt noch die Angabe, auf was für einem Board Du das baust.
1 Like
uwefed
October 14, 2022, 12:22am
4
Generell gilt :
Di anzahl der offenen Klammern muß gleich groß sein wie die schließenden Klammern.
In Deinem Sketch zähle ich:
{ : 7
} : 3
Wieso wiederholst Du die Ifs?
Wieso initialisierst Du die Pins für den ersten Sensor/LED aber nciht fü den zweiten?
Grüße Uwe
1 Like
C3PO
October 18, 2022, 3:12pm
5
Danke für die Fragen, jetzt laufen sogar schon drei kontakte
jetzt habe ich ein weiteres Problem, ich versuche die libary "#include "SparkFunHTU21D.h"" ein zu binden. tatsache ist, ich finde die bei github, doch nirgends eine zip version?
wie müsste ich da vorgehen damit ich einbinden kann?
C3PO
October 18, 2022, 3:16pm
6
läuft jetzt über 11,12,13, darf ich den pin eins nicht nutzen?
da müssen noch eine menge sensoren an den arduiono, wäre es besser ich nutze mehrere arduinos oder wie erhalte ich mehrere pins? danke.
C3PO
October 18, 2022, 3:43pm
8
Dankeschön, hatte keinen Account, jetzt habe ich einen.
fony
October 18, 2022, 3:59pm
9
Um die ZIP Datei herunterladen braucht man kein Account.
Zu finden ist die unter CODE ganz unten Download ZIP.
1 Like
Zukünftig in der IDE: SKETCH - BIBLIOTHEK EINBINDEN - BIBLIOTHEK VERWALTEN
Dann sieht das so aus:
1 Like
C3PO
October 18, 2022, 4:24pm
11
Jetzt hänge ihc hier fest
//Sensor 1
const int switchPin2 = 2;
const int ledPin11 = 11;
//Sensor 2
const int switchPin3 = 3;
const int ledPin12 = 12;
//Sensor 3
const int switchPin4 = 4;
const int ledPin13 = 13;
#include <Wire.h>
#include "SparkFunHTU21D.h"
HTU21D sht21; //Objekt instanzieren
void setup() {
// Sensor 1
pinMode(switchPin2, INPUT);
pinMode(11, OUTPUT);
digitalWrite(switchPin2, LOW);
//Sensor 2
pinMode(switchPin2, INPUT);
pinMode(11, OUTPUT);
digitalWrite(switchPin2, LOW);
//Sensor 3
pinMode(switchPin4, INPUT);
pinMode(13, OUTPUT);
digitalWrite(switchPin4, LOW);
Serial.begin(9600); //Begin der seriellen Kommunikation mit 9600 baud
//eine einfache Ausgabe auf dem seriellen Monitor.
Serial.println("Temperatur & Luftfeuchtigkeitssensor SHT21");
Serial.println("******************************************");
sht21.begin(); //Beginn der kommunikation mit dem Sensor.
}
void loop() {
// Sensor 1
if (digitalRead(switchPin2) == HIGH)
digitalWrite(ledPin11, HIGH);
// Sensor 2
if (digitalRead(switchPin3) == HIGH)
digitalWrite(ledPin12, HIGH);
// Sensor 3
if (digitalRead(switchPin4) == HIGH)
digitalWrite(ledPin13, HIGH);
// Sensor SHT21
else
digitalWrite(ledPin11, LOW);
digitalWrite(ledPin12, LOW);
digitalWrite(ledPin13, LOW);
}
Fehlermeldung lautet
exit status 1
'else' without a previous 'if'
Drück mal STRG-T das erhellt dann schon den Codeaufbau.
fony
October 18, 2022, 4:25pm
13
Habe nicht geschaut ;), ZIP runterladen, einbinden geht schneller als die Wartezeit bis die IDE alle Lib durch ist.
1 Like
combie
October 18, 2022, 4:26pm
14
Die Meldung ist glaubwürdig!
Wie man es mit dem if else richtig macht, findet sich in jedem C++ Grundlagen Buch.
1 Like
fony
October 18, 2022, 4:33pm
15
Mach mall folgendes in der IDE auf bearbeiten danach Für Forum Kopieren klicken und hier mit Strg+ V einfügen oder rechte Maustaste und Einfügen.
Du darfst , kannst deinen Post editieren
1 Like
C3PO
October 18, 2022, 4:35pm
16
Ich will das er mir die daten vom sensor in der ide anzeigt,brauche ich dafür die IF/ELSe überhaupt?
Nö.
//Sensor 1
const int switchPin2 = 2;
const int ledPin11 = 11;
//Sensor 2
const int switchPin3 = 3;
const int ledPin12 = 12;
//Sensor 3
const int switchPin4 = 4;
const int ledPin13 = 13;
#include <Wire.h>
#include "SparkFunHTU21D.h"
HTU21D sht21; //Objekt instanzieren
void setup()
{
// Sensor 1
pinMode(switchPin2, INPUT);
pinMode(11, OUTPUT);
digitalWrite(switchPin2, LOW);
//Sensor 2
pinMode(switchPin2, INPUT);
pinMode(11, OUTPUT);
digitalWrite(switchPin2, LOW);
//Sensor 3
pinMode(switchPin4, INPUT);
pinMode(13, OUTPUT);
digitalWrite(switchPin4, LOW);
Serial.begin(9600); //Begin der seriellen Kommunikation mit 9600 baud
//eine einfache Ausgabe auf dem seriellen Monitor.
Serial.println("Temperatur & Luftfeuchtigkeitssensor SHT21");
Serial.println("******************************************");
sht21.begin(); //Beginn der kommunikation mit dem Sensor.
}
void loop()
{
digitalWrite(ledPin11, digitalRead(switchPin2));
digitalWrite(ledPin12, digitalRead(switchPin3));
digitalWrite(ledPin13, digitalRead(switchPin4));
Serial.print("Temperatur:");
Serial.print(sht21.readTemperature(), 1); //Ausgabe der Temperatur in Grad Celsius
Serial.print("°C");
Serial.print("\tLuftfeuchtigkeit:");
Serial.print(sht21.readHumidity(), 1); //Ausgabe der Luftfeuchtigkeit
Serial.println("%");
delay(1000); //kleine Pause von 1 sek.
}
Kommt drauf an, wo und was wie passieren soll.
C3PO
October 18, 2022, 4:43pm
18
Die Magnet kontakte sollen so bleiben, die laufen. Jetzt will ich einen zusätzlichen SHT21 aschliesen damit ich die Raumtemparatur angezeigt bekomme.
Das sind die 3 switchPins?
Wie soll das Bild aussehen?
Ich hab das nicht ganz verstanden.
Wenn Kontakt 1 auslöst, LED 1 auslösen und wenn Kontakt 1 nicht ausgelöst, LED 1 wieder löschen - ODER:
Wenn Kontakt 1 auslöst LED 1 setzen
Wenn Kontakt 2 auslöst LED 2 setzen
Wenn Kontakt 3 auslöst LED 3 setzen
Wenn delay(1000) um, alle LED löschen?
C3PO
October 18, 2022, 4:59pm
20
ist für den sht21 gedacht, damit er nach einer sekunde misst,
wenn der kreis unterbrochen wird, sollen die led leuchten, je nach kontakt dann das enstprechende LED