INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Enum mit Switch - Probleme
02.08.2014, 16:27
Beitrag #1
Enum mit Switch - Probleme
Hallo,

ich betreibe einen Mega2560 als Master und steuere über I2C einen ProMicro (Leonardo) an, welcher nur Relais an den Ports 4..16 steuert, also nur OUTPUT.

Die Kommunikation und Funktion steht im Prinzip, kann also die Ports schalten.
Übertragen werden über I2C nur einzelne Zeichen (mehr geht ja eh nicht). Iich hab mich auf a...j für Einschalten und A...J für Ausschalten entschieden.
Auf den kleinen ProMicro kommt sonst keine weitere Aufgabe hinzu, kann also hier den Code überschaubar erstellen.

Zur besseren Lesbarkeit meines großen Programms möchte ich über Enum die Benamsung verdeutlichen, komme aber hier nicht weiter und bitte um Hilfe.

Bei meinem Code kommt momentan die Eingabe für die Variable 'c' (sollte ich vielleicht noch auf x ändern) über die serielle Schnittstelle, wird aber später noch über Buttons vom TFT gesteuert.

Irgendwie fehlt mir hier die Verbindung vom Enum zur Eingabe?
Mit den ersten beiden Cases kann ich am Slave eine LED aus-/einschalten.

Erweitere ich den Code um eine Case, so bricht beim Kompilieren der Compiler mit der Meldung 'duplicate case value' ab und bleibt auf 'A02..' stehen.
Baue ich den Code so um dass ich für 'c' nur ein einzelnes Zeichen verarbeite, so kann ich auch mehrere LED's unabhängig steuern. Das sagt mir, dass die Fallentscheidung klappt.

Kann mir hier jemand weiterhelfen, wie ich die Enum in die Fallentscheidung und Eingabe einbauen kann?

Gruß Franz

Code:
//## Master ##
#include <Wire.h>

//----------------------
// Setup
//----------------------

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   Serial1.begin(9600);
    
   enum Auswahl
        {
          Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
          A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off
        };      
}

//----------------------
// Loop
//----------------------

void loop()
{
  while(Serial.available() >0)
  {
    char c = Serial.read();
    Serial.println(c);
        
    switch (c)
    {
    case 'Lue_slow_on':
        Wire.beginTransmission(4);
        Wire.write('a');
        Wire.endTransmission();
        break;
        
    case 'Lue_slow_off':
        Wire.beginTransmission(4);
        Wire.write('A');
        Wire.endTransmission();
        break;
        
    case 'A02_on':
        Wire.beginTransmission(4);
        Wire.write('b');
        Wire.endTransmission();
        //break;
/*
    case 'A02_off':
        Wire.beginTransmission(4);
        Wire.write('B');
        Wire.endTransmission();
        break;
            
    case 'c':
        Wire.beginTransmission(4);
        Wire.write('c');
        Wire.endTransmission();
        break;
        
    case 'C':
        Wire.beginTransmission(4);
        Wire.write('C');
        Wire.endTransmission();
        //break;
        */
    }
  }
}

Code:
//## Slave
#include <Wire.h>

const int I2C_Slave_Adr = 4;        // angesprochener Slave mit Adresse 4(dez)
int StatusLed = 5;                      // Ausgang 15 wird hier zusätzlich eingerichtet

int outputPins[] = {                    
4, 5, 6, 7, 8, 9, 10, 16, 14, 15};
int pinCount = 10;

//----------------------
// Setup
//----------------------

void setup()
{
    Wire.begin(I2C_Slave_Adr);    // I2C aktivieren
    Wire.onReceive(receiveEvent);    // warten auf ein Eingabeereignis
    
    Serial.begin(9600);        // Kontrollschnittstelle
    Serial1.begin(9600);        // Kontrollschnittstelle zu LabView

     for (int thisPin=0; thisPin < pinCount; thisPin++)
    {
      pinMode (outputPins[thisPin], OUTPUT);
      digitalWrite(outputPins[thisPin], HIGH);
    }
}

//----------------------
// Loop
//----------------------

void loop()
{
// ...hier noch den Blinkteil fuer die letzte LED einbauen, Funktionskontrolle
  digitalWrite(StatusLed, HIGH);       // turn the LED on (HIGH is the voltage level)
  delay(500);                    // wait for a second
  digitalWrite(StatusLed, LOW);         // turn the LED off by making the voltage LOW
  delay(200);                    // wait for a second
  
}

void receiveEvent(int howMany)
{
    while(Wire.available())
    {
        char c = Wire.read();    // einlesen der gesendeten Zeichen
        Serial.print(c);
                Serial1.println(c);
        
        switch (c)
                   {    
//---Ausgang 01 -----------------------------------------------------------                    
                   case 'a':
                   digitalWrite(14, LOW);
                   break;  
                
                   case 'A':
                   digitalWrite(14, HIGH);
                   break;  
    
//---Ausgang 02 -----------------------------------------------------------        
           case 'b':
                   digitalWrite(15, LOW);
                   break;  
                
                   case 'B':
                   digitalWrite(15, HIGH);
                   break;  
    
//---Ausgang 03 -----------------------------------------------------------    
           case 'c':
                   digitalWrite(16, LOW);
                   break;  
                
                   case 'C':
                   digitalWrite(16, HIGH);
                   //break;  
                   }
        }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 16:56
Beitrag #2
RE: Enum mit Switch - Probleme
(02.08.2014 16:27)alpenpower schrieb:  Hallo,

ich betreibe einen Mega2560 als Master und steuere über I2C einen ProMicro (Leonardo) an, welcher nur Relais an den Ports 4..16 steuert, also nur OUTPUT.

Die Kommunikation und Funktion steht im Prinzip, kann also die Ports schalten.
Übertragen werden über I2C nur einzelne Zeichen (mehr geht ja eh nicht). Iich hab mich auf a...j für Einschalten und A...J für Ausschalten entschieden.
Auf den kleinen ProMicro kommt sonst keine weitere Aufgabe hinzu, kann also hier den Code überschaubar erstellen.

Zur besseren Lesbarkeit meines großen Programms möchte ich über Enum die Benamsung verdeutlichen, komme aber hier nicht weiter und bitte um Hilfe.

Bei meinem Code kommt momentan die Eingabe für die Variable 'c' (sollte ich vielleicht noch auf x ändern) über die serielle Schnittstelle, wird aber später noch über Buttons vom TFT gesteuert.

Irgendwie fehlt mir hier die Verbindung vom Enum zur Eingabe?
Mit den ersten beiden Cases kann ich am Slave eine LED aus-/einschalten.

Erweitere ich den Code um eine Case, so bricht beim Kompilieren der Compiler mit der Meldung 'duplicate case value' ab und bleibt auf 'A02..' stehen.
Baue ich den Code so um dass ich für 'c' nur ein einzelnes Zeichen verarbeite, so kann ich auch mehrere LED's unabhängig steuern. Das sagt mir, dass die Fallentscheidung klappt.

Kann mir hier jemand weiterhelfen, wie ich die Enum in die Fallentscheidung und Eingabe einbauen kann?

Gruß Franz

Code:
//## Master ##
#include <Wire.h>

//----------------------
// Setup
//----------------------

void setup()
{
   Wire.begin();
   Serial.begin(9600);
   Serial1.begin(9600);
    
   enum Auswahl
        {
          Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
          A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off
        };      
}

//----------------------
// Loop
//----------------------

void loop()
{
  while(Serial.available() >0)
  {
    char c = Serial.read();
    Serial.println(c);
        
    switch (c)
    {
    case 'Lue_slow_on':
        Wire.beginTransmission(4);
        Wire.write('a');
        Wire.endTransmission();
        break;
        
    case 'Lue_slow_off':
        Wire.beginTransmission(4);
        Wire.write('A');
        Wire.endTransmission();
        break;
        
    case 'A02_on':
        Wire.beginTransmission(4);
        Wire.write('b');
        Wire.endTransmission();
        //break;
/*
    case 'A02_off':
        Wire.beginTransmission(4);
        Wire.write('B');
        Wire.endTransmission();
        break;
            
    case 'c':
        Wire.beginTransmission(4);
        Wire.write('c');
        Wire.endTransmission();
        break;
        
    case 'C':
        Wire.beginTransmission(4);
        Wire.write('C');
        Wire.endTransmission();
        //break;
        */
    }
  }
}

Code:
//## Slave
#include <Wire.h>

const int I2C_Slave_Adr = 4;        // angesprochener Slave mit Adresse 4(dez)
int StatusLed = 5;                      // Ausgang 15 wird hier zusätzlich eingerichtet

int outputPins[] = {                    
4, 5, 6, 7, 8, 9, 10, 16, 14, 15};
int pinCount = 10;

//----------------------
// Setup
//----------------------

void setup()
{
    Wire.begin(I2C_Slave_Adr);    // I2C aktivieren
    Wire.onReceive(receiveEvent);    // warten auf ein Eingabeereignis
    
    Serial.begin(9600);        // Kontrollschnittstelle
    Serial1.begin(9600);        // Kontrollschnittstelle zu LabView

     for (int thisPin=0; thisPin < pinCount; thisPin++)
    {
      pinMode (outputPins[thisPin], OUTPUT);
      digitalWrite(outputPins[thisPin], HIGH);
    }
}

//----------------------
// Loop
//----------------------

void loop()
{
// ...hier noch den Blinkteil fuer die letzte LED einbauen, Funktionskontrolle
  digitalWrite(StatusLed, HIGH);       // turn the LED on (HIGH is the voltage level)
  delay(500);                    // wait for a second
  digitalWrite(StatusLed, LOW);         // turn the LED off by making the voltage LOW
  delay(200);                    // wait for a second
  
}

void receiveEvent(int howMany)
{
    while(Wire.available())
    {
        char c = Wire.read();    // einlesen der gesendeten Zeichen
        Serial.print(c);
                Serial1.println(c);
        
        switch (c)
                   {    
//---Ausgang 01 -----------------------------------------------------------                    
                   case 'a':
                   digitalWrite(14, LOW);
                   break;  
                
                   case 'A':
                   digitalWrite(14, HIGH);
                   break;  
    
//---Ausgang 02 -----------------------------------------------------------        
           case 'b':
                   digitalWrite(15, LOW);
                   break;  
                
                   case 'B':
                   digitalWrite(15, HIGH);
                   break;  
    
//---Ausgang 03 -----------------------------------------------------------    
           case 'c':
                   digitalWrite(16, LOW);
                   break;  
                
                   case 'C':
                   digitalWrite(16, HIGH);
                   //break;  
                   }
        }
}

Hallo,
also ich habe mit der enum Geschichte noch keine eigene Erfahrung gemacht, aber einmal suchen unter arduino.cc hilft dir vielleicht....z.B. hier:
http://playground.arduino.cc/Code/Enum
oder
http://forum.arduino.cc/index.php?topic=161398.0
oder
http://en.wikipedia.org/wiki/Enumerated_type

Denn zu diesen Beispielen sehe ich bei dir im Code schon einige Diskrepanzen....
wie z.B. keinerlei Zuordnung von deiner Aufzählung zu dem was du einliest...

lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 17:22 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2014 17:24 von alpenpower.)
Beitrag #3
RE: Enum mit Switch - Probleme
Hallo Bitklopfer,

vielen Dank für die turboschnelle Antwort.
Enums verwende ich oft in LabView, somit ist mir die Funktion schon klar.Smile

Enums haben ja auch den Vorteil, dass die möglichen Daten genau definiert sind und keine Zufälle zulassen.
Was soll ich deiner Meinung nach genauer definieren?
Ich muss natürlich noch sagen, dass der Code nur Rohbau ist, weil es mir zunächst nur um die Datenübertragung geht.

Franz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 18:08
Beitrag #4
RE: Enum mit Switch - Probleme
(02.08.2014 17:22)alpenpower schrieb:  Hallo Bitklopfer,

vielen Dank für die turboschnelle Antwort.
Enums verwende ich oft in LabView, somit ist mir die Funktion schon klar.Smile

Enums haben ja auch den Vorteil, dass die möglichen Daten genau definiert sind und keine Zufälle zulassen.
Was soll ich deiner Meinung nach genauer definieren?
Ich muss natürlich noch sagen, dass der Code nur Rohbau ist, weil es mir zunächst nur um die Datenübertragung geht.

Franz

..öhm wie schon erwähnt...ich kenne diese enum Geschichte nicht aus eigener Erfahrung, ergo bin ich mal Ahnungslos...sprich ich kann dir dann da auch nicht weiterhelfen.Undecided

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 19:01
Beitrag #5
RE: Enum mit Switch - Probleme
Hallo Franz,

so sollte es laufen (denke ich):
Code:
//## Master ##
#include <Wire.h>
typedef enum {
  Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
  A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off,
  c,C
} Auswahl;
//----------------------
// Setup
//----------------------
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial1.begin(9600);
}
//----------------------
// Loop
//----------------------
void loop()
{
  while (Serial.available() > 0)
  {
    char wert = Serial.read();
    Serial.println(wert);
    switch (wert)
    {
      case Lue_slow_on:
        Wire.beginTransmission(4);
        Wire.write('a');
        Wire.endTransmission();
        break;
      case Lue_slow_off:
        Wire.beginTransmission(4);
        Wire.write('A');
        Wire.endTransmission();
        break;
      case A02_on:
        Wire.beginTransmission(4);
        Wire.write('b');
        Wire.endTransmission();
        break;
      case A02_off:
        Wire.beginTransmission(4);
        Wire.write('B');
        Wire.endTransmission();
        break;
      case c:
        Wire.beginTransmission(4);
        Wire.write('c');
        Wire.endTransmission();
        break;
      case C:
        Wire.beginTransmission(4);
        Wire.write('C');
        Wire.endTransmission();
        break;
    }
  }
}
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 19:22
Beitrag #6
RE: Enum mit Switch - Probleme
(02.08.2014 19:01)rkuehle schrieb:  Hallo Franz,

so sollte es laufen (denke ich):
Code:
//## Master ##
#include <Wire.h>
typedef enum {
  Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
  A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off,
  c,C
} Auswahl;
//----------------------
// Setup
//----------------------
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial1.begin(9600);
}
//----------------------
// Loop
//----------------------
void loop()
{
  while (Serial.available() > 0)
  {
    char wert = Serial.read();
    Serial.println(wert);
    switch (wert)
    {
      case Lue_slow_on:
        Wire.beginTransmission(4);
        Wire.write('a');
        Wire.endTransmission();
        break;
      case Lue_slow_off:
        Wire.beginTransmission(4);
        Wire.write('A');
        Wire.endTransmission();
        break;
      case A02_on:
        Wire.beginTransmission(4);
        Wire.write('b');
        Wire.endTransmission();
        break;
      case A02_off:
        Wire.beginTransmission(4);
        Wire.write('B');
        Wire.endTransmission();
        break;
      case c:
        Wire.beginTransmission(4);
        Wire.write('c');
        Wire.endTransmission();
        break;
      case C:
        Wire.beginTransmission(4);
        Wire.write('C');
        Wire.endTransmission();
        break;
    }
  }
}
Grüße Ricardo

Hallo Ricardo,
ich versuche gerade Euch zu folgen und habe das mal auf meinen Mega geladen. Fakt ist das egal was ich am Terminal eingebe keine der Case Abschnitte ausgewählt wird. Auch vermisse ich im Code die Zuordnung von der Enum Liste zu der wert Variablen....also da fehlt wohl noch was... wenn aber vor dem switch Befehl die Zeile wert = A02_on einfüge dann wird das zugehörige Case abgearbeitet.
Oder habe ich doch Tomaties uffe Glubschies...
lg
bk
Mein Testcode;
Code:
//## Master ##
#include <Wire.h>
typedef enum {
  Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
  A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off,
  c,C
} Auswahl;
char wert[30];
//----------------------
// Setup
//----------------------
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial1.begin(9600);
}
//----------------------
// Loop
//----------------------
void loop()
{
  while (Serial.available() > 0)
  {
    char wert = Serial.read();
    Serial.println(wert);
    //wert = A02_on;
    switch (wert)
    {
      case Lue_slow_on:
        Wire.beginTransmission(4);
        Wire.write('a');
        Serial.println("Lue_slow_on");
        Wire.endTransmission();
        break;
      case Lue_slow_off:
        Wire.beginTransmission(4);
        Wire.write('A');
        Serial.println("Lue_slow_off");
        Wire.endTransmission();
        break;
      case A02_on:
        Wire.beginTransmission(4);
        Wire.write('b');
        Serial.println("A02_on");
        Wire.endTransmission();
        break;
      case A02_off:
        Wire.beginTransmission(4);
        Wire.write('B');
        Serial.println("A02_off");
        Wire.endTransmission();
        break;
      case c:
        Wire.beginTransmission(4);
        Wire.write('c');
        Serial.println("c");
        Wire.endTransmission();
        break;
      case C:
        Wire.beginTransmission(4);
        Wire.write('C');
        Serial.println("C von C");
        Wire.endTransmission();
        break;
    }
  }
}

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 20:52
Beitrag #7
RE: Enum mit Switch - Probleme
Hallo bk,
Zitat:Auch vermisse ich im Code die Zuordnung von der Enum Liste zu der wert Variablen
Da hast du völlig Recht. Habe mich von dem fehlerfreien Compilerlauf täuschen lassen. Problem ist, dass Franz letztlich komplette Strings über Serial einliest. Diese können jedoch nicht über Switch / case ausgewertet werden.
Bin gerade am Grübeln...
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.08.2014, 23:28 (Dieser Beitrag wurde zuletzt bearbeitet: 02.08.2014 23:31 von Bitklopfer.)
Beitrag #8
RE: Enum mit Switch - Probleme
(02.08.2014 20:52)rkuehle schrieb:  Hallo bk,
Zitat:Auch vermisse ich im Code die Zuordnung von der Enum Liste zu der wert Variablen
Da hast du völlig Recht. Habe mich von dem fehlerfreien Compilerlauf täuschen lassen. Problem ist, dass Franz letztlich komplette Strings über Serial einliest. Diese können jedoch nicht über Switch / case ausgewertet werden.
Bin gerade am Grübeln...
Grüße Ricardo

hi Ricardo, ich grübel grad auch rum und bin momentan auf der Rille das die switch case Geschichte einen Integerwert als Auswahlvariable benötigt und die könnte man doch aus dem Laufindex von der enum Aufzählung gewinnen können sofern enum Strings beherrscht. Ansonsten hilft wohl nur einen String einlesen was einfach geht und dann eben mit if (eingabestring == "A02_on") eben was auszulösen....
OOHHH NEIN....nun habe ich es geschafft...der Kompiler bringt nur noch "Fehler beim kompilieren" ohne auf eine Zeile zu zeigen und dann die Meldung

d:/mikrocontroller/arduino_1-0-5/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr6/crtm2560.o: In function `__vector_default':
(.vectors+0x68): relocation truncated to fit: R_AVR_13_PCREL against symbol `__vector_26' defined in .text.__vector_26 section in core.a(HardwareSerial.cpp.o)

und das bei diesem Code...der so aber auch nicht läuft....
Code:
//## Master ##
#include <Wire.h>
//typedef enum {
//  Lue_slow_on, Lue_slow_off, A02_on, A02_off, A03_on, A03_off, A04_on, A04_off, A05_on, A05_off,
//  A06_on, A06_off, A07_on, A08_off, A09_on, A09_off, A10_on, A10_off,
//  c,C
//} Auswahl;
//char werti[30];
byte zeichenwert;
unsigned int readi;  // Index fuer gelesene Zeichen

//----------------------
// Setup
//----------------------
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial1.begin(9600);
}
//----------------------
// Loop
//----------------------
void loop()
{
  Serial.println("START");
  readi = 0;
  char werti[30] = "";
  String wert;
  while (Serial.available() > 0)
  {
    werti[readi] = Serial.read(); // Zeichen einlesen
    Serial.print(werti[readi]);  // Zeichenecho
    readi++;
//    Serial.print(" <= Echo, werti ");  // Zeichenecho
////    zeichenwert = wert;  // Typumwandlung nach byte
//    Serial.println(werti);  // Decimalwert von wert ausgeben
//    
//    zeichenwert = C;
//    Serial.println(zeichenwert);
    
}  // Ende testweise
    wert = werti;
    if(readi){
    Serial.println("  <= Zeichenecho");  
    Serial.println(werti);
    if(werti == "A02_on"){
        Wire.beginTransmission(4);
        Wire.write('b');
        Serial.println("A02_on von if");
        Wire.endTransmission();
    }
    if(werti == "A02_off"){
        Wire.beginTransmission(4);
        Wire.write('b');
        Serial.println("A02_on von if");
        Wire.endTransmission();
    }

    Serial.println("Vor switch");
    switch (werti[readi - 1])
    {
      case 'Lue_slow_on':
        Wire.beginTransmission(4);
        Wire.write('a');
        Serial.println("Lue_slow_on von case");
        Wire.endTransmission();
        break;
      case 'Lue_slow_off':
        Wire.beginTransmission(4);
        Wire.write('A');
        Serial.println("Lue_slow_off von case");
        Wire.endTransmission();
        break;
//      case 'A02_on':
//        Wire.beginTransmission(4);
//        Wire.write('b');
//        Serial.println("A02_on von case");
//        Wire.endTransmission();
//        break;
//      case 'A02_off':
//        Wire.beginTransmission(4);
//        Wire.write('B');
//        Serial.println("A02_off");
//        Wire.endTransmission();
//        break;
      case 'c':
        Wire.beginTransmission(4);
        Wire.write('c');
        Serial.println("c von c");
        Wire.endTransmission();
        break;
      case 'C':
        Wire.beginTransmission(4);
        Wire.write('C');
        Serial.println("C von C");
        Wire.endTransmission();
        break;
    }


    }  // Ende if readi
//  }   hier nicht mehr
delay(2000);
}
...aber strings und Umwandlung von Zahlen in Strings und andersrum...das war bei Arduino schon immer kniffelig... wenn man alles per Hand häckt z.B. in Assembler oder C alles kein Problem...

so ich geh mal schlafen....
Gute Nacht Gemeinde.
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Unterschiedliche Programme durch Switch/ Case SpeedShifter 26 626 04.10.2016 15:29
Letzter Beitrag: SpeedShifter
  ArduinoDroid Probleme Brother Tak 1 206 10.09.2016 22:12
Letzter Beitrag: Brother Tak
  Switch/Case mit chars phischmi 8 341 24.07.2016 21:00
Letzter Beitrag: phischmi
  Roboter-Bau Probleme blebbens 8 383 12.07.2016 07:35
Letzter Beitrag: Binatone
  Probleme mit sprintf() und dtostrf() GMBU 11 819 22.06.2016 10:52
Letzter Beitrag: GMBU
  Makeblock mit Scratch programmieren- Probleme Keinen Schimmer 6 989 06.05.2016 18:34
Letzter Beitrag: arduinopeter
  Programme vom UNO auf nano , mini Pro portieren Probleme anwo 19 1.180 17.04.2016 21:12
Letzter Beitrag: hotsystems
  Probleme beim Auslesen eines IR Empfängers linuxpaul 7 577 06.03.2016 14:44
Letzter Beitrag: hotsystems
  I²C vom NANO zum PI Probleme mit High/Low Bit Tobias1984 4 334 29.02.2016 00:00
Letzter Beitrag: hotsystems
  Probleme beim auswählen des Ports Levi 11 846 21.02.2016 18:00
Letzter Beitrag: hotsystems

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste