Hallo zusammen
Ich habe mir das Arduino Starterpaket gekauft.
Nun habe ich „Raumschiff Steuerzentrale“ aus dem lern Buch gebaut und programmiert.
Folgende Fehler kommt
Hallo zusammen
Ich habe mir das Arduino Starterpaket gekauft.
Nun habe ich „Raumschiff Steuerzentrale“ aus dem lern Buch gebaut und programmiert.
Folgende Fehler kommt
Am Programmende fehlt eine geschweifte Klammer.
Drücke mal <Strg> <t> zur automatischen Formatierung, dann siehst Du es besser.
Herzlichen Dank
Werde mich sicher noch ein paar mal melden🤣
Und beachte einmal den blauen Button im ersten Bild. Text postet man als Text und nicht als bild
Grundsätzlich stimme ich Dir zu, aber in diesem Fall war es für mich mit den Bildern einfacher zu erkennen ![]()
ich melde mich wieder:-))
void loop() {
redSensorValue = analogRead(redSensorPin);
delay(5);
greenSensorValue = analogRead(greenSensorPin);
delay(5);
blueSensorValue = analogRead(blueSensorPin);
Serial.print("Rohdaten vom Sensor \t rot: ");
Serial.print(redSensorValue);
Serial.print("\ grün: ");
Serial.print(greenSensorValue);
Serial.print("\t blau: ");
Serial.println(blueSensorValue);
redValue = redSensorValue / 4;
greenValue = greenSensorValue / 4;
blueValue = blueSensorValue / 4;
Serial.print("Übersicht der Sensorwerte \t rot: ");
Serial.print(redValue);
Serial.print("\t grün: ");
Serial.print(greenValue);
Serial.print("\t blau: ");
Serial.println(blueValue);
analogWrite(redLEDPin, redValue);
analogWrite(greenLEDPin, greenValue);
analogWrite(blueLEDPin, blueValue);
}
```
Compilation error: 'greenSensorValue' was not declared in this scope
Was habe ich falsch gemacht?
Zeige doch bitte den kompletten Sketch, dann sehen wir besser wo dein Fehler ist.
Entweder fehlt etwas oder ein Tippfehler.
const int greenLEDPin = 9;
const int redLEDPin = 10;
const int blueLEDPin = 11;
const int redSensorPin = A0;
const int greenSensor = A1;
const int blueSensor = A2;
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int redSensorValue = 0;
int greenSensorVale = 0;
int blueSensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(greenLEDPin, OUTPUT);
pinMode(redLEDPin, OUTPUT);
pinMode(blueLEDPin, OUTPUT);
}
void loop() {
redSensorValue = analogRead(redSensorPin);
delay(5);
greenSensorValue = analogRead(greenSensorPin);
delay(5);
blueSensorValue = analogRead(blueSensorPin);
Serial.print("Rohdaten vom Sensor \t rot: ");
Serial.print(redSensorValue);
Serial.print("\ grün: ");
Serial.print(greenSensorValue);
Serial.print("\t blau: ");
Serial.println(blueSensorValue);
redValue = redSensorValue / 4;
greenValue = greenSensorValue / 4;
blueValue = blueSensorValue / 4;
Serial.print("Übersicht der Sensorwerte \t rot: ");
Serial.print(redValue);
Serial.print("\t grün: ");
Serial.print(greenValue);
Serial.print("\t blau: ");
Serial.println(blueValue);
analogWrite(redLEDPin, redValue);
analogWrite(greenLEDPin, greenValue);
analogWrite(blueLEDPin, blueValue);
}
In der Deklaration int greenSensorValue fehlt das u bei Value....
Danke
Es kommt aber immer noch der Fehler
lass mich raten greenSensorPin und blueSensorPin? bei beiden Deklarationen dazu fehlt das 'Pin'
Herzlichen Dank
Ist es normal, wenn ich den Seriellen Monitor öffne, das da laufend neue Daten angezeigt werden, so schnell das man es nicht lesen kann?
Das kommt darauf an, wie schnell Du sie vom Arduino schickst.
Das macht Dein Sketch, nicht der Arduino selbst.
Gruß Tommy
Wie kann ich dies verstellen
Indem Du nur dann etwas sendest, wenn sich ein Wert geändert hat, also alten Wert merken, mit neuem Wert vergleichen, wenn != dann senden.
Oder mit millis (Beispiel in der IDE BlinkWithoutDelay) eine Zeitsteuerung bauen.
Gruß Tommy
So z.B., dann sollte nur gesendet werden, wenn sich ein Wert ändert
void loop() {
redSensorValue = analogRead(redSensorPin);
greenSensorValue = analogRead(greenSensorPin);
blueSensorValue = analogRead(blueSensorPin);
bool valuesChanged = (redValue != redSensorValue / 4) || (greenValue != greenSensorValue / 4) || (blueValue != blueSensorValue / 4);
redValue = redSensorValue / 4;
greenValue = greenSensorValue / 4;
blueValue = blueSensorValue / 4;
analogWrite(redLEDPin, redValue);
analogWrite(greenLEDPin, greenValue);
analogWrite(blueLEDPin, blueValue);
if(valuesChanged == true){
Serial.print("Rohdaten vom Sensor \t rot: ");
Serial.print(redSensorValue);
Serial.print("\ grün: ");
Serial.print(greenSensorValue);
Serial.print("\t blau: ");
Serial.println(blueSensorValue); Serial.print("Übersicht der Sensorwerte \t rot: ");
Serial.print(redValue);
Serial.print("\t grün: ");
Serial.print(greenValue);
Serial.print("\t blau: ");
Serial.println(blueValue);
}
}
Verstehe ich halbwegs.
Wo muss ich dies einsetzen
Da Du immer nur ein Fragment Deines Codes postest, kann das keiner beantworten.
Wo in Deinem Code merkst Du Dir die alten Werte?
Gruß Tommy
In #9 hat er den ganzen (noch nicht korrigierten) Code stehen, #18 wäre ein Vorschlag von mir für sein loop()