Hallo Zusammen,
mein erster Versuch hier, bin vom Arduino fasziniert aber noch Anfänger.
Ok, was habe ich vor, ich möchte mit Hilfe von 4 Tastern jeweils eine Relaisgruppe aktivieren.
Jeder druck auf eine der 4 Tasten soll die anderen 3 ausschalten und erst dann das entsprechende Relais
aktivieren. So das immer und absolut eine Relaisgruppe aktiv ist und zu keinem Zeitpunkt eine 2te.
Das habe ih fertig und funktioniert auch ganz wunderbar.
Nun möchte ich erreichen, das auf einem kleinen OLED Display die jeweils gewählte Relaisgruppe angezeigt wird und da habe ich mein Problem.
Für alle 4 Taster bekomme ich beim Codecheck die Meldung 'displaywrite' was not declared in this scope.
Sicher fehlt mir irgendwas im Bereich bevor die Loop startet.
Mag sich jemand den Code ansehen, und mir sagen was fehlt oder falsch ist?
//4pushswitch with OLEDoutput
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#if (SSD1306_LCDHEIGHT != 32)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif
int buttonstate1 = 0;
int buttonstate2 = 0;
int buttonstate3 = 0;
int buttonstate4 = 0;
int amp1 = 6; //digital output pin6
int amp2 = 7; //digital output pin7
int amp3 = 8; //digital output pin8
int amp4 = 9; //digital output pin9
String ampdisplay;
void setup()
{
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3C (for the 128x32)
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("No Amp!");
display.println("Push Btn!");
display.display();
pinMode(amp1, OUTPUT);
pinMode(amp2, OUTPUT);
pinMode(amp3, OUTPUT);
pinMode(amp4, OUTPUT);
pinMode (2, INPUT); //Taster 1
pinMode (3, INPUT); //Taster 2
pinMode (4, INPUT); //Taster 3
pinMode (5, INPUT); //Taster 4
digitalWrite(amp1,HIGH); //Relais abgefallen
digitalWrite(amp2,HIGH); //Relais abgefallen
digitalWrite(amp3,HIGH); //Relais abgefallen
digitalWrite(amp4,HIGH); //Relais abgefallen
ampdisplay = String("No Amp!");
}
void loop()
{
buttonstate1 = digitalRead(2); //Taste 1 einlesen
buttonstate2 = digitalRead(3); //Taste 2 einlesen
buttonstate3 = digitalRead(4); //Taste 3 einlesen
buttonstate4 = digitalRead(5); //Taste 4 einlesen
if (buttonstate1 == HIGH) {
{
digitalWrite(amp4, HIGH); //amp4 ausschalten
digitalWrite(amp3, HIGH); //amp3 ausschalten
digitalWrite(amp2, HIGH); //amp2 ausschalten
delay(300);
digitalWrite(amp1, LOW); //amp1 einschalten
Serial.println("AMP1 eingeschaltet");//Serielle Debugmeldung
ampdisplay=String("Amp 1");
displaywrite (ampdisplay);
exit;
}
}
if (buttonstate2 == HIGH) {
{
digitalWrite(amp4, HIGH); //amp4 ausschalten
digitalWrite(amp3, HIGH); //amp3 ausschalten
digitalWrite(amp1, HIGH); //amp1 ausschalten
delay(300);
digitalWrite(amp2, LOW); //amp1 einschalten
Serial.println("AMP2 eingeschaltet");//Serielle Debugmeldung
ampdisplay=String("Amp 2");
displaywrite (ampdisplay);
exit;
}
}
if (buttonstate3 == HIGH) {
{
digitalWrite(amp4, HIGH); //amp4 ausschalten
digitalWrite(amp2, HIGH); //amp3 ausschalten
digitalWrite(amp1, HIGH); //amp4 ausschalten
delay(300);
digitalWrite(amp3, LOW); //amp1 einschalten
Serial.println("AMP3 eingeschaltet");//Serielle Debugmeldung
ampdisplay=String("Amp 3");
displaywrite (ampdisplay);
exit;
}
}
if (buttonstate4 == HIGH) {
{
digitalWrite(amp3, HIGH); //amp3 ausschalten
digitalWrite(amp2, HIGH); //amp2 ausschalten
digitalWrite(amp1, HIGH); //amp1 ausschalten
delay(300);
digitalWrite(amp4, LOW); //amp4 einschalten
Serial.println("AMP4 eingeschaltet");//Serielle Debugmeldung
ampdisplay=String("Amp 4");
displaywrite (ampdisplay);
exit;
}
}
}
Ich hab schon etliches an Zeit mit suchen verbracht, aber nix passendes gefunden.
vielen Dank im voraus,
OlTan