was ist an diesem code falsch arduino?
#include <Servo.h>
Servo Sl;
int messwert;
int sensor(A0);
int Temperatur;
int knopf;
int trigger=7;
int echo=6;
long dauer;
long entfernung;
void setup() {
pinMode(12, INPUT);
pinMode(11, OUTPUT);
Sl.attach(9);
pinMode(6,INPUT_PULLUP);
}
{
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
{
Serial.begin(9600)
knopf = digitalRead(6);
if (knopf == 0){
if (digitalRead 12==1) {
analogWrite(11, 450);
delay(500);
analogWrite(11, 10);
delay(500);
}
else {
analogWrite(11, LOW);
}
}
}
void loop() {
messwert=analogRead(sensor);
Temperatur=map(messwert,20,179,-40,62);
if(Temperatur>0<5){
Sl.write(22);
}
if(Temperatur>5<10){
Sl.write(45);
}
if(Temperatur>15<20){
Sl.write(90);
}
if (Temperatur>20<30){
Sl.write(125);
}
if(Temperatur>30<40){
Sl.write(150);
}
if(Temperatur=40){
Sl.write(180);
}
delay(86400000);
//digitalWrite(trigger, LOW)
//delay(5);
digitalWrite(trigger, HIGH);
delay(10); .
digitalWrite(trigger, LOW);
dauer = pulseIn(echo, HIGH);
entfernung = (dauer/2) * 0.03432;
if (entfernung >= 500 || entfernung <= 0)
{
Serial.println("Kein Messwert");
}
else
Serial.print(entfernung);
Serial.println(" cm");
}
delay(1000);
}
}
4 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Schule, Arduino
if(Temperatur>5<10) ist falsch
muss heißen:
if (5<Temperatur && Temperatur<10)
HansWurst58
11.05.2022, 12:30
@Elumania
Ja klar, kann man so machen. Auch einen kompletten Messbereich 10 bis 15 kann man mal weglassen. ^^
Für jemand, der ´84 sein Studium "Technische Informatik" beendet hat und in der "Prozessoptimierung und Automatisierung" tätig war, wären das erhebliche Mängel am Code. ;)
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, Technik, Arduino
delay(86400000);
du weisst schon wielange du da warten musst dass es dann weitergeht ???
(Temperatur>0<5)
das musst du anders schreiben..
else
Serial.print(entfernung);
da fehlt ne klammer...
{
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
{
Serial.begin(9600)
knopf = digitalRead(6);
if (knopf == 0){
if (digitalRead 12==1) {
analogWrite(11, 450);
delay(500);
analogWrite(11, 10);
delay(500);
}
else {
analogWrite(11, LOW);
}
}
damit kann der compiler nix anfangen.. wo gehört das hin?
Viele Fehler bei den geschweiften Klammern.
Temperatur>0<5
Ob ein Wert in einem Bereich liegt geht so auch nicht.
- Kannst Du das bitte als Code formatieren . sonst kann das keine Sau lesen - Knopf "</>" benutzen
- Wenn wir dir helfen wollen, dann sag doch bitte wie du darauf kommst, dass das falsch ist. Gibt es Fehlermeldungen beim Übersetzen? Läuft das Programm, tut aber nicht was du willst? Was ist los?
Auf jeden Fall:
- die Klammerungen {} sehen komisch aus und bilanziert sind sie auch nicht.
- Du definierst Funktionen, die nicht aufgerufen werden
- Ich bezweifle, dass "Temperatur>5<10" funktioniert.
- ; fehlen teilweise
wobei noch = fehlt ... Exakte Messwerte für 5, 10, 20 ... werden sonst nicht erfasst.