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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Probleme beim zusammenfügen Zweier Sketche
27.12.2019, 18:54 (Dieser Beitrag wurde zuletzt bearbeitet: 27.12.2019 19:52 von Bitklopfer.)
Beitrag #1
Probleme beim zusammenfügen Zweier Sketche
Hallo zusammen,
ich wollte ein Sketch für das IR-Modul in den strandtest Sketch von Adafruit einfügen. Das sollte so sein, das die erste Farbprogrammierung nach drücken der Taste 1 ausgeführt wird, Programmierung 2 nach drücken der Taste 2 usw. Jedoch wird mir beim hochladen des Sketches "'colorWipe' was not declared in this scope" angezeigt. Ohne den Sketch für das IR-Modul funktioniert der Test einwandfrei. Ich erkenne da nicht, was ich jetzt genau machen muss.

Hoffe ihr könnt mir da weiterhelfen!

Hier sind beide Sketche zusammen.
Code:
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif
#define LED_PIN    7
#define LED_COUNT 78
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);


#include <IRremote.h>
int IR_Pin = 10;
IRrecv irrecv(IR_Pin);
decode_results results;

//setup() function -- runs once at startup --------------------------------

void setup() {
  
  #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
    clock_prescale_set(clock_div_1);
  #endif

  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(50); // Set BRIGHTNESS to about 1/5 (max = 255)

  Serial.begin(9600);
  irrecv.enableIRIn();
}


// loop() function -- runs repeatedly as long as board is on ---------------

void loop() {

  if (irrecv.decode(&results)) {
      Serial.println(results.value, DEC);
      irrecv.resume();
      
  if (results.value == 16724175) {  
    // Fill along the length of the strip in various colors...
   colorWipe(strip.Color(255,   0,   0), 50); // Red
   colorWipe(strip.Color(  0, 255,   0), 50); // Green
   colorWipe(strip.Color(  0,   0, 255), 50); // Blue
  }

  if (results.value == 16718055) {
    // Do a theater marquee effect in various colors...
    theaterChase(strip.Color(127, 127, 127), 50); // White, half brightness
    theaterChase(strip.Color(127,   0,   0), 50); // Red, half brightness
    theaterChase(strip.Color(  0,   0, 127), 50); // Blue, half brightness
  }
  rainbow(10);             // Flowing rainbow cycle along the whole strip
  theaterChaseRainbow(50); // Rainbow-enhanced theaterChase variant
}


if (results.value == 16743045) {
void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, color);         //  Set pixel's color (in RAM)
    strip.show();                          //  Update strip to match
    delay(wait);                           //  Pause for a moment
  }
}

// Theater-marquee-style chasing lights. Pass in a color (32-bit value,
// a la strip.Color(r,g,b) as mentioned above), and a delay time (in ms)
// between frames.
void theaterChase(uint32_t color, int wait) {
  for(int a=0; a<10; a++) {  // Repeat 10 times...
    for(int b=0; b<3; b++) { //  'b' counts from 0 to 2...
      strip.clear();         //   Set all pixels in RAM to 0 (off)
      // 'c' counts up from 'b' to end of strip in steps of 3...
      for(int c=b; c<strip.numPixels(); c += 3) {
        strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'
      }
      strip.show(); // Update strip with new contents
      delay(wait);  // Pause for a moment
    }
  }
}

// Rainbow cycle along whole strip. Pass delay time (in ms) between frames.
void rainbow(int wait) {
  for(long firstPixelHue = 0; firstPixelHue < 5*65536; firstPixelHue += 256) {
    for(int i=0; i<strip.numPixels(); i++) {
      int pixelHue = firstPixelHue + (i * 65536L / strip.numPixels());
      strip.setPixelColor(i, strip.gamma32(strip.ColorHSV(pixelHue)));
    }
    strip.show(); // Update strip with new contents
    delay(wait);  // Pause for a moment
  }
}

// Rainbow-enhanced theater marquee. Pass delay time (in ms) between frames.
void theaterChaseRainbow(int wait) {
  int firstPixelHue = 0;     // First pixel starts at red (hue 0)
  for(int a=0; a<30; a++) {  // Repeat 30 times...
    for(int b=0; b<3; b++) { //  'b' counts from 0 to 2...
      strip.clear();         //   Set all pixels in RAM to 0 (off)
      for(int c=b; c<strip.numPixels(); c += 3) {
        int      hue   = firstPixelHue + c * 65536L / strip.numPixels();
        uint32_t color = strip.gamma32(strip.ColorHSV(hue)); // hue -> RGB
        strip.setPixelColor(c, color); // Set pixel 'c' to value 'color'
      }
      strip.show();                // Update strip with new contents
      delay(wait);                 // Pause for a moment
      firstPixelHue += 65536 / 90; // One cycle of color wheel over 90 frames
    }
  }
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2019, 19:54
Beitrag #2
RE: Probleme beim zusammenfügen Zweier Sketche
Sketch schreibt man so... und nicht mit Sc.... und schon gar nicht mit Sca....
Weil das verstehen wir nicht.
bk Moderator

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
27.12.2019, 22:00
Beitrag #3
RE: Probleme beim zusammenfügen Zweier Sketche
(27.12.2019 19:54)Bitklopfer schrieb:  Sketch schreibt man so... und nicht mit Sc.... und schon gar nicht mit Sca....
Weil das verstehen wir nicht.
bk Moderator
OK danke, hatte net so ganz auf die Richtigkeit geachtet, sorry
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.12.2019, 23:46
Beitrag #4
RE: Probleme beim zusammenfügen Zweier Sketche
(27.12.2019 18:54)Joel schrieb:  .....
Hoffe ihr könnt mir da weiterhelfen!
.....
Das Problem wirst du leider nicht einfach lösen können.
Die Library "Neopixel" schaltet während des Laufens den Interrup aus und damit funktioniert die IRremote nicht mehr.

Das Problem lässt sich nur mit einem weiteren Controller lösen, den du dann per I2C steuerst.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 01:11
Beitrag #5
RE: Probleme beim zusammenfügen Zweier Sketche
Ahso ok, nen zweiten Mega 2560 wollte ich jetzt nicht unbedingt verwenden. Klappt es denn mit der FastLED Library, oder wird es so oder so ohne nen zweiten Mega nicht funktionieren?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 10:54 (Dieser Beitrag wurde zuletzt bearbeitet: 28.12.2019 10:59 von Tommy56.)
Beitrag #6
RE: Probleme beim zusammenfügen Zweier Sketche
Das muss nicht ein MEGA sein, ein UNO, Nano, AtTiny85 tut es auch, wobei der Tiny etwas schwieriger ist.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 14:04
Beitrag #7
RE: Probleme beim zusammenfügen Zweier Sketche
(28.12.2019 01:11)Joel schrieb:  Ahso ok, nen zweiten Mega 2560 wollte ich jetzt nicht unbedingt verwenden. Klappt es denn mit der FastLED Library, oder wird es so oder so ohne nen zweiten Mega nicht funktionieren?

Soweit mir bekannt ist, geht es mit beiden Libraries nicht.

Und wie Tommy schon schrieb, einen Mega braucht es dazu nicht.
Mit einem ATtiny85 funktioniert es wunderbar als IRremote. Da ist nur die Programmierung etwas aufwändiger.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.12.2019, 19:44
Beitrag #8
RE: Probleme beim zusammenfügen Zweier Sketche
Hallo,
abstrahierend davon, dass Du schon 5 Antworten bekommen hast, …

Code:
if (results.value == 16743045) {
void colorWipe(uint32_t color, int wait) {
...
Die colorWipe(…) Funktion befindet sich in einer if Anweisung.
Solange die Bedienung: -> results.value == 16743045 nicht erfühlt ist (1, True), ist die Funktion NICHT sichtbar. Ganz Schlechtes Programmieren!

Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Wortuhrsketch macht probleme Bepo3 12 496 12.09.2020 17:41
Letzter Beitrag: Tommy56
  Programmier Probleme mit XP Prof / Linux Serena Hans 1967 6 319 09.09.2020 20:48
Letzter Beitrag: Hans 1967
  Probleme mit Wert zwischen Messbereichen von bis juergen001 6 324 07.09.2020 14:49
Letzter Beitrag: juergen001
  IDE Probleme nach Update auf 1.8.13 DO3GE 7 375 04.09.2020 14:41
Letzter Beitrag: hotsystems
  Probleme mit millis(); timer basteldin 3 352 01.09.2020 19:04
Letzter Beitrag: basteldin
  Ratlosigkeit - Timing-Probleme??? kjoussen 30 1.280 27.08.2020 19:55
Letzter Beitrag: MicroBahner
  433 MHz Transmitter SX1278: Merkwürdigkeit beim Empfang GuaAck 5 515 20.06.2020 22:20
Letzter Beitrag: hotsystems
  Fehlermeldung beim Sketch hochladen heino_m 12 1.403 28.05.2020 18:25
Letzter Beitrag: Tommy56
  Wo ist der RxD1 beim Wemos D1 mini? DO3GE 3 521 03.05.2020 12:33
Letzter Beitrag: Fips
  Probleme mit Adafruit_ST7735 Thor Wallhall 4 641 22.04.2020 19:52
Letzter Beitrag: Thor Wallhall

Gehe zu:


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