AZ Delivery Projekt „Freundin“ Hilfe beim Sketch

Hallo,

ich versuche aktuell meinen Einstig in Arduino mit Beispielen, im konkreten Fall mit der AZ Freundin. Da benötigt man folgende teile:

1x AZ-Delivery Amica V2 Mikrocontroller
1x MAX7219 8x32 4 in 1 Dot Matrix LED Anzeigemodul
1x Breadboard mit Jumper Kabel
1x KY-004 Button Modul oder einen ähnlichen Taster

Und dann soll man folgenden Sketch hochladen. Leider bekomme ich als Fehler:

exit status 1
‘D6’ was not declared in this scope

Kann mir eventuell einer helfen was ich falsch mache?
Danke

// beMyValentine Codebeispiel für den AZ-Delivery Blogbeitrag Valentinstag 2020
// V1.0 von AZcp 14.02.2020 - GNU Lesser General Public License v2.1
// Verwendet die Bibliothek MD_MAX72XX von Marco Colli / MajicDesigns : GitHub - MajicDesigns/MD_MAX72XX: LED Matrix Library
// Teile dieses Codes basieren auf den Beispielen der MD_MAX72XX Bibliothek

#include <MD_MAX72xx.h>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW // falls die Darstellung fehlerhaft ist, ersrtze FC16_HW durch PAROLA_HW oder GENERIC_HW
#define MAX_DEVICES 4 // anzal der 8x8 Module, in unserem Fall 4

#define CLK_PIN D5
#define DATA_PIN D6
#define CS_PIN D8
#define BUTTON_PIN D2 // Hier wird der Button angeschlossen

MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

bool last = false; // Diese Variable merk sich ob der Taster gedrückt wurde

#define ARRAYSIZE 13 // Anzahl der Sätze
char* results[ARRAYSIZE] = {
"Ja! ",
"nein. ",
"Das wuerde mich freuen. ",
"Von mir aus. . . ",
"Hoechstwahrscheinlich. ",
"Ja, klingt gut! ",
"Mach was DU willst. . . ",
"Ist deine Entscheidung. . . ",
"Gerne, Schatz! ",
"Ja, gefaellt mir ganz gut. . . ",
"Das ist eine gute Idee! ",
"Vielleicht?! ",
"Seufz "
};

//Wurde der Taster gedrückt?
bool button() {
bool current = digitalRead(BUTTON_PIN);
if (current != last) {
last = current;
if (last) {
return true;
}
}
return false;
}

// Text wird gesrollt
void scrollText(const char *p)
{
uint8_t charWidth;
uint8_t cBuf[8]; // this should be ok for all built-in fonts
mx.clear();
while (*p != '\0')
{
charWidth = mx.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf);

for (uint8_t i = 0; i <= charWidth; i++) // allow space between characters
{
mx.transform(MD_MAX72XX::TSL);
if (i < charWidth)
mx.setColumn(0, cBuf*);*

  • delay(50);*
  • }*
  • }*
    }
    // Herz wird dargestellt
    void hearts()
    {
  • mx.clear();*
  • mx.setRow(0, 0, 0b00000000);*
  • mx.setRow(0, 1, 0b01100000);*
  • mx.setRow(0, 2, 0b11110000);*
  • mx.setRow(0, 3, 0b11110000);*
  • mx.setRow(0, 4, 0b11101010);*
  • mx.setRow(0, 5, 0b11011111);*
  • mx.setRow(0, 6, 0b10001110);*
  • mx.setRow(0, 7, 0b00000100);*
  • mx.setRow(1, 0, 0b00000000);*
  • mx.setRow(1, 1, 0b00000110);*
  • mx.setRow(1, 2, 0b00001111);*
  • mx.setRow(1, 3, 0b00001111);*
  • mx.setRow(1, 4, 0b01010111);*
  • mx.setRow(1, 5, 0b11111011);*
  • mx.setRow(1, 6, 0b01110001);*
  • mx.setRow(1, 7, 0b00100000);*
  • mx.setRow(2, 0, 0b00000000);*
  • mx.setRow(2, 1, 0b01100000);*
  • mx.setRow(2, 2, 0b11110000);*
  • mx.setRow(2, 3, 0b11110000);*
  • mx.setRow(2, 4, 0b11101010);*
  • mx.setRow(2, 5, 0b11011111);*
  • mx.setRow(2, 6, 0b10001110);*
  • mx.setRow(2, 7, 0b00000100);*
  • mx.setRow(3, 0, 0b00000000);*
  • mx.setRow(3, 1, 0b00000110);*
  • mx.setRow(3, 2, 0b00001111);*
  • mx.setRow(3, 3, 0b00001111);*
  • mx.setRow(3, 4, 0b01010111);*
  • mx.setRow(3, 5, 0b11111011);*
  • mx.setRow(3, 6, 0b01110001);*
  • mx.setRow(3, 7, 0b00100000);*
    }
    // Die Helligkeit wird regegelt - Puls effekt
    void intensity()
    {
  • mx.clear();*
  • // Grow and get brighter*
  • for (int8_t i = 1; i <= MAX_INTENSITY; i++)*
  • {*
  • mx.control(MD_MAX72XX::INTENSITY, i);*
  • hearts();*
  • delay(10);*
  • }*
  • for (int8_t i = MAX_INTENSITY; i >= 1; i--)*
  • {*
  • mx.control(MD_MAX72XX::INTENSITY, i);*
  • hearts();*
  • delay(10);*
  • }*
  • mx.control(MD_MAX72XX::INTENSITY, 1);*
    }
    void setup()
    {
  • pinMode(BUTTON_PIN, INPUT_PULLUP);*
  • mx.begin();*
    }
    void loop()
    {
  • if (button()) // wenn Taster gedrückt wurde*
  • {*
  • delay(200);*
  • intensity();*
  • delay(100);*
  • intensity();*
  • delay(500);*
  • mx.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY);*
  • scrollText(results[random(ARRAYSIZE)]);*
  • delay(500);*
  • }*
    }

Als Anfänger musst du nicht betonen dass du einer bist und Hilfe brauchst.
Als Titel ist es immer besser, sowie erforderlich, dass man das vorhandene Problem beschreibt, damit dies besser gefunden wird.
Anfänger gibt es reichlich und die muss man nicht suchen.

Also bitte den Titel ändern und auch deinen Sketch in Code-Tags setzen, dann ist dieser von allen besser lesbar.
Verwende dazu die Schaltfläche </> oben links im Editor-Fenster.

(deleted)

Hi

Oder mache Es direkt richtig(er) und verwende

const byte CLK_PIN=5;
const byte DATA_PIN=6;
const byte CS_PIN=8;
const byte BUTTON_PIN=2;

'D6' was not declared in this scope

Kann mir eventuell einer helfen was ich falsch mache?

hast du vor dem compilieren, das richtige Board ausgewählt? vermutlich den NodeMcu?

Fakt ist aber auch, du könntest mehr Helfer haben, wenn dein Sketch besser auch von mobilen Usern lesbar wäre.
Dazu sind die Code-Tags sehr wichtig.

Ebenso wichtig wäre die komplette Fehlermeldung.

(deleted)

was ist an dieser Formulierung "richtigerer" im Arduino-Biotop

const byte ist besser als #define, weil es dem Compiler Typprüfung erlaubt. Im Fehlerfall ergibt das bessere Fehlermeldungen.
Im diesem Fall hier wird derselbe Code erzeugt, da hast du Recht @Peter-CAD-HST.
Das hat übrigens weniger mit Arduino-Biotop zu tun, sondern mit der Frage C oder C++.
Soll man C++ Konstruktionen verwenden, wenn es auch mit C geht?